[
  {
    "path": ".eslintrc",
    "content": "{\n  \"extends\": [\n    \"eslint:recommended\",\n    \"plugin:react/recommended\",\n    \"prettier\",\n    \"next/core-web-vitals\"\n  ],\n  \"env\": {\n    \"jest\": true,\n    \"es6\": true\n  },\n  \"rules\": {\n    \"react/display-name\": 0,\n    \"import/no-anonymous-default-export\": 0\n  }\n}\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "content": "# These are supported funding model platforms\n\ngithub: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]\npatreon: # Replace with a single Patreon username\nopen_collective: # Replace with a single Open Collective username\nko_fi: # Replace with a single Ko-fi username\ntidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel\ncommunity_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry\ncustom: https://www.buymeacoffee.com/cedmax\n"
  },
  {
    "path": ".github/workflows/combine-prs.yml",
    "content": "name: 'Combine PRs'\n\n# Controls when the action will run - in this case triggered manually\non:\n  workflow_dispatch:\n    inputs:\n      branchPrefix:\n        description: 'Branch prefix to find combinable PRs based on'\n        required: true\n        default: 'dependabot'\n      mustBeGreen:\n        description: 'Only combine PRs that are green (status is success)'\n        required: true\n        default: true\n      combinePrTitle:\n        description: 'Title of the new PR'\n        required: true\n        default: 'Combined Dependabot PR'\n      combineBranchName:\n        description: 'Name of the branch to combine PRs into'\n        required: true\n        default: 'combine-prs-branch'\n      ignoreLabel:\n        description: 'Exclude PRs with this label'\n        required: true\n        default: 'nocombine'\n\n# A workflow run is made up of one or more jobs that can run sequentially or in parallel\njobs:\n  # This workflow contains a single job called \"combine-prs\"\n  combine-prs:\n    # The type of runner that the job will run on\n    runs-on: ubuntu-latest\n\n    # Steps represent a sequence of tasks that will be executed as part of the job\n    steps:\n      - uses: actions/github-script@v3\n        id: fetch-branch-names\n        name: Fetch branch names\n        with:\n          github-token: ${{secrets.GITHUB_TOKEN}}\n          script: |\n            const pulls = await github.paginate('GET /repos/:owner/:repo/pulls', {\n              owner: context.repo.owner,\n              repo: context.repo.repo\n            });\n            branches = [];\n            prs = [];\n            base_branch = null;\n            for (const pull of pulls) {\n              const branch = pull['head']['ref'];\n              console.log('Pull for branch: ' + branch);\n              if (branch.startsWith('${{ github.event.inputs.branchPrefix }}')) {\n                console.log('Branch matched: ' + branch);\n                statusOK = true;\n                if(${{ github.event.inputs.mustBeGreen }}) {\n                  console.log('Checking green status: ' + branch);\n                  const statuses = await github.paginate('GET /repos/{owner}/{repo}/commits/{ref}/status', {\n                    owner: context.repo.owner,\n                    repo: context.repo.repo,\n                    ref: branch\n                  });\n                  if(statuses.length > 0) {\n                    const latest_status = statuses[0]['state'];\n                    console.log('Validating status: ' + latest_status);\n                    if(latest_status != 'success') {\n                      console.log('Discarding ' + branch + ' with status ' + latest_status);\n                      statusOK = false;\n                    }\n                  }\n                }\n                console.log('Checking labels: ' + branch);\n                const labels = pull['labels'];\n                for(const label of labels) {\n                  const labelName = label['name'];\n                  console.log('Checking label: ' + labelName);\n                  if(labelName == '${{ github.event.inputs.ignoreLabel }}') {\n                    console.log('Discarding ' + branch + ' with label ' + labelName);\n                    statusOK = false;\n                  }\n                }\n                if (statusOK) {\n                  console.log('Adding branch to array: ' + branch);\n                  branches.push(branch);\n                  prs.push('#' + pull['number'] + ' ' + pull['title']);\n                  base_branch = pull['base']['ref'];\n                }\n              }\n            }\n\n            if (branches.length == 0) {\n              core.setFailed('No PRs/branches matched criteria');\n              return;\n            }\n\n            core.setOutput('base-branch', base_branch);\n            core.setOutput('prs-string', prs.join('\\n'));\n\n            combined = branches.join(' ')\n            console.log('Combined: ' + combined);\n            return combined\n      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it\n      - uses: actions/checkout@v2.3.3\n        with:\n          fetch-depth: 0\n      # Creates a branch with other PR branches merged together\n      - name: Created combined branch\n        env:\n          BASE_BRANCH: ${{ steps.fetch-branch-names.outputs.base-branch }}\n          BRANCHES_TO_COMBINE: ${{ steps.fetch-branch-names.outputs.result }}\n          COMBINE_BRANCH_NAME: ${{ github.event.inputs.combineBranchName }}\n        run: |\n          echo \"$BRANCHES_TO_COMBINE\"\n          sourcebranches=\"${BRANCHES_TO_COMBINE%\\\"}\"\n          sourcebranches=\"${sourcebranches#\\\"}\"\n\n          basebranch=\"${BASE_BRANCH%\\\"}\"\n          basebranch=\"${basebranch#\\\"}\"\n\n          git config pull.rebase false\n          git config user.name github-actions\n          git config user.email github-actions@github.com\n\n          git branch $COMBINE_BRANCH_NAME $basebranch\n          git checkout $COMBINE_BRANCH_NAME\n          git pull origin $sourcebranches --no-edit\n          git push origin $COMBINE_BRANCH_NAME\n      # Creates a PR with the new combined branch\n      - uses: actions/github-script@v3\n        name: Create Combined Pull Request\n        env:\n          PRS_STRING: ${{ steps.fetch-branch-names.outputs.prs-string }}\n        with:\n          github-token: ${{secrets.GITHUB_TOKEN}}\n          script: |\n            const prString = process.env.PRS_STRING;\n            const body = 'This PR was created by the Combine PRs action by combining the following PRs:\\n' + prString;\n            await github.pulls.create({\n              owner: context.repo.owner,\n              repo: context.repo.repo,\n              title: '${{ github.event.inputs.combinePrTitle }}',\n              head: '${{ github.event.inputs.combineBranchName }}',\n              base: '${{ steps.fetch-branch-names.outputs.base-branch }}',\n              body: body\n            });\n"
  },
  {
    "path": ".github/workflows/pr-testing.yml",
    "content": "name: Test PR\n\non: pull_request\n\njobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v2\n      - uses: browniebroke/read-nvmrc-action@v1\n        id: nvmrc\n      - uses: actions/setup-node@v2\n        with:\n          node-version: '${{ steps.nvmrc.outputs.node_version }}'\n          cache: 'yarn'\n      - run: yarn install --prefer-offline --frozen-lockfile\n      - run: yarn test\n        env:\n          CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}\n"
  },
  {
    "path": ".github/workflows/update-codesandbox.yml",
    "content": "name: Update codesandbox references\n\non:\n  push:\n    branches-ignore:\n      - production\n\njobs:\n  triage:\n    runs-on: ubuntu-latest\n    outputs:\n      content: ${{ steps.changes.outputs.content }}\n      files: ${{ steps.changes.outputs.content_files }}\n    steps:\n      - uses: actions/checkout@v2\n      - uses: dorny/paths-filter@v2\n        id: changes\n        with:\n          base: ${{ github.ref }}\n          list-files: shell\n          filters: |\n            content:\n              - 'src/content/**/*.js'\n  codesandbox:\n    needs: triage\n    if: ${{ needs.triage.outputs.content == 'true' }}\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v2\n      - uses: browniebroke/read-nvmrc-action@v1\n        id: nvmrc\n      - uses: actions/setup-node@v2\n        with:\n          node-version: '${{ steps.nvmrc.outputs.node_version }}'\n          cache: 'yarn'\n      - run: yarn install --prefer-offline --frozen-lockfile\n      - run: |-\n          node ./modules/create-code-sandbox-cli ${{ needs.triage.outputs.files }}\n      - uses: swinton/commit@v2.x\n        env:\n          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n        with:\n          files: |\n            src/code-sandbox-refs.json\n            src/code-sandbox.json\n          commit-message: Updating codesandbox references\n          ref: ${{ github.ref }}\n"
  },
  {
    "path": ".gitignore",
    "content": "# dependencies\nnode_modules\n\n# testing\ncoverage\n\n# react-static\ndist\ntmp\nartifacts \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*\n\nlist.json\n.dccache\nout\n.next"
  },
  {
    "path": ".husky/.gitignore",
    "content": "_\n"
  },
  {
    "path": ".husky/pre-commit",
    "content": "#!/bin/sh\n. \"$(dirname \"$0\")/_/husky.sh\"\n\nyarn lint-staged\n"
  },
  {
    "path": ".husky/pre-push",
    "content": "#!/bin/sh\n. \"$(dirname \"$0\")/_/husky.sh\"\n\nyarn test\n"
  },
  {
    "path": ".nvmrc",
    "content": "18.15\n"
  },
  {
    "path": ".prettierrc",
    "content": "{\n  \"semi\": false,\n  \"singleQuote\": true,\n  \"arrowParens\": \"avoid\",\n  \"quoteProps\": \"preserve\"\n}\n"
  },
  {
    "path": "CNAME",
    "content": "youmightnotneed.com\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributors and maintainers pledge to making participation in our project and\nour community a harassment-free experience for everyone, regardless of age, body\nsize, disability, ethnicity, sex characteristics, gender identity and expression,\nlevel of experience, education, socio-economic status, nationality, personal\nappearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment\ninclude:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or\n advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic\n address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable\nbehavior and are expected to take appropriate and fair corrective action in\nresponse to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or\nreject comments, commits, code, wiki edits, issues, and other contributions\nthat are not aligned to this Code of Conduct, or to ban temporarily or\npermanently any contributor for other behaviors that they deem inappropriate,\nthreatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces\nwhen an individual is representing the project or its community. Examples of\nrepresenting a project or community include using an official project e-mail\naddress, posting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event. Representation of a project may be\nfurther defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported by contacting the project team at marco@redthreads.net. All\ncomplaints will be reviewed and investigated and will result in a response that\nis deemed necessary and appropriate to the circumstances. The project team is\nobligated to maintain confidentiality with regard to the reporter of an incident.\nFurther details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good\nfaith may face temporary or permanent repercussions as determined by other\nmembers of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,\navailable at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html\n\n[homepage]: https://www.contributor-covenant.org\n\nFor answers to common questions about this code of conduct, see\nhttps://www.contributor-covenant.org/faq\n"
  },
  {
    "path": "README.md",
    "content": "### [youmightnotneed.com](https://youmightnotneed.com)\n\nYou might not need \\* is a collection of `You might not need ${something}` resources.\n\nCurrently working on [Lodash](./src/content/lodash-missing.md) and [date-fns](./src/content/date-fns-missing.md) but any suggestion is more than welcome.\n\nPlease read [how to contribute](./src/content/how-to-contribute.md) if you want to add any implementation.\n\n## Contributors\n\n[//]: contributor-faces\n<a href=\"https://github.com/cedmax\"><img src=\"https://avatars.githubusercontent.com/u/415593?v=4\" title=\"cedmax\" width=\"80\" height=\"80\"></a>\n<a href=\"https://github.com/102\"><img src=\"https://avatars.githubusercontent.com/u/5839225?v=4\" title=\"102\" width=\"80\" height=\"80\"></a>\n<a href=\"https://github.com/sirLisko\"><img src=\"https://avatars.githubusercontent.com/u/435399?v=4\" title=\"sirLisko\" width=\"80\" height=\"80\"></a>\n<a href=\"https://github.com/codedbypaul\"><img src=\"https://avatars.githubusercontent.com/u/4680439?v=4\" title=\"codedbypaul\" width=\"80\" height=\"80\"></a>\n<a href=\"https://github.com/haykam821\"><img src=\"https://avatars.githubusercontent.com/u/24855774?v=4\" title=\"haykam821\" width=\"80\" height=\"80\"></a>\n<a href=\"https://github.com/tombiju\"><img src=\"https://avatars.githubusercontent.com/u/11186044?v=4\" title=\"tombiju\" width=\"80\" height=\"80\"></a>\n<a href=\"https://github.com/shubhamV123\"><img src=\"https://avatars.githubusercontent.com/u/29898106?v=4\" title=\"shubhamV123\" width=\"80\" height=\"80\"></a>\n<a href=\"https://github.com/ryanosaur\"><img src=\"https://avatars.githubusercontent.com/u/5642293?v=4\" title=\"ryanosaur\" width=\"80\" height=\"80\"></a>\n<a href=\"https://github.com/SgtPooki\"><img src=\"https://avatars.githubusercontent.com/u/1173416?v=4\" title=\"SgtPooki\" width=\"80\" height=\"80\"></a>\n<a href=\"https://github.com/rouanw\"><img src=\"https://avatars.githubusercontent.com/u/2362668?v=4\" title=\"rouanw\" width=\"80\" height=\"80\"></a>\n<a href=\"https://github.com/martingjaldbaek\"><img src=\"https://avatars.githubusercontent.com/u/752617?v=4\" title=\"martingjaldbaek\" width=\"80\" height=\"80\"></a>\n<a href=\"https://github.com/jpbriggs408\"><img src=\"https://avatars.githubusercontent.com/u/8880358?v=4\" title=\"jpbriggs408\" width=\"80\" height=\"80\"></a>\n<a href=\"https://github.com/jeromelachaud\"><img src=\"https://avatars.githubusercontent.com/u/456474?v=4\" title=\"jeromelachaud\" width=\"80\" height=\"80\"></a>\n<a href=\"https://github.com/harshit-sinha-developer\"><img src=\"https://avatars.githubusercontent.com/u/12970743?v=4\" title=\"harshit-sinha-developer\" width=\"80\" height=\"80\"></a>\n<a href=\"https://github.com/friederbluemle\"><img src=\"https://avatars.githubusercontent.com/u/743291?v=4\" title=\"friederbluemle\" width=\"80\" height=\"80\"></a>\n<a href=\"https://github.com/fgandellini\"><img src=\"https://avatars.githubusercontent.com/u/971375?v=4\" title=\"fgandellini\" width=\"80\" height=\"80\"></a>\n<a href=\"https://github.com/ColinRTaylor\"><img src=\"https://avatars.githubusercontent.com/u/11527179?v=4\" title=\"ColinRTaylor\" width=\"80\" height=\"80\"></a>\n<a href=\"https://github.com/BrettMerri\"><img src=\"https://avatars.githubusercontent.com/u/4353965?v=4\" title=\"BrettMerri\" width=\"80\" height=\"80\"></a>\n<a href=\"https://github.com/slimcandy\"><img src=\"https://avatars.githubusercontent.com/u/91788772?v=4\" title=\"slimcandy\" width=\"80\" height=\"80\"></a>\n<a href=\"https://github.com/ajitfawade\"><img src=\"https://avatars.githubusercontent.com/u/16475300?v=4\" title=\"ajitfawade\" width=\"80\" height=\"80\"></a>\n<a href=\"https://github.com/Adrian-Benavente\"><img src=\"https://avatars.githubusercontent.com/u/11258517?v=4\" title=\"Adrian-Benavente\" width=\"80\" height=\"80\"></a>\n<a href=\"https://github.com/doydoy44\"><img src=\"https://avatars.githubusercontent.com/u/6697165?v=4\" title=\"doydoy44\" width=\"80\" height=\"80\"></a>\n\n[//]: contributor-faces\n"
  },
  {
    "path": "jest.setup.js",
    "content": "// require('jest-mock-now')()\nconst { advanceTo } = require('jest-date-mock')\n\nadvanceTo(new Date(2014, 8, 25, 18, 30, 15, 500).getTime())\n"
  },
  {
    "path": "modules/contributors.js",
    "content": "const path = require('path')\nconst gh = require('gh-got')\nconst readmeFilename = require('readme-filename')\nconst replace = require('replace-in-file')\n\nconst customContributorList = ['doydoy44']\n\nconst generateHtml = data =>\n  data.reduce(\n    (html, { html_url, avatar_url, login }) =>\n      html +\n      `<a href=\"${html_url}\"><img src=\"${avatar_url}\" title=\"${login}\" width=\"80\" height=\"80\"></a>\\n`,\n    ''\n  )\n\nconst getContributors = () =>\n  gh(`repos/cedmax/youmightnotneed/contributors`, {\n    per_page: 300,\n  }).then(({ body }) =>\n    body.filter(\n      ({ login }) => !login.endsWith('-bot') && !login.endsWith('[bot]')\n    )\n  )\n\n;(async () => {\n  const contributors = await getContributors()\n\n  while (customContributorList.length) {\n    const { body: user } = await gh(`users/${customContributorList.shift()}`)\n    contributors.push(user)\n  }\n\n  await readmeFilename('.').then(\n    filename =>\n      new Promise(() =>\n        replace({\n          files: path.resolve('.', filename),\n          from: /\\[\\/\\/\\]: contributor-faces(?:(?:\\n.*)+\\[\\/\\/\\]: contributor-faces)?/,\n          to: `[//]: contributor-faces\\n${generateHtml(\n            contributors\n          )}\\n[//]: contributor-faces`,\n        })\n      )\n  )\n})()\n"
  },
  {
    "path": "modules/create-code-sandbox-cli.js",
    "content": "const createCodeSandbox = require('./create-code-sandbox')\nconst fs = require('fs')\nconst axios = require('axios')\nconst prettier = require('prettier')\n\nconst readFolderList = path =>\n  fs\n    .readdirSync(path, { withFileTypes: true })\n    .filter(item => item.isDirectory())\n    .map(({ name }) => name)\n\nconst getNestedFolders = (path, level) => {\n  const list = readFolderList(path)\n  if (level > 0) {\n    return list\n      .map(item => getNestedFolders(`${path}/${item}`, level - 1))\n      .flat()\n  } else {\n    return list.map(item => `${path}/${item}`)\n  }\n}\n\n;(async () => {\n  const currentRefs = require('../src/code-sandbox-refs.json')\n  const currentUrls = require('../src/code-sandbox.json')\n  const contentFolder = 'src/content'\n  const folders = process.argv[2]\n    ? process.argv\n        .slice(2)\n        .map(file => file.substring(0, file.lastIndexOf('/')))\n    : getNestedFolders(contentFolder, 2)\n\n  const newRefs = folders.reduce(\n    (acc, path) => ({\n      ...acc,\n      [path.replace(`${contentFolder}/`, '')]: createCodeSandbox(path),\n    }),\n    {}\n  )\n\n  for (const [methodPath, codeSandboxUrl] of Object.entries(newRefs)) {\n    if (codeSandboxUrl !== currentRefs[methodPath]) {\n      // eslint-disable-next-line no-console\n      console.log('creating a new codesandbox for', methodPath)\n      const { request } = await axios.get(codeSandboxUrl)\n      currentRefs[methodPath] = codeSandboxUrl\n      currentUrls[methodPath] = request.res.responseUrl\n    }\n  }\n\n  fs.writeFileSync(\n    `./src/code-sandbox-refs.json`,\n    prettier.format(JSON.stringify(currentRefs, null, 2), {\n      filepath: `./src/code-sandbox-refs.json`,\n    }),\n    'utf8'\n  )\n  fs.writeFileSync(\n    `./src/code-sandbox.json`,\n    prettier.format(JSON.stringify(currentUrls, null, 2), {\n      filepath: `./src/code-sandbox.json`,\n    }),\n    'utf8'\n  )\n})()\n"
  },
  {
    "path": "modules/create-code-sandbox.js",
    "content": "const { getParameters } = require('codesandbox/lib/api/define')\nconst querystring = require('querystring')\nconst fs = require('fs')\nconst packages = require('../package.json').dependencies\nconst endpoint = 'https://codesandbox.io/api/v1/sandboxes/define'\n\nconst fixDateFnsForCodeSandbox = body => {\n  if (body.match(/const (.+) = require\\('date-fns\\/\\1'\\)/g)) {\n    const [string, method] = /const (.+) = require\\('date-fns\\/\\1'\\)/g.exec(\n      body\n    )\n    return body.replace(string, `const { ${method} } = require('date-fns')`)\n  }\n  return body\n}\n\nmodule.exports = path => {\n  const [, frw, folder, method] = path.match(/src\\/content\\/(.+)\\/(.+)\\/(.+)/)\n  const query = querystring.escape(\n    `previewwindow=tests&file=/${folder}/${method}/vanilla.js`\n  )\n\n  const fixFileName = (fileName, method) => {\n    const newFilename = fileName.replace(`./src/content/${frw}/`, '')\n    return newFilename.replace(`/spec.js`, `/${method}.spec.js`)\n  }\n\n  const glob = require('glob')\n\n  const fileList = glob.sync(`./src/content/${frw}/**/${method}/*.js`)\n  const files = fileList.reduce(\n    (acc, file) => ({\n      ...acc,\n      [fixFileName(file, method)]: {\n        content: fixDateFnsForCodeSandbox(fs.readFileSync(file, 'utf8')),\n        isBinary: false,\n      },\n    }),\n    {}\n  )\n\n  const parameters = getParameters({\n    files: {\n      ...files,\n      '.prettierrc': {\n        content: fs.readFileSync('./.prettierrc', 'utf8'),\n      },\n      'package.json': {\n        content: {\n          name: `${frw}/${method}`,\n          dependencies: {\n            [frw]: packages[frw],\n            '@babel/runtime': '7.15.4',\n          },\n        },\n      },\n    },\n  })\n\n  return `${endpoint}?parameters=${parameters}&query=${query}`\n}\n"
  },
  {
    "path": "modules/create-files.js",
    "content": "const fs = require('fs')\nconst templates = require('./templates')\n\nmodule.exports = ({ base, project, section, method, example, description }) => {\n  if (!fs.existsSync(`${base}/${project}/${section}`)) {\n    fs.mkdirSync(`${base}/${project}/${section}`)\n  }\n  if (!fs.existsSync(`${base}/${project}/${section}/${method}`)) {\n    fs.mkdirSync(`${base}/${project}/${section}/${method}`)\n  }\n\n  if (!fs.existsSync(`${base}/${project}/${section}/${method}/spec.js`)) {\n    const template = templates[project]\n    fs.writeFileSync(\n      `${base}/${project}/${section}/${method}/${project}.js`,\n      (template && template(method, example)) || '',\n      'utf8'\n    )\n    fs.writeFileSync(\n      `${base}/${project}/${section}/${method}/vanilla.js`,\n      `const ${method} = () => {}\n\n${example || ''}`,\n      'utf8'\n    )\n    fs.writeFileSync(\n      `${base}/${project}/${section}/${method}/notes.md`,\n      description || '',\n      'utf8'\n    )\n    fs.writeFileSync(\n      `${base}/${project}/${section}/${method}/spec.js`,\n      templates.spec(project, method),\n      'utf8'\n    )\n  }\n}\n"
  },
  {
    "path": "modules/get-example.js",
    "content": "const axios = require('axios')\nconst cheerio = require('cheerio')\n\nconst fetchers = {\n  lodash: async method => {\n    const { data } = await axios.get('https://lodash.com/docs/4.17.15')\n\n    const $ = cheerio.load(data)\n\n    return {\n      description: $(`#${method}`).siblings('p').next().html(),\n      example: $(`#${method}`)\n        .siblings('.highlight')\n        .find('div')\n        .toArray()\n        .map(\n          item =>\n            `// ${$(item)\n              .text()\n              .replace(`_.${method}(`, `${method}(`)\n              .replace(/\\s+/g, ' ')}`\n        )\n        .join('\\n'),\n    }\n  },\n  'date-fns': async method => {\n    const { data } = await axios.get(\n      'https://date-fns.org/cache?url=https%3A%2F%2Fdate-fns.firebaseio.com%2Fdocs%2F-M6fpOu-T9ZlFQtHhlHL.json&v=1.2'\n    )\n\n    const page = data.pages.find(page => page.urlId === method)\n\n    return {\n      description: page.description,\n      example: page.content.examples\n        .map(str =>\n          str\n            .replace('var result =', 'module.exports =')\n            .replace(/\\/\\/=>/g, '// =>')\n        )\n        .join('\\n'),\n    }\n  },\n}\n\nmodule.exports = async ({ method, project }) => {\n  let data = {}\n  try {\n    data = await fetchers[project](method)\n  } catch (e) {\n    // eslint-disable-next-line no-console\n    console.log('Failed to fetch examples for', method)\n  }\n  return data\n}\n"
  },
  {
    "path": "modules/new.js",
    "content": "const fs = require('fs')\nconst jest = require('jest')\nconst getExample = require('./get-example')\nconst createFiles = require('./create-files')\nconst prompt = require('./prompt')\n\nconst base = './src/content'\n\nconst getList = () => {\n  try {\n    // eslint-disable-next-line import/no-unresolved\n    return require('../list.json')\n  } catch (e) {\n    return []\n  }\n}\n\n;(async () => {\n  const data = await prompt(base, getList())\n\n  for (let i = 0; i < data.methods.length; i++) {\n    data.method = data.methods[i]\n    // eslint-disable-next-line no-await-in-loop\n    const { example, description } = await getExample(data)\n    data.example = example\n    data.description = description\n    createFiles(data)\n  }\n\n  if (data.methods.length > 1) {\n    fs.writeFileSync('./list.json', '[]', 'utf8')\n  }\n\n  if (data.test) {\n    const args = data.methods.map(method => `${data.section}/${method}`)\n    jest.run([...args, '--watch', '--coverage=false'])\n  }\n})()\n"
  },
  {
    "path": "modules/prompt.js",
    "content": "const {\n  getProject,\n  getSection,\n  getSectionInput,\n  getMethod,\n  runTest,\n} = require('./questions')\n\nmodule.exports = async (base, list) => {\n  const project = await getProject(base)\n  const section = (await getSection(base, project)) || (await getSectionInput())\n  let methods = []\n  if (!list.length) {\n    const method = await getMethod()\n    methods.push(method)\n  } else {\n    methods = [...list]\n  }\n  const test = await runTest()\n\n  return {\n    base,\n    project,\n    section,\n    methods,\n    test,\n  }\n}\n"
  },
  {
    "path": "modules/questions.js",
    "content": "const inquirer = require('inquirer')\nconst fs = require('fs')\nconst capitalize = require('lodash/capitalize')\nconst path = require('path')\n\nconst listProjects = p =>\n  fs\n    .readdirSync(p)\n    .filter(f => fs.statSync(path.join(p, f)).isDirectory())\n    .map(dir => capitalize(dir))\n\nexports.getProject = async base => {\n  const { project } = await inquirer.prompt({\n    name: 'project',\n    type: 'list',\n    message: 'What project?',\n    choices: listProjects(`${base}`),\n  })\n  return project.toLowerCase()\n}\n\nexports.getSection = async (base, project) => {\n  const askAgain = 'I want to add a missing one'\n  const { section } = await inquirer.prompt({\n    name: 'section',\n    type: 'list',\n    message: 'What section?',\n    choices: [...listProjects(`${base}/${project}`), askAgain],\n  })\n\n  return section === askAgain ? '' : section.toLowerCase()\n}\n\nexports.getSectionInput = async () => {\n  const { section } = await inquirer.prompt({\n    name: 'section',\n    type: 'input',\n    message: 'What section?',\n  })\n\n  return section.toLowerCase()\n}\n\nexports.getMethod = async () => {\n  const { method } = await inquirer.prompt({\n    name: 'method',\n    type: 'input',\n    message: 'What method?',\n  })\n\n  return method\n}\n\nexports.runTest = async () => {\n  const { test } = await inquirer.prompt({\n    name: 'test',\n    type: 'confirm',\n    message: 'Run test?',\n  })\n\n  return test\n}\n"
  },
  {
    "path": "modules/templates.js",
    "content": "exports.spec = (project, method) => {\n  const prjToVariable = project.replace(/-(.)/g, '$1')\n  return `const expected = null\n\nconst ${prjToVariable} = require('./${project}')\nconst plain = require('./vanilla')\n\ntest('${method}', () => {\n  expect(${prjToVariable}).toEqual(expected)\n  expect(plain).toEqual(${prjToVariable})\n})\n`\n}\n\nexports.lodash = (method, example) => `// https://lodash.com/docs/#${method}\nimport { ${method} } from 'lodash'\n\n${example || ''}\n\nmodule.exports = ${method}()\n// =>\n`\n\nexports['date-fns'] = (\n  method,\n  example\n) => `// https://date-fns.org/v3.5.0/docs/${method}\nimport { ${method} } from 'date-fns'\n\n${example || ''}\n`\n"
  },
  {
    "path": "netlify.toml",
    "content": "[[plugins]]\npackage = \"@netlify/plugin-sitemap\"\n\n  [plugins.inputs]\n  buildDir = \"dist\"\n  exclude = [\n    '**/404.html'\n  ]\n"
  },
  {
    "path": "next.config.js",
    "content": "module.exports = {\n  compiler: {\n    styledComponents: true,\n  },\n  eslint: {\n    dirs: ['src', 'modules'],\n  },\n}\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"react-static-starter\",\n  \"version\": \"1.0.0\",\n  \"main\": \"index.js\",\n  \"repository\": \"https://github.com/cedmax/youmightnotneed\",\n  \"license\": \"MIT\",\n  \"scripts\": {\n    \"new\": \"node modules/new\",\n    \"contributors\": \"node modules/contributors\",\n    \"serve\": \"serve dist -p 3000\",\n    \"pretest\": \"next lint\",\n    \"test\": \"jest\",\n    \"posttest\": \"codecov --disable=gcov\",\n    \"start\": \"next dev\",\n    \"build\": \"next build && next export -o dist/\"\n  },\n  \"dependencies\": {\n    \"axios\": \"0.27.2\",\n    \"date-fns\": \"3.5.0\",\n    \"is-mobile\": \"^3.1.1\",\n    \"lodash\": \"4.17.21\",\n    \"next\": \"^12.1.6\",\n    \"react\": \"18.1.0\",\n    \"react-dom\": \"18.1.0\",\n    \"react-highlight\": \"0.12.0\",\n    \"react-modal\": \"^3.15.1\",\n    \"react-scroll-up\": \"^1.4.0\",\n    \"react-simple-linkify\": \"1.0.3\",\n    \"styled-components\": \"5.3.5\"\n  },\n  \"devDependencies\": {\n    \"@exampledev/new.css\": \"^1.1.3\",\n    \"@swc/core\": \"^1.2.192\",\n    \"@swc/jest\": \"^0.2.21\",\n    \"cheerio\": \"1.0.0-rc.11\",\n    \"codecov\": \"3.8.3\",\n    \"codesandbox\": \"2.2.3\",\n    \"eslint\": \"^8.16.0\",\n    \"eslint-config-next\": \"^12.1.6\",\n    \"eslint-config-prettier\": \"8.5.0\",\n    \"eslint-config-react-tools\": \"1.1.7\",\n    \"gh-got\": \"^9.0.0\",\n    \"glob\": \"8.0.3\",\n    \"husky\": \"8.0.1\",\n    \"inquirer\": \"8.2.4\",\n    \"jest\": \"^28.1.0\",\n    \"jest-date-mock\": \"1.0.8\",\n    \"jest-environment-jsdom\": \"^28.1.3\",\n    \"lint-staged\": \"12.4.2\",\n    \"prettier\": \"2.6.2\",\n    \"readme-filename\": \"^1.0.0\",\n    \"replace-in-file\": \"^6.3.5\",\n    \"require-markdown\": \"1.2.0\",\n    \"serve\": \"13.0.2\"\n  },\n  \"lint-staged\": {\n    \"*.js\": [\n      \"prettier --write\",\n      \"eslint\"\n    ]\n  },\n  \"jest\": {\n    \"coverageDirectory\": \"./coverage/\",\n    \"collectCoverage\": true,\n    \"collectCoverageFrom\": [\n      \"./src/content/**/*.js\"\n    ],\n    \"testEnvironment\": \"jsdom\",\n    \"setupFiles\": [\n      \"./jest.setup.js\"\n    ],\n    \"transform\": {\n      \"^.+\\\\.(t|j)sx?$\": \"@swc/jest\"\n    }\n  }\n}\n"
  },
  {
    "path": "public/robots.txt",
    "content": "User-agent: *\n"
  },
  {
    "path": "public/site.webmanifest",
    "content": "{\n  \"name\": \"You might not need\",\n  \"short_name\": \"You might not need\",\n  \"icons\": [\n    {\n      \"src\": \"/android-chrome-192x192.png\",\n      \"sizes\": \"192x192\",\n      \"type\": \"image/png\"\n    },\n    {\n      \"src\": \"/android-chrome-512x512.png\",\n      \"sizes\": \"512x512\",\n      \"type\": \"image/png\"\n    }\n  ],\n  \"theme_color\": \"#ffffff\",\n  \"background_color\": \"#ffffff\",\n  \"display\": \"standalone\"\n}\n"
  },
  {
    "path": "src/code-sandbox-refs.json",
    "content": "{\n  \"date-fns/01-timestamp/fromUnixTime\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADARgLQBcIFt5YCGuADgPRgBOA9rgKoB2EAHgCp4xkAmhWMGYBnAB0AKwTIQAY2oM-cpCDJkABAAssWEnETKefAUOHVKAczIA3AEzC0AZmEpu1KXAo16TNhwA6DGUJYKsAqVLSMLOz4KgC-KgC8KpQwAI4ArhDJABQA5Pr8gnA5AJR-fsoqAMLJvDAqWGp1-SpWAJwqAGIwAEaUaYSUAJ4t6FYqaGiIACwArIgoc3641FxpsMIwzCQmWHAJoR4R3vhZ9nYLaDOtC6UMFfEAfCoA6jBcnT0t7Vaj45Oz8xmfhAABoQBA4AAhCAMAaDJBgQhQOAwGJg9DYDhwIikdzhLxRThhTyRDjCOAkGBSMQSUABeRYRQBbEqTaUqR8d6JBgwADuKgAIrUskK-MI6KxKlkfmgrCDxvK2vKJvLZvKZsVbn5mUF8oV9sl0pkYLlhNxaoYircdSoSFBCDCDakMtkcmaLIQmFB7SUynICLliUdCTl5VligknsA_CpWVsqVgsnqhMVhFhqABRdJIrJshNvW6xvMcrJ2h0MVPprP9KBJ2qFW4xW6g8FQmFwhFIlFokAYnD4bHEchBgkcSye6D2mlIOmyBlM2Qskek6KJNKj1dPHn80Um9cruoAKnGKFPWruqmqMFq9UaKmabQ-vX6QxGsr-0zmC0QSxWaxgGxbDseyJMuxwmmcFxXDc5SqI8LxvE-XxvmMEyfoCwJghC0KwkMnbIqiYLCCQySaBAMCUJQUgztIc4wAoiAgNGDCxj4IAorgEBsYgoRdjAIIxiobFwDCpiwAAimk1B8Nx9R9PxglsQMNC8gACgM9FwLJSkWNQEBcGxAksUJIDpNJMCqTQ2jaSAJHwBRFgwGxfgxMCPYkIQUgANaEKYAHiLINH0vRjKSLC-CKPklp4iS4EtlwMCUgwCX-ORtIgFFhSKDYVg2GgLYAALdIQ3QwFAZB9HIHCKAA7LYMzCFMIAxC1LVAA&query=previewwindow%3Dtests%26file%3D%2F01-timestamp%2FfromUnixTime%2Fvanilla.js\",\n  \"date-fns/01-timestamp/getTime\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADARgLQBcIFt5YCGuADgPQDmMWAKnjGQCaFYwZgB2cAdAFYLIQAYwD2HVuKQgyZAAQALLFhJxEM5q3ZduIgE4UyANwBM3NAGZuKJiKFxK1OvgA6HUVyyzgsqrXqyAX1kAXlldGABHAFcIcIAKAHINNk44BIBKV1cZWQBxalkseRhC-jgiUlkRMFljAE5ZADEYACNdKMJdAE9a9GNZNDREABYAVkQUUbNjc0RXXBFGKNhuGAAPEj0sOBCfR3o4jhgAd1kAERYYOIvWbgBVGgBhOOM-gBoBj_qPwY-xj9GPxm6RB2TkwQAfANzOZJmhRnU4TNXCA3iAIHAAEIQDidLpIMCEKBwGABNHobBlCrkXxOBi0-jcOAkGBCPgCUDuCRYKTucqydYsoSsRi7Cyw0bwxGS5EcVx8zzJVK7cLRWJXBLcJiXLRpTJuMT8khQQg4lWRGLxTVGQgcaAmjJZcQERIM_AJD5xdIhKHAVyyAUbVlYOJKrjpbhYEQAUWiRLiguDMEY-oDieFcWNpo4EajsY6UFDl1S-oC-tR6KxOLxBKJJLJIApOHw5WINP2-BtdqgJvZSE5Ym5vMNnjdJVCyR9smS3DHXqdOXyniKJWbBDbVRq9SarXaeN6aH6gxG40m01m80Wyxgqw2Wx2oTnR1ONyur_uTxe70-tTqPzQfyArIQGHuYIL6jkkLQhKUpIuYKJohi2K4t0tbEqSaLcCQ4RKBAMC6LoQj9sIg4wJIiAgH6HABs4IAkrgEC0YgsiEuhbz-rItFwDiFCwAAilEIisExhTtDA7HUZxICdLoIjHAACp0ZFwCJtGEIYIgQIwtESTRIDREJMDybJKiqSA2HwPhhgwLRrgBCiDYkIQQgANaEFQ7JiMRXJkTygi4vgUjJLqDh-IFaKMDALIcJFbh4RyIDBakUimMYphoBWAACLSEC0MBQGQ7TiPQUgAOxmFMwwgAENU1UAA&query=previewwindow%3Dtests%26file%3D%2F01-timestamp%2FgetTime%2Fvanilla.js\",\n  \"date-fns/01-timestamp/getUnixTime\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADARgLQBcIFt5YCGuADgPQDmMWAqgHYQAeAKnjGQCaFYwZh1wAdACsEyEAGMA9nR6ykIMmQAEACyxYScREq48-AwVIBOFMgDcATILQBmQSk5SJcStXpNW-ADp1pArGVgZSpaBhY2ZQBfZQBeZWMYAEcAVwhEgAoAcj1efjgsgEpfXyVlAHFqZSxVGGq2OCJSZSkwZUsATmUAMRgAI2MUwmMAT3b0S2U0NEQAFgBWRBR55QBhAFFmRF9cKQ4U2EEYRhITLDg4kPdwrxgMuhgAd2UAEW47t55BGmZVjMsJgAaKbAzrA6bAhbA-aFWGlFSxAB8U1stmWaHmHWWvhAgJAEDgACEIHRhiMkGBCFA4DAonj0NgGk1yKEPBF8G4wp42II4CQYBIRGJQP45FgFP5GspjvyJDwOJc7Gj5hisfMSn4ZFLcvlLolUuk7llBJx3gYCsVNQFlCQoIQSXrkmlMsaLIQGFA7UUNTxGtlWTc2FlgRlCnFkcBfMppScBVgMjqBIVBFgpOtUlSMjK4zAOJbo9m5Rlbfa6MnU-mhlAE-98paopbcfiiSSyRSqTS6SAGTh8I1iCzrtyOeZ3dA7UKkCKZGKJVrAgHh3V4rlw8oALLcVQpwZ-Gs8ZQqNAoE-W-EVKo1Oq9ggDlptTo9fqDMnjNCTaZzRbLNabbZ0XZ9kOGUzgueJF3ZO4HmeT4Pneb5fn-IEQXaDpwTQSF5mhWFLTKJEUWVd9lRxPECWJUlRnbalaTxQQSESDQIBgYxjAkKdJBnGB5EQEBIzoaNvBAGlcAgQTEGUSlqMBKNlEEuASQoWAAEUUikHgxOqQYYGk_jZJAYZjCkR4AAVhi4uANMEwhzCkCAOEEnSBJAVI1JgYzDK0SyQHo-BmPMGBBN8KIcS7EhCAkABrQgqCFGR2NFLjxXEUl8AUXJzU5NlbibDgYH5Ohcr8JjhRAdL8gUaxLGsNAmwAAT6Qg-hgKAyF3G8FAAdhseZBFmEAogGgagA&query=previewwindow%3Dtests%26file%3D%2F01-timestamp%2FgetUnixTime%2Fvanilla.js\",\n  \"date-fns/02-millisecond/addMilliseconds\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAJgLQFtpQnGAYwHsA7AEwHoBDc8gWV3yLPLkvOoBcYMxS4AOgBWCZCBKkeUpCEqUABAAsuXAA5xE8zjz4DBxAE4BzSgDc0ggIwBmQSg7FC7WgyYFJbADqlJcLgrACq6MUHgerHAKAL4KALwKhjAAjgCuEEkAFADkOrz8cNkAlD4-8goAgnQKAOwArCgKOGHMnlFcxApWjQBSqVAAngpoKFYALF1oiGN1iDYo9igoiD5YxOT9MIIwAB5qRlxRCSHuLBRwmaQwAO4KACLcMJkj4wA0CgBs793faO8z73m7xQRXe9RBZUUcQAfAoACpKVIKPpQLqNF4TKxTGZzBbgnwgV4gfAAIQgpGohgGSDA1CgBGiRPQ2FOnhodFC4TObHZbhaEXOgjgaiIIjEoEk0i4sj8AV2IsIPHI8QUV1uDx4z1GY3eXzRv3-dUBKDBDRKpB8soUeQKKqSaQyT2ygg4jz0hXNVrUUGo5LtKXSWWd5mopFw1GKpSk8C4ORO_O5hXemSK8VhwB8CgU8qIsZtAiKgg6AFE0nTMjnFTByOas5XY97faRCyWy1BMvm4OboubCcS4GSKVSaXSGUzMM0uWz41PIiGw2FqGKkBKyFKZWR_MEOazIiqO493lgu2nApnrY8hTAuJzWpEDzxBMZr7eBWwUwoANRNLvnpJcVJDFIC8eB8aIo3KKplXBJpd3OBQOjRZF-iGDFJmmWZ5kWZZVnWTZtj2A4jm3PlZ3OS4bnuR4tTeT5vhNSZDWNYFQVqM1IVPBEkRRJC0KxDDcUEfFSD7UlyUpalEFpekYEZEBBDUf8uAgGBDEMQgVwkNcYBkRAQAzYCFC8EACBwYzEAUaSCFec9jLgcljFgABFVJiFApAEMMVIYBswzjMpQxiGuAAFSkdLgcyjJAagzGICByGM3ys2MtI3JgYLAo0SLjMU-BVLMGBjLAgk5LUahCAAa2oZ8xTITTJR06VxApLAYFkPJ3V5V9Ez7cgYBFCgdMIFTxRADqClkSw0EsKw-wAAQAI2oBaYCgSgvKkCBWtkGprDqQQxhAaJjuOoA&query=previewwindow%3Dtests%26file%3D%2F02-millisecond%2FaddMilliseconds%2Fvanilla.js\",\n  \"date-fns/02-millisecond/differenceInMilliseconds\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAJgLQFtpQnGAYwHsA7AEwHpyIwwYAnGUwmASVIFld8izy41AIYAXGBjCk4AOgBWCZCBKkxKpCEqUABAAsRIgA5xEm8qPGSZxBgHNKANzTSAjAGZpKasUKCadRsysHNxQeATKAgA6LGRwIlrAWn70TCzsXDzh_HBaAL5aALxaTACOAK4QTAAUAORmYhJSNQCU0dGaWgASxADuWlhCpACe_Zl8FDlCTFoARjAiPTDM7dpoWgBSZVAjaCjOACxazmiIriiIu9IAbCgoWoPkWmub2097h8en52jO0gDstwA_NEsMRyFsYNIYAAPAzWEQ5IrJAJpYJjCJwKrRLRaUgwPoAEXMVV2BwANForhS0BTjhSztTnBSAShmmTsbj8VoiWISe8KVSnrSaVoGW8BbdWqQpR0CgA-I7OW7REBkkD4ABCEFIUyGSDAQigBFyavQ2HR_GotBSgXSITC4wEVv8qSCGVCvAx0jgBiIcgUoGUqhE6mUcS0MN9hDEjyKziVKDaMSk8XqMEshWKMHKlRgtWkwgalha0TD8QMUCE2szpQq1RqBfsg1wQhLpGiYjitWRrrtFomNQpVWahQVwA5kaIIiqacszWkImIAFFyoaqpPozByFKcRvpxWq9KF8vV1AZ-Y59FclLVeq4FqdQw9YgDUaYCaQGacB6shRnTbUXdB0MQcZtQiEf0kEDMhg1DWJU2tFE3XtT1skzc8xAAQQpNMNRHeUknMTCtAwQixA1JMOm6PoBmGUYf0dSZpjmBYlnbUgOmeLYdneI4TjOC4UGuW57goJ4Nm4t4Dj4r4Ll-FlgVIUFwVgKFYXhREkkQ3s0QYjEsVIHE8UJYlSX2AVqWFekUEZZlJXZQzORM3kzIsoU-Os6kbMpSVohlbQCPjZVSFvTVtV1fVDWNNVpAMJh9AgRgGEIKClBg5gQ0QEBx0cyIQAIHA8sQLRXwIBycTyuBtRsWAAEUymIMQiq0EQGDKGByq0PKpgYXoAAUpmYOBmu6-xiAgcg8s6vLykamA-t6owRpAOL4EYewYDyq8VQ_AwhEIABrIQbEheQyFSoMMtSnUsBgdQ00aXxtNtXTgOyW9yBgX0KECRKAxAB7LHUJw0CcZxbwAARmIQ5igSg2pUCBbvUP4XAAVmkfYQFyHGcaAA&query=previewwindow%3Dtests%26file%3D%2F02-millisecond%2FdifferenceInMilliseconds%2Fvanilla.js\",\n  \"date-fns/02-millisecond/getMilliseconds\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAJgLQFtpQnGAYwHsA7AEwHoBzGAFwFld8izy5LyBDOmDMUnAB0AKwTIQJUr2lIQlSgAIAFnToAHOIgXde_QUOIAnapQBuaIQEYAzEJSdihDrUbMCU9gB1SUuHUVgRVcmKDwPNjhFAF9FAF5FIxgARwBXCCSACgByXT4BOGyASh8fBUUAcXpFOmUYRRwwlk8o4jBFNABORQAxGAAjI1SuIwBPDpQrNEUrK0QAFgBWRBRF6zQbRB8sYnJU2CEYAA91YzoohJD3Vgo4TNIYAHdFABEeGEy0SbQAGhm_rp_WZ_JZ_RZAjZFEqkcpxAB8Mw2PhAPxA-AAQhBSCNRkgwFwoARoqj0Nhrp4aPRQuEbuxKW4mhFbkI4OoiKJxKApDI6HI_AFjmzCLxyPFETZSr4yP5FHkCmKkmkMh9skJOO99IVofzFOooFwsQqUuksqrzFxSLguMVJbx_DkrozaYU_pkivEEcAfIpFIKiHRMnLBEUhHRiABRNIEzJ-4UwcjQn2xgN6g2kENhyPDKCB94FaHRaEotFwTHYsZ4glEkmYRo0imO-uRc2WsJcDlILlkHl86UBRvNSJivIe2XvIQDpnsN2S8pVAK1ep1we3RRtDrdPqDYZjCZTGZzJYrNZTTbbXb7GCHE5nC7BKnkyL3J6vd6fb5AgGdIFWEHgxT_qeUJlEo8LisiqIYliOKVoSMDEiAQjqEkagQDARhGIQnaSN2MCyIgIBeqQPpeCABA4KRiCKPicE_N6iikXAWLULAACKqTELwlE1EMMB0cRDEgCMRjEI8AAKIx4XA3GkVwZjEBA5CkfxJEgGknEwGJImaDJIDIfA6FmDApE-NEyIIeoXCEAA1lwtAcmQ2HcnhvISNiWAwHIeSavS1IruwxbkDAbIUHhhBoZyIDeQUciWGglhWMWAAC_RcP0MBQJQQzSBAHlyAA7NYazzCA0RlWVQA&query=previewwindow%3Dtests%26file%3D%2F02-millisecond%2FgetMilliseconds%2Fvanilla.js\",\n  \"date-fns/02-millisecond/setMilliseconds\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAJgLQFtpQnGAYwHsA7AEwHoCAXAWV3yLPLkvIEMaYMxS4AdACsEyECVLdJSEJUoACABY0aABziI5nbr34DiAJwDmlAG5oBARgDMAlO2KE2tBlDwEJrADqkJcGvLA8i6MHixw8gC-8gC88gYwAI4ArhAJABQA5No8fHCZAJQ-PnLyAMowAdYoKPI4bkyeETTE8pblMKrcWABGMAbyaCiWACxtlojViCMoAgCsNYg-WMTkybACMAAeqoY0EXEhDWEUcOmkMADu8gAiXDDpQ6MANPIAHK-Wn1_y1a8zrwWKAKr2qwJKChiAD55HQyB1VPJhoNhmNLBMpjMBGCfCBniB8AAhCCkDgGACeSDAHCgBEi-PQ2FCzAo1EqrncLNYbPozKaAjgqiIwlEoAkUhoMj8AW2QsI3HIsXkF2ud24j1Rrw-bW-oJQ_31vxqRVIPml8hyeSVCRSaQemQE7HuunyJvNqigHBJ1qSqQyDrMHFIuA4hWKkngNCyR05TUyr3SBViMOAPnk8llRCjlv4BQELQAoikaelM_KYOQTemy1GPV7SHnC8WoOkc3ATZETXiCXBiaSKVSaXSGZh6rGWDyOY1woHg24OCKkGKyBKpWR_MF2XzwkrW_dXlh28nAmmLfcBVvjlyzoeq_FKskDKQz9wfJFw6UKlUanVt6d5C0bQIt0fQDE8aIYig0yzECSykCsawbLKewHJuvJXk05xXLc9wai87yfLqRoGoCxp6uCpClNCsLwhUiLIuB4yTFBWI4qQ3ZEiSZKUog1K0jA9IgAIqgJCoED9AYhBLuIK4wNIiAgKmz7yF4IAEDgqmIPIfEEM8p6qXAJJGLAACKyTEK-SAAQYyQwHpymqWSBjEJcAAKZJyXAmkqSAHCmMQEDkKp9npqpKQWTArnOeo3mqSJ8D9KYMCqW-uKCaoHCEAA1hwRgwCKZDSeKcmSmIpJYDAMg5C6k5_qw3bkJ0cmNb44miiA1V5DIFhoBYljdgAAj0HB9FAlA2ZIEAVTIADsVhzAIIwgJEK0rUAA&query=previewwindow%3Dtests%26file%3D%2F02-millisecond%2FsetMilliseconds%2Fvanilla.js\",\n  \"date-fns/02-millisecond/subMilliseconds\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAJgLQFtpQnGAYwHsA7AEwHo4BXAIwFld8izy5LyBDAFxgzCk4AOgBWCZCBKk-MpCEqUABAAsePAA5xEi7nwFDhxAE4BzSgDc0wgIwBmYSk7FCHWo2YFp7ADqlpcDxKwEruTFB4XmxwSgC-SgC8SsYwAI40ECkAFADkevyCcDkAlH5-ikoAyvQ8xlyEQQDsAKwoSjgRLN4xYMbEWEo2bQBSNFAAnkpoKDYALINoiLPNiHYojigoiH5YxORjMMIwAB4aJjwxSWGerBRwWaQwAO5KACK8MFnTcwA0SgBsfyGQLQf2WfzWfxQxT-LWh5WUCQAfEoACoqGhKUZQQZtb7zGyLZaINAATmEaFafhAPxA-AAQhBSFxjOMkGAuFACLFaehsDdvNR6OFIrd2EKPJ0ondhHANEQxBJQNJZDx5AEgid5Q0YOREkpHi93nwvjNZn9AbiQWDmn8yXbWqVSH4NUp8oV9Sl0plPjlhJwPgYik7XRooFwmZ60hlsn7LFxSLguCUyjJ4DxctcpWKin8ssVEijgH4lEotUQM-6hMVhDxiABRdKcrLlnXkJ2l1sZsMR0g1uuNmjNqtwJ2xJ00ulwRnM1nsznc3mYDqiwVZ1fReOJiJcRVIZVkVXqsiBULCgXRfVZfJ_LCjwvBEtuj6ymA8EVdaLXl-mN8f6XsPmSgYO0o5PikPA0MYpDPnwfixKmFTVHQtT1E0rTtBedxKL0_S4liYyTPiCxLCsawbFsOx7AcRynOclxnpKG53A8zxvB8pq_ACQIoNaSjgkokJKNCsKOgiD7opi2L4cRhKkSS5KUig1K0gyTIsmyiAclyMA8iAwgaBBPAQDAxjGIQ-5SIeMByIgIDFjBSg-CABA4M5iA4QuMA_E-zlwEypiwAAijQxBwUgSi1DQ3m-SALJ9E8AAKLI2XA7lOXFFjEBA5DOT5jnOekYUwIlfRaOlzmGfApkWDAznwdSekaPUADWXC_oqZCWSqNlqpIzJYDA8j5EGEr_jmk7kDA8oUDZhAmUqIAjYU8jWGg1g2JOAACdBcHQMBQJQxg0DIECDfIjS2M0wizCAsT3fdQA&query=previewwindow%3Dtests%26file%3D%2F02-millisecond%2FsubMilliseconds%2Fvanilla.js\",\n  \"date-fns/02-second/addSeconds\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAJgLRxgYwPYB2AJgPQCGRRAyroUXCUWQC4wZgFwB0AVgsiHwFWwpCBIkABAAtmzAA5xEEpq3acueAE4BzEgDc0XAIwBmLikZ4cDCtVrE4AHQJC4zScEl2aQ-pIBfSQBeSS0YAEcAVwhwgAoAclU2DjgEgEoXFwlJAEFKSVMUSWw_OElmPEljYoApKKgAT0k0FGMAFmq0RHaAVkQUFEQXAFs8IgaYLhgAD3ltZnLQnwd6OIIYAHdJABEWGDjWjoAaSQA2U5rLtFO-05R006LMghzggD5JABVpKMl6qDVYpHTrGbp9RBFFwgY4gCBwABCEAIZC0jSQYDIUGwAVh6Cwq3IlF8dFsxNW3Dg8lwvH4oCEImYYjcHlm1JwrCIIUkG22e1Yhza7VOFyB11uvSeDyyrkI7kkyVS3PC0ViBwSXEY-3UaReLMk8igZGRysiMXiGoMZAI0CNGRlrHciRWZQSpzi6RCn2ALkkkjZuGYcUVnHSXEqAFFoli4gGOTAiC8_XGg4bjQQw5Ho1Bg_tUi8Ai8YXDEcjUejEJjsTBcSB8aU6ET7GUrTaoEbaUh6YRGcy5R4XaTubnWKc4J6Pp5fQr9lxsMwSY4R1MdDAFxSPZIANQlJNhNdRLQEGesFwBGU5fJcoolCkVKo1f4NZogro9fqDYYEMYTWDTOYLEs3jkmU6xbLs-yCic5yXCg4qSHckgPFKLxvJ8Px_ACQItEKb4QlCBDFvCSIomiGJYjisJcPI4RyBAMBaFoOBdoIPYwKIiAgD6x6SE4IDYCMEB8YgkhVtgxzTnxcDIjosAAIpRHgp5IBUWhRDAEk8XxqJaHgmwAAqouxzgqdp-h4BARB8Zpfp8dESkwPpumKMJvEgDR8AMfoMB8We0K1vIZA4AA1mQq60oQLEMuxTICCiIwwGIyQ6k2i70MWRAwNSxDsTg9F0iAyWpGIRhoEYxjFgAAgARmQ1UwFAJBqcIEAJWIADsJi9Fw7QgAE_X9UAA&query=previewwindow%3Dtests%26file%3D%2F02-second%2FaddSeconds%2Fvanilla.js\",\n  \"date-fns/02-second/differenceInSeconds\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAJgLRxgYwPYB2AJgPRERhgwBOMBOMAkgQMq6FFxkCGALjBjAE4AOgBWCZCHwF-spCBIkABAAtevAA5xESonwFDReagHMSANzQiAjAGYRKMnhxdylGnQbM2MzgB16QjheZWBldypaeiZWdmI4ZQBfZQBeZVoARwBXCFoACgByfX5BYUKASkDApWUACTwAd2UAW24CAE9lbD9E7lplACMYXkaYOhqVNGUAKWyoLrQUGwAWZRs0RDsURBQAdhEATmPldqJlabmFi-W1ja2dpccUFAB-QJa8InmYERgAD00Jl4iXSkU8MR88U4-UCymUBBgzQAIgZ8ktVgAaZQANmxaGxG2x23xKGxKAqmLhCKRylR_HRt2xeIuhIJyhJyj22OOhyqBH5tVSAD51mhAiBMSAIHAAEIQAj9DpIMDcKDYJJS9BYaFkChRLyxXwcNz6iHeOK9ERwTS4cSSUAyOS8BQyELKAG2nD8c7pDbVILCUIlGBGNIZGA5PIwIoiHilIyVQJu0KaKDcBXhrK5AqFOMWdrQdNJgiBfghIrg6IW40JQrY_IVNKi4DUz24Xj5ENGCoiXh4ACiOTV-Xb3pgRH58LHnbTGYFfcHw6gXYMPcCSX5kulcoVSpVao1WswPQ4eo81aN0K4BYIRe49qQjsIztdwWDZsvUN64dX_AAgtiIayk2IrKAAsnwqh9tQ2T0Pkf4wP-ygYBEBggcoKg2C8FIBrUDTNG0nTdNepwDMMozjKWBC1Jc8yLLcYoPLsBy8qcxAXLM9E3KsTHbIgTw4e8BCfN8sB_ICwKghEn6Gt-JqwgQ8KIiiaIYiszL4myxJkjc5KUtSKl0mpTK4lpYo6di3LKLy_KCioYH-gQ24yvKirUMqiCquqMCaiAIiaLQGgQDQ1A4E-0gvnQLqICArZKco_ggNgLQQEliDKN52BUglSVwAqpiwAAitkeD8Olyi8LBMA5fCSX9NQTQAAr9HQcAVfVFh4BARBJbViUgDkZUwE1jXaB1ICBfANAWDASUbhKfmaNwOAANbcKYvwSIQEVOtFEWKi0MAKCGZSmhecmWia25EDAtrEF4IUOiAp1GAo1hoNYNjbgAAoM3DDFAJCwbIEBHQoBw2AArCIKwgEkCMI0AA&query=previewwindow%3Dtests%26file%3D%2F02-second%2FdifferenceInSeconds%2Fvanilla.js\",\n  \"date-fns/02-second/endOfSecond\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAJgLRxgYwPYB2AJgPQzEDyYAyroaUQIYAuMGYBcAdAFYLIh8BVsKQgSJAAQALZswAOcRBKat2nLngBOAcxIA3NFwCMAZi4oSRPDjhlKNOsQA6BIXGaTgk8kSq0hIkkAX0kAXkktGABHAFcIKIAKAHJVNg44ZIBKV1cJSQAVaRgfYkk8MElGSWxAyTBtSWNJABFcGABbACMYLUk0FGMAFn60RGMAVkQhia4hlBREVw68IljYLhgAD3ltZjhw0r9HQMSCGAB3VpYYRIHhgBom4yeX0deJp5mvhaycgnyYQAfJIALKEVq4SSDfqDEZoMaTaazACcaNcIAeIAgcAAQhACIwtABPJBgRhQbDBLHoLBOUi-fz0-zHAL0LhweS4Xj8UBCETMMTuTzbLk4VhBCLnK4tG53OGvN5vBEfL6fSRolH_VzCyRpDKHKJxBK3ZJcKw3dSZf66-RQRgEw0xeJJM0GRgEaD27K5YTwZgpRknejJJ6JLLhEHAVySHw7XAB_WcLJcZh4ACicQpiVFCZgRH-sdz4sSdodBBTaczsWzSbg_2C_0x2LxBKJpMQ5MpMGpIFptXoLKZgXdnqg9p5SD5hAFQsIHiOw_ohzSkck0uurESoJY0i4OBg0ESq6kxgWKAjAComufJBgmtqAVIiiVfOVKtUB2UGn1mm0D90vSwsMozjFMMxzAsSwECsawbKKewHBEQZssQZyXJutz3EMiqvE8KpNOq3ySPMF7_ICILggQkI4NCzTYaBSIQZqGJYji-KEiSZIUlSWJcPIURyBAvRaDgU6CDO5CCogIDRtRkjOCA2AdBAimIPUPEwA8MYKUpBI6LAACKsR4KwamSMwWixFpOmKUSWh4BcAAKRLkHA5l2foeAQEQinafJilxKZMBOQ5igeSAAnwL0-gwIprjBBivbyIwOAANaMDoMA8oQ4n8lJ4mEh0MBiGkVpDsGxDNkQMBcsQ5A4MJvIgGVGRiEYCImM2AACXSMD0UAkFZwgQMVYgAOwmLMQwgMEc1zUAA&query=previewwindow%3Dtests%26file%3D%2F02-second%2FendOfSecond%2Fvanilla.js\",\n  \"date-fns/02-second/getSeconds\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAJgLRxgYwPYB2AJgPQDmMALgMq6FFwlECGlMGYBcAdAFYLIQ-AmxFIQJEgAIAFpUoAHOIkks2HLtzwAnMiQBuabgEYAzNxRM8ORhRp1icADoFhcSlOBS7tYQykAvlIAvFLaMACOAK4Q4QAUAORq7JxwCQCULi6SUgDiVFKUMjBS2H5wUnhgUmgAnFIAYjAARtpRzNoAnjUoxmhSxsaIACwArIgooyZopoguALZ4RFGw3DAAHgo6lBWhPg4McQQwAO5SACKsMHFovWgANAOPdY-Dj2OPo68z6ZkEOcEAHxSUYuED3EAQOAAIQgBA6nSQYGYUGwAQh6CwB3IVF89FsuIOPDgClwfAEoGEoko4jcHg2pJwbCIIRBWVchHcUmSqVZ4WisWuCW4TCuGjSfzpUgUUGYcL5kRi8WFBmYBGgsoy7LY7kS-3KCUecXSIWBwBcUikDNwlDiPK46W4lDwAFFoii4tamTAiH9LV7bTK5QRHc63e0oHarqk_gE_uDITC4QikSi0RjMGV6Dj7OVVeqoLLyUhKYRqbTOR59fjWclTdyrtxq45jeycvkPEUSlnHJVqnVGi02gien0BkMxhMpn1ZgslisYGtNttdt5CeUjqcLlcbndXs9aq9jO8viDvqZftlpEC2QQE1DYfCuqnUTB0SBuApwvIIDBtNocBLIQyxgMREBAc0CEtJwQGweYIBgxApGRV97gtKQYLgOEyFgABFKI8DYRDCjaGA0KgjCQA6bQ8BOAAFDpQOcJBKOYfQ8AgIgYPI6CQGiQiYDomilGImCv3gP99BgGCXACMF3wUZgcAAa2YChyUIICqVAmlBHheYYHEZJxRzPFHATIgYFJYhQJwX8KRAYzUnEIw0CMYwEwAAWaZhmhgKASDaEQIAM8QAHYTCmYYQACWLYqAA&query=previewwindow%3Dtests%26file%3D%2F02-second%2FgetSeconds%2Fvanilla.js\",\n  \"date-fns/02-second/isSameSecond\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAJgLRxgYwPYB2AJgPQRwDKAhgLYwW6GlFUAuMGYBcAdAFYJkIfAXaikIEiQAEAC1asADnERSW7Ttx54ATgHMSANzQ8AjAGYeKEkTw44ZSrXqNiAHQIi4racGnlqOgYRImkAX2kAXmkdGABHAFcIWIAKAHJ1Di44NIBKDw8paQBBWOkAFmkGRXYaACMYHWk0FFNKlAA2RHMURFMAVisUFGkqYgqqmBqYesbm1vaunrNB_uHCmQgCaVZZGGk4ZwPXIgB-Dxo8IgTYHhgAD0VdVjgo_ycgk5SPaWkCGAA7tIACJsGApFptAA00gAHDDyjCOjCejCBrkoT8_oCQWCIQsYfCKkiUSg0f0YWsUPkCDSipEAHw7HQJGAeEBQkDkABCWyoOgAnkgwFQoNgwpz0FgTo5Ai4QrLnMEmDw4IpcPxBKARGJWBIvD4HuqcOxQtFWCy2QQPAbpJlsm9YolkuC0jwbGDNDkabbFFAqFtHfEkqk3UYxtB_XkCqJ4Kx0gElSc0jCUrkokzgFijbh4_buLkeKw8ABRRKilI5k0wIg035V-N-gO0oul8tQFL5uA0sI0jlcuC8gj8oWIEVimASkBS7AKxOfBWGCNQf2apDawi6_WEbzvOXK8bRTtg4owzLc9OMrEAWTYsh4VDqcGP7GK0gwdrBF-kAB5pKZhhGAAyIDP1fHg9BgVgDyIZ9L0iaJzwgqCYLgmMilKfZKmqWoGiaSFFm6XoBiGEYxlCbCplwuYCOkToiJWHgqQ2fxtl2fZDjoY4QnOAhLmuW4jWeV5onneUmG-bZsSBUF2HxaE4QRElpFRf8KTojEsX-GS8QIwklOkZEVLJNTKWGGk6RkRlmVZdlOR5PlBWFUVxU5HhFFiBQIEaHQcHXYRNxgcREBALMpLcEBsBoCAIsQaRx2wTFwsirY9FgABFBI8HYWKbJgJLfgi_kdDwAEAAV-SCuBcqKww8AgIgIoK6QIsSbKYDKkrlBqkAPPgRpDDZEAPDCdkp0UKgcAAayoSDNUIfydSCvUhGHOgJEyL1FQXJh-yIKYgv2zxvK1EBNuyCQTDQExTH7AABOpHxgKASBZUQIHWkKAHZGPKEAwgBgGgA&query=previewwindow%3Dtests%26file%3D%2F02-second%2FisSameSecond%2Fvanilla.js\",\n  \"date-fns/02-second/isThisSecond\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAJgLRxgYwPYB2AJgPQRwAqAFuQMq6GlECGALjBmAXAHQBWCZCHwF2opCBIkABFVasADnERSW7Ttx54ATgHMSANzQ8AjAGYeKEkTw44ZSjTj0RRADoERcVtODTy1HQMxNIAvtIAvNLaMACOAK4QMQAUAORqHFxwqQCUHh5S0gCSYNIEeADu_nDSaACs0vQK7AC2AEYw2rUoJgAs0iYAHIhmKIgmdTx1KCgANAUy5LUNTa0dXWg9_UMjYxOWM_4E0qxO0tiuAPweLXhE8bA8MAAeCjqsNVEBTi6MyQQwKoAETYMGSmz6s2kgyh9ShQyho3hdRyeQIhQiAD4Ttp4jAPCBZiByAAhCAEZjaACeSDAzCg2FCRPQWGCpG-QVcDkCzjZPDgClw_EEoBEYlYEi8Phegpw7CIkRxePynkI3mkGSyipiCSSYNSPGsoI02TRUukCigzHJ2riiRSBsMzAI0CtuRV7G8aQ5vNcqShyRykWxwA80mkMtwrGSmu4OR4rDwAFEEvTkpG5TAiGjwxno5brQR44mU_E07G4GjQmjCcS4GSKdTafTGczMBdGNyfmynS6oFbhUhRYRxZK1T4fb8QlEY6CAIJQjIkxUA4GgwNBrFh6QAWTYVB4zDacFn7Dn0gwGtBJKDAB4BjMUNIAGTPq9nni6GCsKdEE-biIoiXT9v1_f8VUKEoykqaplkaGBmhgdpOm6PoBmGUZxkmaY5gWWD6ngxDkI2LZ0N2LCDifG1TiWDtiGuAhbnuR4ZXeT5qh5X9_kBaQQXYcEtihGFlnhYSkQGFE0QxbFWFxfECFrUlyUpGlEDpBkYCZEAeAUGJ5AgTptBwIdhBHGBxEQEBQ2OaQ3BAbAWggOzEGkdTsHmGy7LgcldFgABFeI8HYZylRgDzwzsyltEqAAFSlzLgELIoMPAIHcQltzshIgpgGLoqUJKQF0-BOgMfEQA8UICS0hRmBwABrZgv2FQgTLFcyJSECkWhgCQMhNLtOUYWsiAQ8zRs8AyRRAfqsgkYw0GMExawAATaI8YCgEhcVECAeokAB2UxJl6EBQnO86gA&query=previewwindow%3Dtests%26file%3D%2F02-second%2FisThisSecond%2Fvanilla.js\",\n  \"date-fns/02-second/setSeconds\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAJgLRxgYwPYB2AJgPTYAuAyroUXCUQIbkwZgFwB0AVgsiPgIshSECRIACABblyABziJxTFmw6c8AJwDmJAG5pOARgDMnFAzw56FaoLoAdAoLjkJwCbZrE4EgL4SALwSmjAAjgCuEKEAFADkKqzscHEAlE5O4hLUbgAsAKye3nQS5HgSRtkwciwAtgBGMJoSaChGuRVGiCYoiLm9TrV4RBGwnDAAHnJa5L7BXvZwMQQwAO4SACLMMDGt7QA0EgAch0anZxI9h_2p1_npBFmBAHwSALKEVXISbS1tHUYuj0-vknCB9iAIHAAEIQAiMTQATyQYEYUGwfgh6CwxTIMCoxRs-LstC4cDkuB4fFAgmE5FELjckwpOBYRCCEhW6y2LF2_0OJwq50OVwkBQeTkZEkSyQ5oUi0R2cU4DG2ahSDylcigjDhcvCUViyv0jAI0B1aQyQng5HiC1JcUOMVSQVewCcEgkzNwtplHFSnDKAFFImiYt7WTAiA9PRHbdrdQQA8HQ1AYn64A8_A9wZCYXCEcjEKj0TBMSBsdh7HiCYsTWaoDqqUgaYQ6QzCK4irXSRz09tDpnXe4PdLtpx7T4YpnR6FyBFNAQxywnH4rVkcmLClXe2UKl86o1mnsAUDev1EINhqMYOMpjM5t2SVOuZttnyDsdTsLLihrihbi3B4nleD4l2ob5fhPTpunPUECFzKFYXhJEUTRDEIU4OQ53ICAmk0HAWwENsYBERAQHdJcJAcEBsFqCAaMQCQS2wfZRxouA4W0WAAEUIjwFckFKTQIhgNiqJohFNDwVYAAUEVIuBGOokBGD0PAICIGjxM9GjIgEmBZOkhRlJo7D4CaPQYBo1cwXLORGBwABrRhtFvXhCCI2lSPpfh4VqGBRESdUa2fOhcyIapSMi5w8OpEBguSURDDQQwjFzAABepGEaKASBEoQIAC0QAHZjHyThchAPwapqoA&query=previewwindow%3Dtests%26file%3D%2F02-second%2FsetSeconds%2Fvanilla.js\",\n  \"date-fns/02-second/startOfSecond\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAJgLRxgYwPYB2AJgPRwAuAhgE7kDyYAyroaUZeTBmAXAHQArBMhD4CncUhAkSAAgAW5cgAc4iGe07defPNQDmJAG5o-ARgDMfFCSJ4ccMlVoNmYogB0CYirOCyKGnomFmJZAF9ZAF5ZahgARwBXCDiACgByTS4eOHSASi8vGVkAFXkYAOdyWTwwWUoA0KJZMD1ZM1kAEVwYAFsAIxhqWTQUMwAWEbREMwBWRHHZvnGUFEQvXrwiRNg-GAAPZT1yOGjKoNcm1IIYAHcujhhU0YmAGnazd8-pr9n3xf-qzyBQIxSiAD5ZABZQhdXCyMYjMaTNDTOYLJarFBeECvEAQOAAIQgBBoAE8kGBKFBsOE8egsE0nBcQu5mS5Waw-HBlLhBMJQGIJOQpD5qgdeThOM0Yjd7p1Hs9kV9vt9Ub9_rMQV4xbIsjkznEkiknuk-LZHtpciDdcooJQSYaEsk0mbjJQCNB7flCuJ4OQMoEOW5WOl3qk8tFIcAvLJZBLcAH9bw8nxyHgAKJJampBNSmBEEFxvMBu0Ogip9NZxI55NwEHhEG4_FEknkynU2n0zDYNlB4Ih4juz1Qe38pCCwjC0WEXz9y7uM5ZKOyOUPTipKEceR8MBQPB6VLLuRmLGRgBU7TPvuKZQq_ZqdQavdYLTaHW6OD6g2GLxRaPmRZllWdYCE2bZdglY5ThiedOWIa47nXJ4_xVL53nVdo_lkAEcKBEEwUhGECDhHAEQ6P8phmQDMVWHE8QJYlSWoClECpGkYDpEA-GUOIlAgIZqBwCdRCnGBJEQEAYxI2QPBAbBeggOTEBaTsYFeWNZPkkl9FgABFRI8E4ZTZHIahEnUzS5Joag8FuAAFGhxLgEzrKMPAIE8XErJAJIjJgezbNUVyQF4-AhiMGA5K8cIcS45RKBwABrSh9BgflCBEoVxJFERSV6GApCyK12QHJpmyIGBeWIcScAEgUQGKnIpFMVFzGbAABfpKEGKASHM8QIAKqQAHZzCWcYQHCabpqAA&query=previewwindow%3Dtests%26file%3D%2F02-second%2FstartOfSecond%2Fvanilla.js\",\n  \"date-fns/02-second/subSeconds\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAJgLRxgYwPYB2AJgPRwCuARgMq6FFwlECGALjBmAXAHQBWCZCHwF2opCBIkABAAtWrAA5xEUlu07ceeAE4BzEgDc0PAIwBmHiiZ4cjCjTrE4AHQIi4racGkPaIhmkAX2kAXmkdGABHcghIgAoAcnUOLjhEgEo3NylpaipWHWYcL3MUXydAsB08AFtpU3KAKXIoAE9pNBRTABYGtEQegFZEFBREN1q8IlaYHhgAD0VdVjgw3yp_ejh4ghgAd2kAETYYeK7egBppADZrxvu0a-HrlAzrsqyCXNCAPmkACqycjSFpQBrlC59UwDHo9RBlNwgS4gCBwABCEAIzB0bSQYGYUGwQRR6CwlTIm0q9ipAV4cEUuH4glAIjErAkHi8i0ZJRgRHWe0OJ3Y526PWudwhj2eEukn2y7kInmkKTS60iMTiZ0SPCYp006S-XOkiigzCxGuisQSuqMzAI0HNmUV7E8ST81MS13iGTC_2Abmk0h5uFY8TV3AyPFYeAAojFCfFQ3yiF9gynw2aLQRo7GE-Qk5G4F8gl9kaiMVicXjEASiTASSAydgApTHHT7Y6oObmUhWYR2ZzlV5PXT1hHTtcS_7vEHVaceNhWFtnJP2Dw9DAV9TfdIML50xFt-QdAQF-w3EFFbl8pRCsVSuVW9tpNU6hDQa0OlD-oMRmMEwEFMMywPMSwrGs4RjtsuwHMcpxilctz3CgMrSC80hvB8bw5DIfyAsCX7go0nTin-cIIigSIomimLYri-KEsSKI8IokQKBAMA6DoOD9sIg4wOIiAgIG57SC4IDYLUECSYgb7MTAlzzpJcBYnosAAIrkHgl5INIhTkEpKkgDiNT7AACjiQmuPpknMIYeAQEQknKeJkkxLpMAWTUyhyRJIDsfA3GGDAklXkiTaKMUADWzBbsyhD8WyQkckI2K1DAEgpIa7argwFZEDAjLEEJOBcSyIA5WkEgmGgJimBWAAClDMJQMBQCQOjkKIECZRIADsZhDDwPQgEEE0TUAA&query=previewwindow%3Dtests%26file%3D%2F02-second%2FsubSeconds%2Fvanilla.js\",\n  \"date-fns/03-minute/addMinutes\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAZgLQFsIDsCuALjAPQCGAJhQLJ5HwkVnEZi5wB0AVgsiAMYB7XMRFIQJEgAIAFoUIAHOIklMWbToIBOAcxIA3AEwcAjGg4pGg_nHJVaBYnAA6uIe0JTgUyjTpOpAF8pAF4pLRgAR3wICIAKAHI1GFZ2BIBKV1dJKQBBKik0FCkcR3gpQkEpE2KAKXwoAE8pQxQTABZqw0QUFB6-1yxBCgaYDhgADwVtQjhQn3t_eDjcGAB3KQARZhg41o6AGikANiOas8MjlHSjoszcHJCAPikAFRl8KXqoauL9zpM3SK_VcIAOIAgcAAQngyFpGkgwGQoHAYIFwehsEs7H4yrZfA56Jw4AoYPxuLxQO5RIRxO44J5JqT-MQKPNVhttsQ9m12kdTr8Lrdrlk3MIGVJkhp5hForFdgkOIwdqk4BlXPTPAooGQ8DKojF4oqDGRcNAdercK4nIREgSlmqjnF0qEXsBXFIpEyybapex0hxKgBRaLIuLelkwCj3T0R23a3W4APB0NQOJ-uD3QL3MEQ6Gw-GI5Go9EgTGleg4wlOE1mqA6ilIKnCGl08Wee14-bpnZHLAu55eD2SnYcVGEavLZIcHQwCcO51SADUJRj4Tn-C0uBHxFcgVFOXybKKJQdFSqNS-DWa_y6_Xvg2Go3GUxmczCnaJK3WWx2PMOJxnCgQpSNcwr3I8LzvJ83y_C0vJ3sCvSguCkIwrgcIIogSIomi4IcAoETyBAMBaFo_BNgILYwGIiAgO625SM4ICojgzGIFIOGogcw7MXAeA6LAACK-CCLuSAVFo-AwDxjHMXCWiCGsAAKcI0S4EnyfoggQBQzGyZ6zHRGJMDKYpSjsUxICEfApH6DAzF7qCpYKGQ_AANZkLOFLCJR1I0bSfAYVgMDiMkqpVg6uYUDApK4DFbgkZSIDhRo4jGIYxgmLmAACABGZB5TAUAkFJIgQCF4gAOymAArBw7QgIEzXNUAA&query=previewwindow%3Dtests%26file%3D%2F03-minute%2FaddMinutes%2Fvanilla.js\",\n  \"date-fns/03-minute/differenceInMinutes\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAZgLQFsIDsCuALjAPQAmEYYMATjLgMYwCSuAsnkfOQIbEZhccAHQArBMhAMA9rmJykIEiQAEAC0KEADnETKyfGAKHDpNAOYkAbgCZhARjTCU5aQzjlK1OoxbtOxHAAOoyycIQqwCoUVLT0TKwcBIEqAL4qALwqdACO-BB0ABQA5Ab8gnDFAJQhIcoqABLSAO4qWDy4AJ5tAfAqPHQqAEYwhM0w9Co2KgBS-FDdNij2ACwq9jaIKADsiACsAJz9uGRTs_OLy2sbiEtbKAD8ITAAHlpmhCLvcBCEEFYwTLRLxxXyJXpwQohFQqXAwVoAEUMhSWqwANCoAGwYmwYjY4lAYlBVNHQ2HwlRI4goq4Y7FTPG4lTbDGHGq4dn1DIAPnWNlquHqTVa7S6PWSfQGgLANGkWHWKC29n2R0I0gV93uzzeHxEcPMfH-gKyMW88T8SS4kLJcMRyKWKEJKid9jxTvdJJtFKpMBpjqJeLdgZUbJCnNUPJUGHsIRAaJAEDgACE8ANOkgwDwoHAYKl4-hsL1PLEfAl_BKPKbQWXLYFhHAtDAGGIJKAZHJ6IRFO3wipXo2GMRTllgGTvr8jYg-aTcDD9YaAVPozPUgKexEyjAKkDcvkisVhLxykJqiF1yotFAeHgdzA8gVfQfrB1oFfT7gQoFCCUq6WLRDigxQoqkyXlR1nPs3ibb9NwqKphDVABRPIs0KftoJgMh2RhdDB0KS9rw5BDpGQ_BUNgoR2VSdk4wTZNUxodNEEzbNc3zTAcAlYszTBcsrWfXBXx4FskDbWR5C7RApDCDcQT_cEKyBQpNwAQQxTckxAnkyTYPg1AQmh8EYQplMMFSo2iQxNJUVRCnsR0UBUAAqLFiXZOpVGFNoOm6TirX6QYRjGCZZ2mOYFimK4-S2XZDmOU4wouSLVmiu5HSeOEdRoT5hHHP4ASBX9zQUq0oQg21KXtWksRxRkCSJT1yu9Kr0Rqhlp2ZVkDnZcNQL5AUhRabyxT8lIpRUGU5Q1ZYVRUNVpsVR1tXebK9RgA18uNYES2KvjAjKudmupB13WDeyA2dRrDrtY6HIu10FWDUMOQ8vro1jeNExTXA0wzLMczzEBcroTQIFoGgGFE6SOwUKTwJhIIQBzHBEanFicxnBGkbwcxYAARXwaRiFRubDJgTGVERgZZWaAAFKUhBJqmrGkCAyERinEbyImYFp2UdCZkAtDoHMaABRGQlXXAQEBrQeAYABrHhzBgFtZCh9sJKhn6sBgRRN2MSs5N22t4FosgYEbE54jB1sQANipFDsGw7HsWiAAEhh4EYoBIQy5AgXXFG2Bw9mEFYZdSKPUiAA&query=previewwindow%3Dtests%26file%3D%2F03-minute%2FdifferenceInMinutes%2Fvanilla.js\",\n  \"date-fns/03-minute/endOfMinute\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAZgLQFsIDsCuALjAPQy4AmA8mALJ5GkUCGxGYucAdAFYLIgAxgHtcxMUhAkSAAgAWhQgAc4iaSzYduwgE4BzEgDcATFwCMaLihIVhguGUo16BYgB1cIzoRnAZ5ajoGYhkAXxkAXhkdGABHfAgYgAoAcg0Ydk4UgEoPD2kZABU5GH9KGWEwGWYZHFdSsF0ZMxkAERhBGCwAIxgdGWMUMwAWAeNEMwBWRGHJrmGUFEQPLGEKfFguGAAPJV1COEiywJdGJNwYAHc21hgkwZGAGmazZ9ext8nn2e_F7NzcAUIgA-GS0URtDoyIYDIajYzjKaISYATi4KIxHhAjxAEDgACE8MwdABPJBgZhQOAwUI49DYYKkALORmOE6MrhwJQdXj8UBecSESReOA-HbcwTEChHC7XVq3e5wt7vd4Iz7PVHPDEogEeEU-dJaI4xeKJO4pLg2W6ZOA5PWiUUyJRQZh4Y1xBLJC1GZi4aAuu24DzEUWpZlBeopZ5JbKRUHADwyfy7DqEJKGzjZLiEYQAUXilKS4tTMAoAKTxclSWdrtwWZz-fwhYzcABoQB2NxBKJpPJlOptJA9LqjDZLPqPr9UBdvKQ_NEguFDrFTgjjCO6TjiZkspuxCStFYci4nWg6duMlkSTMixQMgAVDIAGwof4P5q398vmQYZq6wGyMUpQBBUVQ1COISNP0LTtJ0PR9LCIxjBM0yzPMizLLgqzrJs4r7IcUThqc-67vK-4PMMypvM8arNF8Mg_AxfwAkCoLgrgkKCNCLQUchSKouimK4J2eKErgxJkogFJUjSOJcEoMSKBAfQ6IIc5CAu5BCogIAJhxMhuCA1I4IZiAyNJ1KPNuhlwHgeiwAAivgwjuEgMiEDo-AwFZ-mGcSOjCJcAAKxLkHApkGSAzCGMIEAUIZPlJoZ8QuTAQUBSoEWGQp8B9IYMCGR4oRYoOSjMIIADWzB6DAvKiOpApaep4lYDAkjpDaY5rsQnYUDA3KUOQgjKXyIAdVokimAi5idgAAt0zC9FAJCeWIECtZIADs5hzMMIChAdB1AA&query=previewwindow%3Dtests%26file%3D%2F03-minute%2FendOfMinute%2Fvanilla.js\",\n  \"date-fns/03-minute/getMinutes\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAZgLQFsIDsCuALjAPQDmMhAsnkfCQCYCGxGYucAdAFYLIgBjAPa5iopCBIkABAAtChAA5xEU5q3ZchAJzIkAbgCZOARjScUjIQLjlKNAsTgAdXMI6FpwaRWq0n0gC-0gC80towAI74EBEAFADk6jBsHAkAlK6uUtIA4pTShLIw0jiO8NJCYNKGAJzSAGIwAEba-EzaAJ41KCaG0iYmiAAsAKyIKOOuWEIM-LCcMAAeijqEcKE-9v7wcbgwAO7SACIsMHGGvYYANAO3dbeDt2O3o-mZuDkhAHzSY64ga4gCBwABCeA6nSQYCYUDgMECQPQ2B2dj85VsvgcdC4cEUMAEPD4oHcYkIEnccE8y3xAmIDE2_1wrkpnmSmk2EWisXOCU4jDOqTgGRZIip0kUUCYeE5URi8T5BiYuGgUpFzNE8EIiSxO2Ftzi6VCv2Armk0hpBO17I46U4hCEAFForC4pa6TAGB9ze7tZLpbg7Q7ne0oHEbXAPoEPoDgWCIV1obD4YiQMiynQ0dinEqVVApUSkCSRGSKWLPLqMZtksbpMlOJWcYasp8ZPlPEUShmAlUavUmq12l0en0BkMxhMprgZnMFjS1hswo2nHtDiczhcro97rVHiZnqNXu9sjIfn9RgCgSDwbhIUm4QigZxFBEFBAYNptAIi4ISzBxIgICmrg5rOCA8I4GBiDSDCD7XGa0hgXAeBkLAACK-BCMQUGFG0MDwSBiEgB02hCAcAAKHT_i4SBEUw-hCBADBgQRoEgNEWEwORpHKDhYEvvAH76DAYGuIEAKpooTACAA1kwFBEiIP6kv-5L8LeWAwBIyRClmeqxgwMD4rghluO-xIgDpmgSMYhjGCYsYAALNEwzQwFAJBtKIECaRIADspijJwwwgIEYVhUAA&query=previewwindow%3Dtests%26file%3D%2F03-minute%2FgetMinutes%2Fvanilla.js\",\n  \"date-fns/03-minute/isSameMinute\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAZgLQFsIDsCuALjAPQRwDKAhljALJ5GkAmVxGYucAdAFYLIQAYwD2uYuKQgSJAAQALQoQAOcRDNbtOPEQCcA5iQBuAJm4BGNNxQlmIoXDKUa9RsQA6uUV0Kzgs8mpaBgJiWQBfWQBeWV0YAEd8CDiACgByTRgOLjSASk9PGVkAQTjZABZZChhlYiwAIxhdWRMUc0qUADZENBREFBRZKlxmCqqausbm1vbZLp6-8wBWQrk8WUJ5GFk4F1kcUJgAfk8sEWZ8WG4YAA9lPUI4aIDnYLcYFM9ZWVwYAHdZAARNgfGblAA0sgAHJCIbJOpDerlwV8fv8gSCUmDITCKpCEbJepDlvlcKSilEAHwbXT4GCeEDgkDkABCeCougAnkgwFQoHAYOEmehsO8nEFXIdxS4QkxuHBlDAhHwBKBvBJCFJvHBfLdFUJiKMYoRafTcJ5tb5MtpnnFEskPmluLYQdk4HkLWIdbJlFAqOsYnakqkncZhtA_R7zeJ4IR0oEZe80pCUrlotTgKi9Uq49auLluIQRABRRJ8lLZg0wZik76VuO-_1kwslstQFJ5uCk8KkxnMuBs3Ac7mIXn8wXCzAHJjSt5SozhqB-lVINViDVar2-BNzpjPDsg4qQzIstNU1F0NjybhUepwA_EYqyDCyE9pgA8snMA0GACp4YMABkgGopkxTcPoMCELKxD3meUQxCeEFQTB8CpgUuBFKU2yVNUtQwA0TQtG0HTdL0_SDMMoy4RMBFTMRszzORyyrAEuAbFsOx7NOxAnLgZwXFceoPE8MQ7pKTCfOxaIAsCxBYiROKwviiIoMiqK_LJmLYtCynwqpxJLKS5JyFSNJ0gyTKsuyXI8nyApCiA3DKHESgQE0uhCKuwjrjAkiICAmbSe4IACjgIWILIY4CiiwWhXg-iwAAivgIgeEg5kwLF3whRyugiH8AAKHJ-XAEWyLlRgiBAzAhdlFUgIkaUwIV-WqOVIUufATRGPSICeOEDKOcoVBCAA1lQkEqmI3nqn5mqCEOtBSJkbqzhJxB9swNR-dtXjuaqICrdoUhmCYZjmH2AAC9S3jAUAkLS4gQMtAUAOwWEs3DlCA4R_X9QA&query=previewwindow%3Dtests%26file%3D%2F03-minute%2FisSameMinute%2Fvanilla.js\",\n  \"date-fns/03-minute/isThisMinute\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAZgLQFsIDsCuALjAPQRwAqAFuQLJ5GkAmAhsRmLnAHQBWCyEAGMA9rmLikIEiQAEVQoQAOcRDNbtOPEQCcA5iQBuAJm4BGNNxQkmIoXDKUacegWIAdXKK6FZwWeTUdAzEsgC-sgC8sjowAI74ELEAFADkGjAcXKkAlJ6eMrIAkmCyuCIA7gFwssYArLIAyjBKxFgARjA6tShmACyyZgAciGgoiGZ13HUoKAA0BXLktQ3NrTAdXT39gyNjiLMBuLKEzrI4bjAA_J5YIkz4sNwwAB5KuoQ10YHOrozJuBgVQAImwYMljL0-nNZEMYfUYcMYWMcnlcIVIgA-E46fAwTwgOYgcgAITwLB0AE8kGAWFA4DAwkT0NgQqQfsFLo4gi42dw4EoYEI-AJQN4JIQpN44L5XoKhMQmFEcXj8l4xDLZBktMrYgkkuDUtwbGCsnBcp5pb4lFAWHhdfFEikjUYWLhoLaLbhPMQZWkObzLqkYckclFscBPLJZHKhYRktquDluIQRABRBJ05KxhUwJho6M5-M2u24ZOpjP4LOJuBosJownEuBk3AU6mIWn0xnMzAXRjc35s13uqC2kVIMViCVSjW-AN_ULRBNggCCMIyJOVgJBYNDYaxUdktDYVG4LHacGXxBXsgwWrBJLDAB5BrMULIAFSyABs74AZH-h4ZCu3B6DAhALvAoZRJE0QbqB4GQZeaKLMUpTlFUyz1E0LRtJ03SQjswyjOMkzTLMCzoksNTYWseFbIRAzEfshz2qcyx9sQNy4HcDxPHKHxfNUPKQQCQKyKCxAQlCMJwisiJySiaIYtihC4viuCNqS5JUjSdIMkyIDcEosSKBAXQ6EIE7CFOMCSIgICRscsjuCADI4K5iCyJ2DKUdGrlwHgeiwAAivgIgeEgKowH5LkgBSOiVAAChSdlwJ5cUsIYIgQEwrmxa5CQRTASWJSoGWuSZ8BdIY-IgJ4YQEoZSgsEIADWLBgSKYjWeKdmSoIrZYDAUgZGaA6cowjZMC0dkzV45miiAY1aFIpjGKYZiNgAAu054wFAJC4uIEDDVIADs5hTH0IBhHdd1AA&query=previewwindow%3Dtests%26file%3D%2F03-minute%2FisThisMinute%2Fvanilla.js\",\n  \"date-fns/03-minute/roundToNearestMinutes\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAZgLQFsIDsCuALjAPQBOA9vrgCYAqFAcjAIZnyECyeR8JNLYhjC44AOgBWCZCADGFXMUVIQJEgAIAFoUIAHOIjUChI8RTIBzEgDcATGICMaMSn4VZcclVoNmbDtwExHAAOrjyooTqwOqU1PRMrOxwXDzB6gC-6gC8sTAAjvgQ7AAUAOTGMMKiZQCUYWFq6gBK3jTqDijqAFL4UACe6rYoDgAsHbaIDpNo44QU6rhJHOo4QTCIYVgUNH0wYjAAHrrmhHA5sW2-yymBvHAlSwDu6gAigjAlw2MANOoAbH9OkDbCC_rNavVcE1sgA-dR0TT4Hp9Dpdb7jaZTNCIFAoMIgH4gCBwABCeDY_SQYBYUDgMAyRPQ2DSpDiPkS_lurM87ISfmSqXW4jguhgskk0lAESUhBUERS6iOYtkxHauWebw-XxGoz-gLRYI6aChYQVUUqpgu7EKxU-ZTE_A-1TgdTNCkVuigLDw1oKRVKDpsLFw0G9btwYWChHKfOuXKF9zKfxKtRy8OAYXUSuO4pjltEtTE8wAooVaSVlXmYDQodmq6qSl6fbgi6Xy1ASgW4FCMlDCcSyRSyFTEDS6QymZg1rwvPF44K7sFg6GoN7JUhpQpZfKPVE45zFzyLpV01nFjAXu9iCVOIJNGI-V2PuoNCVOnj1AAqAEoSHftFPx_f4_waaENFaeI0RRAYhl1CYphmOYFiWBNVlZTZcG2XZYAOY5TnOXIDwFAIeUeS8tRvDF9SBFAjWmcFRkhRoNDhBEkRg6CMQQpxcXxXABxJclcEpalaXpRkQDEXR2B0CAYDIMhZE3ORtxgZREBATNcGzEIQHpHA9MQdRx3pH5zz0uA8AsWAAEV8AoYgjPUQgyHwGBzJ09Q9LYSgngABX8URnJ86wKAgGg9M83SQEKRyYH8yh9BCkAZPgBTrBgPSwgyAlJN0FhZAAaxYCx9ikBQVJldS5RkESsBgFRKhdOcORI7lhQHGgYDFWh1NkeSpRAZrTBUexbHsBwBwAAQAIxYWaYCgchqEICAGpUAB2RwAFYxFGEAMiOo6gA&query=previewwindow%3Dtests%26file%3D%2F03-minute%2FroundToNearestMinutes%2Fvanilla.js\",\n  \"date-fns/03-minute/setMinutes\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAZgLQFsIDsCuALjAPRwyECyeR8JAJgIbEZi5wB0AVgsiAMYB7XMRFIQJEgAIAFoUIAHOIklMWbToIBOAcxIA3AEwcAjGg4oGg_nDIVqBYnAA6uIe0JTgU8lRpOpAF8pAF4pLRgAR3wICIAKAHI1GFZ2BIBKV1dJKQBlCikAFgBWKRxHeClCQSkTPJgFYiwAIxgtKUMUE0Lak0Q0FERCwdcsQXp8WA4YAA8FbUI4UJ97f3g43BgAdykAEWYYOM7ugBopAA4zkyvrqQGz4fSH4szcHJCAPilKYXqFKS6HS6PRMfRKQxQrhAJxAEDgACE8IwtABPJBgRhQciBGHobBrOx-Cq2XwOWicOAKGD8bi8UDuUSEcTuOCeWZU_jEejLTY7fbEI7As6XWo3Z4PFCvVwszzJDTLCLRWKHBIcBgHVJwDLS4SsqQKKCMPAKqIxeKqgyMXDQQ3a3CuJyERKktZas5xdKhL7AVxSKTs6lOuXsdIcaoAUWimLiAc5MHorz9sadBqNuFDEajUDiwbgr0Cr2hsIRSNR6Mx2NxmHKtEJZKclutUENtKQ9OEjOZus8LuJyxzBzOWE9ny8vqkyQ4vfJcWH44ihHwWlwE4OrkCWTe0nynhKZVdVRqdXyjRgLTaQO6vX6g2GiFG40mMGmcwWSzC06cG22ewOgtOFxXGKdwoBKTxFC82TSKOPwrieAJ1McIJgsUEJQjCcKIrgyJoogGJYjAOIgBwCgLoQEBtFo_BtgIHYwGIiAgD6K5SM4IDkDgbGIFI-HkCc45sXAeA6LAACK-CCMQXFVFo-AwPxLFsciWiCFsAAKyL0S4SCsSAjD6IIED0GxCl-mx0SSTAakqUo0lsaR8BtPoMBseuUJEQojD8AA1owOjPjwwg0Qy9FMnw2FYDA4jJJqdaukW9ANPRiVuBRdIgDFGjiMYhjGCYRYAALNIwrRQCQskiBAkXiAA7KYxQcIUICBC1LVAA&query=previewwindow%3Dtests%26file%3D%2F03-minute%2FsetMinutes%2Fvanilla.js\",\n  \"date-fns/03-minute/startOfMinute\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAZgLQFsIDsCuALjAPRyECGAToQPJgCyeRpAJhcRmLnAHQBWCZCADGAe1zFJSECRIACABaFCABziI57Ttz5iqAcxIA3AEy8AjGl4oSrMSLhlKNekwLEAOrnE9C84HlyajpGZmJ5AF95AF55KhgAR3wIBIAKAHJtGC4eDIBKb285eQAVRRggl38xMHkKeRwPSrB9eQt5ABEYERgsACMYKnlTFAsAFhHTRAsAVkRx2d5xlBREbywxVnxYXhgAD1V9QjhYqpC3cJg03BgAdy6Oa9GJgBp2i3fPqa_Z98X_qt8oVcCUYgA-eQMCRdHryMYjMaTUzTOaIVbeECvEAQOAAITw1AAnkgwBQoHAYJFsehsFdnBcws0Ga4mSxeHBVD0BEJQL4pIQZL5yPIDlyRMRWGdbg9Ok80i9xl9vt8Ub8Qd5hf5srozglkqlrhleHYnrk4AVNRIRaooBQ8Hqkil0saTBRcNA7ZbcN5iORMsFWe4WBl3ml8rFIcBvPJRYceoQ0jqePleIQxABRZLktJihMwVgg2N5iVpW323Cp9NZ_A55NwEGREFYnH4wlUEmIMkUqk0zBNFgs0LB4huj1QO08pB8iQCoXW_yB4dXM7ZSMx-Qyx7ENIMDiKXhgKBifRJp7yBRpCyrFDyABU8gAbChgff2je38-NaCFOVKkv5FqepGhXVphg6bpegGIZEQmKYZnmRZllWdZcE2bZdjFY5TjiJdLmaG57m3Z4kWVL53jVdo_nkAEaKBEEwUhaFcFhER4Q6RV4LRDFcBbXECVwYlSXJSlqRAXhVASFQICGKgRGnURZxgaREBAaMWPkTwQEpHAtMQeRu0pV4Ny0uA8AMWAAEV8DELwkHkQgqHwGBjI0rTqCoMQ7gABWoZS4D0zSQAoYwxAgVgtNc2MtOSWyYG8zz1ECrTJPgIZjBgLTvEiTExNUCgRAAawoAwYB5CQFP5ZTBWEQSsBgGRsnNId8JYFtWBgLlcA6nwZN5EAmt0GRzBRSwWwAAX6ChBigEgnMkCB6pkAB2SwlnGEBIi2ragA&query=previewwindow%3Dtests%26file%3D%2F03-minute%2FstartOfMinute%2Fvanilla.js\",\n  \"date-fns/03-minute/subMinutes\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAZgLQFsIDsCuALjAPRz4BGAsnkfCQCYCGxGYucAdAFYLIgBjAPa5iopCBIkABAAtChAA5xEU5q3ZchAJwDmJAG4AmTgEY0nFIyEC4ZSjQLE4AHVzCOhacGnlqtZ2kAX2kAXmltGABHfAhIgAoAcnUYNg5EgEo3NylpAGVKQm0mAS80FGkcJ3hpMG0hLGlTCoApfCgAT2kjFFMAFiajRBQUYdG3LCEGdphOGAAPRR1CODDfBwD4eNwYAHdpABEWGHie_oAaaQA2S-bbo0uUDMvyrNxc0IA-aQAVWXxpG0oE0KmcBqZTIhymM3CBziAIHAAEJ4JjaDpIMBMKBwGBBeHobCbez-ap2PyOOhcOCKGACHh8UAeMSECQeOBeBa00owBhrHb7I7EU69PqXG4g26mF5PbLuEQc6QpTRrSIxOInRKcRjHNJwTJudleRRQJh4VXRWIJLWGJi4aCmg24NzOQhJCmbfWXeIZMLfYBuaTSLl0t3KjgZTiEIQAURi2PiIZ5DDeQaTbpNZtwkejcfwCfDcDeQTecIRyNR6Mx2Nx-JAhKqdBJlOctvtUFNDKQTJELLZCq8HrJa3iKUuWF9X28gaVx04uMILa2KU4uhgi89PukGEqqYi6_w2lws-IbiCctyBQoRRKZQqjcCdQaIMB7S6YMGYy_EymMzmi2WVZwiHKltj2Q5jhFC5rluFB7keZ5pFeHIZCnP4ASBF8PwhKFRhGWF4URFFcDRDFECxHE8XhThFEiBQIBgbRtAEbtBF7GBxEQEAA2PaQXBAXEcH4xBahrGBzhnfi4DwXRYAARXwIRTyQaQinwcTJJANF6l2AAFNEONcFT-KYAwhAgBh-Ik3j-JiJSYF0-plGEviQFo-BGIMGB-LPWE60UEoAGsmDXBkRFY5kONZfgSKwGAJBSPVm09MsGBgWlcDS9wGMZEBEs0CQTCMExTDLAABCgmAoGAoBIbR8FECA4okAB2MwAFZOD6EAgl63qgA&query=previewwindow%3Dtests%26file%3D%2F03-minute%2FsubMinutes%2Fvanilla.js\",\n  \"date-fns/04-hour/addHours\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAFgLQAsD2BXAJwHoBDAEzIAl8C4iySAXGDMAOzgDoArBZEAMY42zEUhBEiAAiyNGABziJJDZqw6ccBAOZEAbgCZOARgDMnFPRwC65KjTgAdNkI6MpwKXeqE4UgL5SALxSBDAAjngQYQAUAOSqLOxwcQCUzs6SUgCCFFIGMg5SjDhSxihSAFJ4UACe-SjGaPmmiCgobR3OALY4ZDUwnDAAHvJajH4h3g4xbDAA7lIAIkwwMQaNaAA0UgBsO-U7BqY7KKlH6WxZQQB8UgBiBBBVNWXGDU1SjZ2dziBbIAgcAAQhA2CQCLUkGASFA4DB_AD0NgaKQKD5aGj7L5OHB5DABDw-KBXKJGOJXHB3CN8QJmGRglI5osVsx1psdvs3gdTpdnJT3IlkoywpFoms4px6Kt1ClLgKpPIoCQwSKIlFYpL9CQ2NBlWkMiJ4Ix4tNfHEdjFUsE7sBnFIpDSCSahRxUpwSgBRSKwmJOukwMiXB3-k1KlVsd1en1QGKuuCXfyXf6AkFgiFQxAwuEIpGYXCELEYuh6HV6khEpAk4RkinCKledFFEJx1Y7LDW24ee1SRK4mCMYut5icbQDofWgDUMmDoQHhDYvdWzn8hqyuQZBQLtGKpXKLzqH2axx-7UQPT6AyGo3Gk0b2NoswWy1W7KanIOKCOJy-53yl2uO5HmeaooDeI8vmMU8UD-AEgVBcFIWhWF4UREBOHkMI5AgGACAIAQq0EGsYDERAQDtRcpEcEB4W6CBqMQKRs3hLYe2ouAwW0WAAEU8BwZgGOKAg8BgVjKOoiECBweYAAUIRIpwkCokASD0HAIDIaixIdajIn4mAZKkxRBOozD4FwvQYGolc_jQ-QSAEABrEgxyJYRCNJEjyX4cFuhgcREllIsHBTMgYHxNgwpcHDiRAQLknEIwDCMYwUwAAQAIxIDKYCgIhhJECA_PEAB2EwAFZODQEB_Fq2qgA&query=previewwindow%3Dtests%26file%3D%2F04-hour%2FaddHours%2Fvanilla.js\",\n  \"date-fns/04-hour/differenceInHours\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAFgLQAsD2BXAJwHoATCMMGAmAOwGMYBJGgCXwLlIEMAXGDMDTgA6AFYJkIOjhp9ZSEESIACLDx4AHOIiUle_QSJwEA5kQBuAJmEBGAMzCUpHHU5kKVWg2ZtCcADr0MnA8ysDK7pTU9Eys7HDKAL7KALzK1ACOeBDUABQA5Hp8AkL5AJSBgUrKbADuygC2XDQAnqrxylzUygBGMDy1MLTKlsoAUnhQbZYoNmjKKABsiACsKIgoKJ00JCPjk9Oz8zYAnBvrmwD8gQ04JJMwwjAAHhrGPAlpkZ4xPvG5gWUyhoMHqABF9LkZnMADTKRZwyxw05wlBlGGA4Gg5QQvhQo5whEjQlwtYVGjk6opAB8yhslkCIBhIAgcAAQhAaF0WkgwFwoHAYIlmehsOxSOQol5Yr4OBKPNFvHE_MI4BoYHQxBJQNJZLQeApdSFlC91XQ-Ls0vTKkEhKEijBDKl0jAsjkYAVhNxioZyoEjaENFAuJznZlsnl8l7zM1oMG_TRAnwQgVvoqZfF8nDcmVUrTgJjTRqeLkHYYysIeDgAKJZfm5IvmmAkclAxsloMhimVmt1qCl_TlwKJclMlnsznc3n8wXCkCi3CEeVS37KuUxmhxrhapA6mRyA2IKTBUIsADyAFUAEoAfUYADkbwBZADKzpsmy2ACp4d_fzaAwiSUfiVWVPmUAc-AAQThB02VzGlMSfXgsErAg8HoXJIJgKDlAwCJ9Hg5QVHPa870fV9ySqEicHqJpWnaPxOm6PoBiGGg9gmKYRiOBZljWc5tl2UYuMOOY6TOTZzmuGhbnuWAnled5wLTaU_j8AEOKxcFIWhNASWJCTUXRTEQR0vE9IMpF4VJNFAkpFQaTpBkaDHVkOS5AgeUQPkBSFZlhA0ah1AgKgCDoXdjz1eQjwLLT_BAQUGggBLEGUXzBQxeLEs5ExYAARTwHA-FS5QeHQmAsqBBKugIWiAAUuloAIkGUGrzBwCASASqq2pALJipgeq6q0UqEqC-AqHMGAEuHRk5w0Lg6AAay4ExHnEGRIt1A9Iq5BoYAUB0SjcYD03UjgxxIGB1R2LxQu1EBjsMBRrEsawbDHAABHouD6KAiHQ2QIAOhQAHZbBWYQ0BARI4bhoA&query=previewwindow%3Dtests%26file%3D%2F04-hour%2FdifferenceInHours%2Fvanilla.js\",\n  \"date-fns/04-hour/endOfHour\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAFgLQAsD2BXAJwHoYA7AEwHkwAJfY8gQwBcYMxS4A6AKwWRABjHKVaikIIkQAEWZswAOcRFKat2nLjgIBzIgDcATFwCMAZi4oi5HILgkK1OoQA6pYZ2bTg0slVr00gC-0gC80gQwAI54EJEAFADkamwccIkAlG5uUtIAKlgwvhTSOGDSjKSygWDa0obSAMowCqwAtgBGMAT1KCZo0iYmiACsI4goKIhubTjkeLBcMAAeCtrMcGHF_s4E8aQwAO7SACIsMPGGfWgANNIAHHeGd0N3YxlZpLmhAHz5eEVmgppCgGld-oNhiMAJyjaFcaGItwgG4gCBwABCEFIjAIAE8kGBGFA4DAgqj0Nh6A4dtS_E56Fw4AoYIJePxQB4xMwJB44F4VizBKxyFsDsczqxLtc7o96i8TG9oUq7ojoZ83HyvCk0ltIjE4hdElxrOcNOlPlrpAooIxsXrorEEsaDJVoLbMtlRPBmEl6QFCIk7vEMmE_sA3NJfKtWb6dZwMlxmDgAKIxYnxQWxmDkT5RrPC-I2u2kRPJtN4DPxuCfIKfFFozHY3EExBEklkimYXCEGkM3v6N1QW3spCckTc3kifnSGiUACqACUAPoASQAcsuALKNLYmSYoaQAKmkADZDyfz16rf7dlsUmHI9JxadzvEtywsFxBDBoPEUlwOgwMweQQG0FyhjIc5Lmum47qGJ7QSuG7bruGCDBqXwyAURR-KU5SVNUhDSLUPQNEC7RdGR1yQqM4yTNMpCzPMiyCusmzhLe9D7Ecr5SuCtwPE8CpvCMHw5DIvz_ICLQgmCNFDHCcIIkipANuiWI4vihLEqS5IgFwCiRPIEDdAQghjkIE5kDyiAgBGVTSC4ICkm0EDOYgJG6TANxPs5cDYjosAAIp4DgrAedIzAEACvmOc5uIEDghwAAq4mQcCRQl-g4BA5DOXFUbOTE4UwClSVKFlIBGfA3T6DAzluEEyL6QojCCAA1owQHsiIllcjZlk4uBEgpOafYBgQDbkC0fhkIIpkciAY1pBIxiGMYJgNgAAh0jBdFARAxaIYEwBIADspgjFwaAgEE933UAA&query=previewwindow%3Dtests%26file%3D%2F04-hour%2FendOfHour%2Fvanilla.js\",\n  \"date-fns/04-hour/getHours\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAFgLQAsD2BXAJwHoBzGAFwAl8C4iATAQ3JgzADs4A6AKwWRABjHOxaikIIkQAEWcuQAOcRFKYs2nLjgIkiANwBMXAIwBmLigY5BdMlRpwAOu2Gdy04NLvVCcaQF9pAF5pAhgARzwIMIAKAHI1Vg44OIBKZ2cpaQBxCmlyLBhZB2kcMGkDAE5pADEYACMCPEYCAE8KlGMDaWNjRDQAVkQUFERnAFscejxYLhgADwVtcj8Q7wcY9hgAd2kAEWYYGINOgwAaHouqi96LwdT09iyggD4e42cQM5AIOAAhCDsFqtJBgRhQOAwfzfdDYGikCg-WgI-y-LhwBQwQS8figVxicgSVxwdwLTGCFj0YLvDIuEQk6SJZLUsKRaJHOJcBiHDQpR7E9wKKCMQEsiJRWKc_SMdjQYVpWksEnxda-OIXGKpYJvYDOaTSMlY8gxJmcVJccg4ACikXBMUNFJg9Ee-odxqFIvY5stNuaUBNh2Sj38jy-P3-gOBoPBkOhIFhuEIKKRdD0MrljBxSDxIgJRPp7lVtGpiW1jMOXCLcE1tKyuXcBSKieLZQq1TqjWabQ6XXe_SGIzG7Em01mZOWqy8iI2W12BxYx1ONyulRuxjuAwemRkrxp7DDvwBQLa0YhUO-XAUYXkEBgBAIgmzQlzMHEiBAuvY-scIEh4wgP6INIYJnmcerSD-cCAiQsAAIp4DgLCAfkTQwGBX4QSALQEDg2wAAotK-ThIJhjB6DgED0D-6HfiAkSITAeE4UoyE_le8B3noMA_s4_ifHGCiMIIADWjBkDiIhPvir6EgIQLjDAEiJLyyYOGG9AwJi7AaS4t64iAynJBIRgGEYxhhgAAvUjD1DAUBEE0ogQApEgAOwmAMXBoCA_i-b5QA&query=previewwindow%3Dtests%26file%3D%2F04-hour%2FgetHours%2Fvanilla.js\",\n  \"date-fns/04-hour/isSameHour\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAFgLQAsD2BXAJwHoI4BlAQwFsYAJfYgEwoBcYMwA7OAOgCsEyEAGMcnNuKQgiRAARYWLAA5xEM5mw7ceOAgHMiANwBMPAIwBmHiiKMcwuCXLU6DADqdR3FrOCzSlDT0hLIAvrIAvLIEMACOeBAxABQA5BrsXHApAJQeHjKyAIIxsmiyZDBKbFQARjAEssYoZmUoAGyIKCidKLIUnIyl5ZXVdQ3tiBbdXf6csixYMLJwLvIMAPweVDiMeLA8MAAeSroscJH-zkEMSR6yspwwAO6yACKsMElNLQA0sgAcfzQfzafxQ2R-dwezzeHy-zWBAKBIL-U1ynHRBQiAD55gQ8DAPCAfiBSAAhCCcCgEACeSDAFCgcBgoRJ6GwDCcgVchC5LmCBB4cCUMGE_EEoC8EhYUi8cB8RxFwjYgyiLHxhM4HjlPnSmQuMXiiU-KR4tg-Wiy6J1siUUAolINcQSyVNRn60HtOTy4ngLFSAX5DBSfyS2UiuOAUMVov9eu42R4LBwAFF4oykjHlTBGOj7ln_XaHRik6n01AkvG4OjQujiaS4BSqbT6YzmayQOzcLzA9deYYPVB7eKkJKxNLZWJ5bJaAB5ACqACUAPoASQAcsuALJkC5mLq9ABUsjaR5PKB9Nt7PIaUUrH0Kf3SZPDOKhW9YWB4FBqcHvbEKWQMFkZ9wwAHhnBcVw3bddwAMjgkCHx4PQYBYAU_1fCIomfFC0IwsMfQKYoljKCoqhgWp6kaBFZAmLoej6AYhnI0ZqImKZGMdBYlhWGg1kITZOG2XZ9kVU5ziia8BVuOZoRed42HhX4kVKFE6IhKFHgUuFvkRQE1JPVFwQ8TE5BxPECSJElyUpak6UQBkmRZEkeCUGJFAgeoCGEUcRHHGBJEQEAozktwQGZKgIHCxBZCc5lITCiLKT0WAAEU8BwNgYssmBEvucLqQIHAngABWpQK4BywrDBwCBGHC_LZHC-IspgUripUaqQHc-B6kMQkQA8UIiQ7JQKGEABrChUPFMQ_KlQKZSEKkaCkdJLT5PsCHrRhKkCvbPC8iUQA2zIpFMYxTDMesAAEah_GAoCIfFxAgNbgoAdnMABWHg0BAUIgaBoA&query=previewwindow%3Dtests%26file%3D%2F04-hour%2FisSameHour%2Fvanilla.js\",\n  \"date-fns/04-hour/isThisHour\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAFgLQAsD2BXAJwHoI4AVLUgCX2IBMBDAFxgzADs4A6AKwWRABjHOxaikIIkQAEWJkwAOcRFMYs2nLjgIBzIgDcATFwCMAZi4oidHILglylODUIAddsM5NpwaaQrUtNIAvtIAvNIEMACOeBBRABQA5GqsHHBJAJTu7lLSAJJg0uw4AO5-cNKGAKzSAMowCiwAtgBGMARVKCZo0iYAHIhmKIgm1VzVKCgANLkypFW1DU0wbR1dPX2DU4hTfuzSTE6ytAD87s04dHiwXDAAHgraTJUR_k4uBAnsMOUAIswYAlDN00NNpP1wTVwQNMtl2HkwgA-Q4EPAwdwgaYgUgAIQg7AYBAAnkgwAwoHAYMFsehsLQHAFnAz3oFCFw4AoYIJePxQJ4xEwJJ44N4HlzBCw6OFUeich4RKLpKl0jKorF4kCklxrICNBl4SLvAooAwCWqYnFEtqDAx2NBTVl5SxRclWczCElwQlMuEUcB3NJpOLuUwEirOJkuEwcABRWIUhIhyUwOjwoPJsMms3sKMx-N4RMRuDw4LwrE4uD4wkkskUqk0kB03CERkfBn6O0Ohi8pD8kSC4WK7xUADyAFUAEoAfXyADlpwBZOoykxTFDSABU0gAbBvt3v5UaKkzPjLw4CAILg1K4mU_f6An2-5GB6SL5hYLgMVpwC8sS9pAwZVAVxX0AB5pDHKdZwXZdpAAMgQkCAK4HQYCYT4_xfMIIlvNCMKwn15TyQpijKCpFnqRoWnaToQU2AYhhGMYJimWYEXmSoamolY1no0Etl2EY9nNI4FhbAhznYS5rlucVnleE920Ib5fmkAEWGBUFwUhRYYX6OE5j9WUMXYCs8QJIlSUQclKWpbEuAUKJ5AgDoCEEPshAHGBxEQEAAwOaRXBAKlmggELEGkOyqQ4oMQrgAkdFgABFPAcBYSLTLi4KQCJAgygABSJXy4CykKGH0HAIDoEKcpC2IMpgQqCqUcqQGc-AOn0DEQHcYJMUbBQGEEABrBh0N5EQvIFXyhQEQlmhgCRUn1Ns2QICs6EaXzto8Ny-RAVb0gkYxDGMEwKwAAVaH8YCgIg0VECAlokAB2UxxjQEBgl-36gA&query=previewwindow%3Dtests%26file%3D%2F04-hour%2FisThisHour%2Fvanilla.js\",\n  \"date-fns/04-hour/setHours\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAFgLQAsD2BXAJwHo4YAXACXwLiIBMBDMmDMAOzgDoArBZEAMY42zEUhBEiAAixkyABziJJjZqw6ccBAOZEAbgCZOARgDMnFPRwDapStTgAdNkI5kpwKXaqE4UgL5SALxSBDAAjngQYQAUAOSqLOxwcQCUzs6SUgDK5FJoMg5SZDhSxjkw8swAtgBGMARSBijGBcbGiKYoiCjdztU4dHiwnDAAHvJaZH4h3g4xbDAA7lIAIkwwMc2tADRSABx7xkfHUl2pe2jpbFlBAHxSALLCFfJSLU0tBeid3b3OIB2IAgcAAQhA2AwCABPJBgBhQUj-IHobDUEjkHw0DH2XycODyGACHh8UCuURkcSuODucaEgTMOjBKSLFbrZhbL57Q5lS57c4ZFzCGlSRLJZlhSLRTZxTj0DbqFLXanueRQBgQiURKKxWX6BhsaDqtKC5g0-JzXxxPYxVLBB7AZxSKR0olkGJijipTglACikQRMVdDJgdGuzuD7rVGrY3r9AagHo2yWu_mugOBYIhUNhiHhiJgyJAqNwhBxWNoegNRoYJKQZOEFKpwvclpozKTzD2WDt9w8TtFG3xmPmPYHYTIhDYg-Yzn8gqyuXcBVL7ZKZVeNXqjW2bQ6XR6fTYAyGIzpUxmXhHvgWyzWG05uwORxO_JQF3y11uD2e09ybw-Xd3jQX5DwBIEQXBSEYThBEkSBTh5AnMgIAaAgBHrQRGxgMREBAR1pykRwQFIaoIGIxApHzUgdgHYi4AhbRYAARTwHBZyQYoCDwGBaMI4ioQIHAlgABShHCnE4gS9BwCA6GIvjnWIyJ2JgEShMUCiiJAJD4AaPQYGIucASLeQGAEABrBhtBgElhEw8kcMpfhIWqGBxESRVywcDM6EqHC_JcVDSRATzknEIwDCMYwMwAAVqBh6igIhuJECA3PEAB2EwAFZODQEB_CKoqgA&query=previewwindow%3Dtests%26file%3D%2F04-hour%2FsetHours%2Fvanilla.js\",\n  \"date-fns/04-hour/startOfHour\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAFgLQAsD2BXAJwHo4AXAQwNIHkwAJfYgE3NJgzADs4A6AKwTIQAYxyc24pCCJEABFlKkADnEQyWbDtx44CAcyIA3AEw8AjAGYeKIkxzC4JClVoNCAHU6jupWcFlklDT0jLIAvrIAvLIEMACOeBCxABQA5BrsXHCpAJSenjKyACpYMAHOvjhgsuSc8qFgurLGsgDKMEpsALYARjAEzShmaLJmZogArBOIKCiInl04THiwPDAAHkq6pHBR5UGujMmcMADusgAirDDJxkNoADSyABxPxk9jT1M5eZyFkQA-Yp4MrtJSyFAtO7DUbjWYzFCeEAPEAQOAAIQgnEoAE8kGByFA4DAwij0NhGE4DiFCFSXDSCDw4EoYMJ-IJQN4JKQpN4yLINizhGwmHsTucrmxbvcnq9mh8zL9PHzfBksntYgkkjdUjxbNctNlfirZEooOQsRr4okUrqjLVoObcvlxPBSGlAvS3ARUk9kjkokDgJ5ZALNqz3WruDkeKQcABRBKE5KCiMwJi_UOp4XJM0WzgxuOJvDJqNwX5hX7I1EYrG4_GE4mkkDk3C0z3Bb32ziO8jspCcsTc3lifl0agAVQASgB9ACSADkZwBZVp7MyzFCyABUsgAbFvdweXSaO4dCHsMoHZOLLtdksvWFgeGAoDhdMkr3Jx9P50vVwGu4_rOi4rq0Sp_HIJRlB2shVDUdRtgMjQDC0YLdH0qH3LCkzTPCCxLCsMBrJs2y7NEZ4MscZx3lK0KPC8bwKl8Ew_AUciAsCoIdBCULYWMCIIkiKJopi2IEHiiAEkSJIojwSixIoED9AQwgDiIQ4wJIiAgMGdSyO4IDEl0ECGYgsjScSDwhgZRlYnosAAIp4DgbBmbIpAECC1n6YZlAEDgpwAAqUFpcDuX5hg4BATCGT5oaGQkrkwEFAUqBFIAKfA_SGDAhmeGESLNko5DCAA1uQejEQIYjqVyWk8kI2JdDAUgZIadKdow1ZMB0Wm9V4ykciA7VZFIpjGKYZjVgAAj05B9FARBeeIEAtVIADs5gTDwaAgGEB0HUAA&query=previewwindow%3Dtests%26file%3D%2F04-hour%2FstartOfHour%2Fvanilla.js\",\n  \"date-fns/04-hour/subHours\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAFgLQAsD2BXAJwHo48AjACXwLiIBMBDAFxgzADs4A6AKwWRABjHOxaikIIkQAEWJkwAOcRFMYs2nLjgIBzIgDcATFwCMAZi4p6OQbVKVqcADrthnJtODT7VQnGkAvtIAvNIEMACOeBDhABQA5GqsHHDxAJQuLlLSAMrkTAQMgh6Gso7SYAQ4ALbSJibSAFJ4UACe0oYoJmjSXYgoKP2DLtU4dC0wXDAAHgraTP6hPo6x7DAA7tIAIswwsZ3dADTSAGzH9efHKGnHhhns2cEAfNIAKlh4TS11KB1dPYYzEMhi4QIcQBA4AAhCDsBgEVpIMAMKBwGABcHobDUEjkXw0XEOPxcOAKGCCXj8UBuMRMCRuOAeGZk4owOghaRrTY7Fj7f7HM4_W5mK73FwMjxJFIc8JRGJ7eJcei7DSpe4S6QKKAMWEyyLROKKgwMdjQbXpTKieBMBLLPzxY6xNIhF7AFzSaTM8k2qWcNJcJg4ACiURRsS9rLo9w9EZtWp17H9gZDeDDvrg9wC9zBEOhsPhiMQyNR6MxmFwhEJ-No-hNZoYlKQ1JEtPpIkZ3jx5VCsSSxywzuennd0iSJJgTGrvd2XB0E6nzowsmjYQnhHYo92LgCluyeTIBSKJTKfgqVVq9S-bT-3V6JmBA0QIzGEyms3mi07RJoqw2212fJHKc5wmJcvQ3B09yPC87yfM0UA_DeAJAo-AyguCkIwnCCJIiiaIYiAXAKOE8gQDABAEIITZCC2MDiIgIBuhu0hOCAaLVBArGIBUeEwIcI6sXAsI6LAACKeA4CwXHSAUeB8QJIDwlU6wAArwnRzhICxin6DgEB0Kx_HMaxUSSTAKlVEo0mscR8DkfoMCsduoIEQoRQANYMHOlIiNRNJ0XSAhwtUMASEkqpVo4OZ0DAZLsDFrhkVSIDhSkEjGIYxgmDmAACZAMGQMBQEQBB4KIEAhRIADspgAKxcGgIABM1zVAA&query=previewwindow%3Dtests%26file%3D%2F04-hour%2FsubHours%2Fvanilla.js\",\n  \"date-fns/05-day/addDays\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAVgLQBMCGBPAehyywBF84DcAXGDMAOzgDoArBZEAYwHsHb-SEAQIACABbVqABziIRNOoxY8ATgHMCANwBMzAIwBmZiio8ulYmQoAdBrybVRwUVfJ44ogL6iAvKNUYAEcAVwhAgAoAckV6JiiASjs7EVEAQRJRfRRRXA9Rah4s0QBlGGlaAFsAIxhVUR0UfQAWRDtKniwQ2GYYAA9pNWpPfzcKCIYYAHdRcloIxpaAGlEADhX9BI2UJIZU3wA-UQAVcRDS8qz9Bqbm0RQURAenlDsQJZAIOAAhCAYcVR4JBgHBQOAwLwfdDYfBEEjuSzwijMODSGBcNgcUAOATUIQOOBOfpori0LB-USTGZzGALW4rdZXXZ2AlORTKCmBULhWlRZhUHC0OJwRIsviE0TSKA4P6c4JhSJ87Q4BjQaWihh2WiE6JjDxRFYRBJ-I7AOyiUTE9HUCLspgJZiFACioVBEStpJgWF2Fo9NqlMoYDudrqgtsFMGUuy8u3enx-fwBQMQILBEKhmDycOsHmVqqg0sxSGxfFx-PFTj1I1E4doK29Juc5tyEZRMGoNNrMGY6nbneNAGpcj6Au2QqoGC3aHYvMk9mIMuTsi38oVimUKjAanUbi02gwOl0esShtWqxNprMI3TlmsNlssjsUmJDiczhdpFdd3dnr_Xgw4y-X5_kBYFQXBSEQGYaRAikCA6lULhi24UsYEERAQDNSdRBsEBwUqCBcMQURU3BJZm1wuA_nUWAAEUQh4ackAKVQQhgcjsNwgFVB4KYAAUATQuAiJwkAcC0HgICwXCOItXDQkYmA-J42QRNwmD4DqLQYFwmc3kg6QcC4ABrHBe0xPhkJxNC8U4f5KhgIRYmUbMETjLByjQjz7HgrEQGcpghD0HQ9H0OMAAFqhwWooAIVj-AgByhAAdgMNBmGaEAvGy7KgA&query=previewwindow%3Dtests%26file%3D%2F05-day%2FaddDays%2Fvanilla.js\",\n  \"date-fns/05-day/differenceInDays\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAVgLQBMCGBPAeiwjDBgCcYA7AYxgEkqARfOInAFxgzCrgDoAVgmQgaAeypcpSEAQIACABYcOABziJ5uLjz79x5AOYEAbgCZ-ARgDM_FEXE02xUhWp1GLPHAA6tSTgOBWAFVzJKWgZmVgUAXwUAXgVKAEcAVwhKAAoAch1uXjhcgEp_f3kFAAlxAHcFAFscKjwFMHSoKDDYnEoFACMYDlqYagrFcwUAKQ7W8xQrKwVzG0QUFDWUBWasZenZ5YXJ9c3NgH5_GAAPNUMOATwYXqSwkgiPaO84bP8FBSoYPUWFxsvMrOYADQKABsUMhChQUJQJQhv3-gIUwJgoIWVihsOWcJsSLKVFJlUSAD4FDZoWhylRKjV6k0Wm0Ol1cD5tn1BsNRlRxnsZlA5rjlqs0ABOTbbKi7Gz7UWHRYIjYLc6XG53ARUSQwF7hdxRLysH5UP4AoGcbFgvEwqHEhFQqwotFWzE2nGLfFwolQ6Wk8mKKkIhlMuqNZqtdqdbrc3oGvkjMaMxRLACyvRoSkO8wRsp2CiWMwBea26q2FwB2vI934VAgUjww3Ehrexs8MR82Q9WJx8wDLpR6OtIPmg8JxZKwaS1Kl5n8IAhIAgcAAQk3engkGAcFA4DA4iv0Nh8EQO5Eu18L24r59WPw4GoYDQhCJQBIpNQOLIv0EFGuF8aC4XZkmANFHl6RAaTpVELX-fUYMRd0mw4FtanEGCF3guIGX_YICiKF40kyHJcn4dhdCKUp_AIhQ1CgHAmxImAMiybEKLMZpoCY2jBW_II8iNe9TR8XIoWyEo5xCNEgNfDhsiIvgSn4DhxAAUQyfdsnkkCYCwUk_j0xTGOYsk1M07SoCUm0ilJOJSWXVcNy3cgd0QPcDyPE9MC5W93hNbs2FMHjOhwd8kE_SRpF_RAxECQjLw-MS4BeWyuAAQShAp12kqk0SzDglH4chxHSeVsgymBMoUDBui4PKFEUbIrHWLYACoYU67qFC68wABYZ3DRRmSjNlY05HpeSGFMBMqSYRTFVUVlOdY5V2RaDjBY5K01GtbjrB4nnIds7xS4LzUtDF-x230p0RBE3QQvsvTte74RWEl_FnUNaXpebRsjVkYw5eM0sTAZZoFIUtuVO0JUQaVC3lGklWWpYTg1dZqyAnUG31M7AuvM13Rut7cXup1HtdeDrrHW1KYdKcvoUQMfqFUMUBG6pgejdk4y5CGZv5VNKkzbNcwnCsUd2EsKoNaWC3W3Ha3rRtm1bInOwfHtXvHFBJzQYcoX1xnJ3hV1fvnRcqGctdNyobdd33Q9jxAfg1EoVQIAocgaCihLvxkeKIIQ3wQEPBoIAjmCvMPOmFAjuAmyMWAAEV0nELhY4UDhyHSGBE4j3oytqAAFRM-FzkvTHECAsAj4uQAybOYHLsqNBrkAvfgChTBgCP_Dwu33bUHAaAAaxwIwYHfSRA6_WLA6dhoYFkAo9BcZKgq-ZysBgF95Q8X2PxATeilkSxzEsKxnIAAX6HBBigAgC6kCA19kAB2aw0H4AaIA4jAOAUAA&query=previewwindow%3Dtests%26file%3D%2F05-day%2FdifferenceInDays%2Fvanilla.js\",\n  \"date-fns/05-day/getDate\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAVgLQBMCGBPAegHMYAXAER1JgN2ozADs4A6AKwWRAGMB7R6gKQgCBAAQALUqQAOcRKLowGzFrwBORAgDcATCwCMAZhYpavbnGJlK1ADqM-zUmOBiSFKjDEBfMQF4xdRgARwBXCGCACgByJRU4GIBKBwdRMQB1CQhuCTFcPDFeMDFSCW8AW34ysQg4MV0ATjEAMRgAI3UwnHVC3RQDXQB-ByqsMNgWGAAPGQ1SesCPWxgoxhgAdzEVqP7BgBoxA0OmpJTGdP8APgbGhxB9kDqAIQhGHrwkMBwoOBgfR7obD4ayeaiglYsOAyGDcdicUBOQSkYROOAuGYw7jULABW6pRz8dH5LxMRZBUIRaIxFi0LwJZIONEuGRQHBvPHBcKRVY0nQ4RjQNmMxgOajo2LLLwxQ5RJIBG7ABxiMSY2GkKJKMlJFikXgAUXCPyiauxMCw5xVpo1rPZjB1esN3SgmtJzHOPnODyecFe716Xx-fwBICBBQhXn5gqgbPhSER1RgQkQPCJLil1DxSgVJOoLAzq3OaXEWRyeQKRRKZUq1TydVurQ6XQ-DQGw1GvHGk0x83JBbWm22Xl2bcOx1uZ2LOaa90eLzeH0Dv3-jxYMmC0ggMHU6m48dTAiTKJTSsYKrsID-FQgF8QYm-y_2yrEF7gbyIsAAimFePYkKUuhgJ8zxfEAenUXgNgABR6JM4FvUCcG0XgICwC9gPPEBwl_GAoIguQEIvdd4G3bQYAvBwfHuEMZBwbgAGscBIeF-H3JEj33d4KhgYR4jJCNqG9LAYBhRhhMcLcERAPjmGEfRdH0AxvQAAXaHB2hgKACC6AQIG44QAHZDDQFgABYQB8SzLKAA&query=previewwindow%3Dtests%26file%3D%2F05-day%2FgetDate%2Fvanilla.js\",\n  \"date-fns/05-day/getDayOfYear\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAVgLQBMCGBPAegHMYAXAEXwHkwBNGHAJwN1JgzADs4A6AKwTIQAYwD2nNhKQgCBAAQALUqQAOcRLNbsuvUYyIEAbgCYeARgDMPFC1HC4xMpTw16TADqcx3UnOBySCmo6BkY5AF85AF45RhgARwBXCDiACgByLQ5udIBKT09ZOQB1BQhhBTlcPDlRMDlSBRg5PFC5CDg5YzkAKUSoGuMUMwAWAH5PAFtRLH6YHhgADxU9Uk6YwOdXUNTOGAB3OUo2VKHRgBo5ADZL41z8ziKogD45MwAOC08Qc5AOgCEIJwmHgkGAcFA4DBwr90Nh8I4gi4QkxEVsUYweHAVDBhPxBKBvJJSNJvHBfEsccI2Fhom9PgUvOJyVUcGwdHS4kkUjAMjwWGztDkHmTfCooDggZyEsk0ul-YYcJxoBK8oy2OSMptgm5GOlLqlctFXsBPHI5JTcaRUlodLkeKRRABRJIQ1KW6kwLAPc0e63iyWce2Ol2JN227gPcIPH5_OCA4GMUGIcGQ6GwzDVNE60JGJUqnD4pCE8TE0nM3zkACCtAA-gBJABytYAsgBlOlmFDduQAKmuKD7A6HxhGnlFAScOaYdK0xrNclSx3mAFUACoAYRtgp4gQAYv0oLrDZctLuyC3SwoT6y2Oegid7nIMAvzcueOut2f94fj7lLigAFPgQC7VnWTatm2jJFKU5SVNUtT1I0zStDOHRdL0_SDMM4xTDMcwLMsqzrJOSLbEwuwHEcgqnDhlw3F09yFPILz0l8nCxgCQIgmCEJQjCIA8CocTKBAMCMIwwjFiIpYwFIiAgKanDmu4IBQpMECqYgciplC5wLqpcBAkQsAAIqJKIbBaQ0jCJDA-nKXIqlMIwoj7AACkwclwNZzmGKIEBYKpDkqSASSWTA7muWovkgMJ8DiYYMCqZ44TfAJKg4MIADWOAkPi4jSUSckkkIwKTDA0hZDo2bIrqsZYDAOKcI1XhiQSIDVdw0imMYphmLGAACABGODDTAUAELZEgQBV0gAOzmGgPAjCA4TretQA&query=previewwindow%3Dtests%26file%3D%2F05-day%2FgetDayOfYear%2Fvanilla.js\",\n  \"date-fns/05-day/isSameDay\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAVgLQBMCGBPAegjgGUcBbGAEXwNwBcYMwA7OAOgCsFkQBjAPYtGwpCAIEABAAt69AA5xEEhk1YcBAJwDmBAG4AmdgEYAzOxR0BfOEVIVq-ADotBbepOCTiZSjTySAL6SALySmjAAjgCuEBEAFADkqsxsiQCULi4SkgCCEZIALJIkMPKM5ABGMJqSKABsiCgoTSiSOCxYRSVlFdW1xgAcra3eLJL00jCScA6SuHgA_C7kAljRsOwwAB7yWvRwod72fvjxLpKSLDAA7pI0jPEGKMaFADSSgx_vkvUfKOk3hcrrd7jhHs9Xh8vkUPkN_pkWIiciEAHwTTTRGAuEBvEDEABCEBYOE0eCQYBwUDgMECePQ2FoPgc_jsvkceHYcHkMD4XB4oDcInoYjccA8Ox5fEYXTC9Ex2JYLjFHlU6iOERicRgSXYdHBajSiJVknkUBwxI1UViCUSer0HWg5oyWWE8HoSWZpzwiQ-8XSoXRwGBkt5HrVbHS7HoAgAojEqfFQ9KYFhEZdkx6zRakdG4wmoPEI3BEYFEbj8XAiSSyRSqTS6SAGQs2SzaA6WE6cPykIKhMLRUJxcd2f4jkWDbkPqoCQG0cDVLk8wAZaxUxyMEjy4naf2hEJhGcrtewB4wLeaHf-105fLTYqlcowKo1OqNZqjDpdB-9Z_9SRDCMzRjBMUwzHMCzLCwqzrJskr7IcYRehy5zjCCdxnk8Lw_DCPx_HUgLAtcGEGlhUKfN8cIwgCLjIlIaIYliOJ4oSxKkuSiCUtStJ4uw8gRHIEA1JofC9vw_YwKIiAgMGaFOCANLkBA8mIJIXE0kCckKTusAAIrRAIjAqYxMCaZc8mkpoAg3AACqSklwMZFl6AIEBYPJZmSPJMSGTANlWYoTkgPx8A1Ho2IgC4gQ4o28g4HwADWODaDA_JCGJQqSSKvAkpQYgpOorbehWWBlJJpWuEJAogAVbBiEYBhGMYFYAAKVDg1RQAQmLCBAeXSQA7CYaDsIUICBBNE1AA&query=previewwindow%3Dtests%26file%3D%2F05-day%2FisSameDay%2Fvanilla.js\",\n  \"date-fns/05-day/isToday\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAVgLQBMCGBPAegjgBUB7XQ3AFxgzADs4A6AKwWRAGMyHa-kIAgQAEAC2rUADnETCadRizIAnAOYEAbgCZmARgDMzFASxkucIqQr4AOgx5NqI4COLlKIgL4iAvCJUYAEcAVwhAgAoAcgV6JiiASnt7YREASTARahs8NzgRbTQRAGUYKVoAWwAjGBUClD0AFgAaPIKi0vKYatqRJsQUFCycgH57CooQ2GYYAA8pVWp8_3cciIYYAHcRABEcWgjtBpaRAA5Wwtam1pQEpIZU3wA-LJUQmHsQZpBiACEIBg4FR4JBgHBQOAwLzfdDYfBWDzw1aUZhwKQwLhsDigRz8aiCRxwZxzdFcWhYPyvd7JBy8IkiBRKSmBULhGDRZimfaKeL3QnOKRQHAA5nBMKRKKczQ4BjQIWJGm0InRZH4KKtCIJPwvYD2EQiEkY6gRRlMBLMbIAUVC4IihrJMCw9319uNguFDHNVptUBN3KU9y89y-Pzg_0BwNB4Mh0JAsMoCJyWhlcpwWKQON4eIJdOcqty_gU2pcepE_JEeHgtBUnn8G22ewOzoCMGoIRUDArVdqKOyABlzOCYI2YMVqCoAWpNX5fIXuRayAOuEOR2OJwwp4GaakMsNPMR2iUypUanUjtc2oUj10enV-oM9_gxgwJlgpjAZvNFss8oi8Ostl2blDmOVpznaK4Tlue5HhecdqQYEM_gBIEQUQMEIShb5mCkQJJAgWoVC4DNuCzGABEQEBdU7ERbBASEKggOjEBEDDIWaUs6LgSdYAARRCMhaGYqkYA4mi6KBFQyE2AAFIFyLgYSJM0MgICwOixP1OjQkEmAZKkmQlJAXD4FqTQPhAewvE-WMpBwLgAGscDUD92F4EjcXI_FOEBCoYEEWIlETSgQywMpyLChwCOxEBAqYQRdG0XQ9BDAABKocBqKACDePgID8wQAHZ9DQZhGhALxKsqoA&query=previewwindow%3Dtests%26file%3D%2F05-day%2FisToday%2Fvanilla.js\",\n  \"date-fns/05-day/isTomorrow\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAVgLQBMCGBPAegjgBUB7AWzICdqyB3A3AFxgzADs4A6AKwWQgAxmQ6sxSEAQIACABbNmABziJpLNpx40A5gQBuAJm4BGAMzcUTMkLhFSlGnXoAdDiK7MZwGcXJVaBhkAXxkAXhlqGABHAFcIKIAKAHINdi5kgEo3N2kZAEkwGWYyXDxfOBlDNBkAZRglVgoAIxhqKpQTABYAGgqqrrqGptb2koDnAH43KixY2G4YAA8lGmZKiL9HQPpEjhh6GQARHFZEw07emQAOPsMANj7uvpRM7I48sIA-YupYmDcIB6IGIACEIBwcNQ8EgwDgoHAYMFgehsPh7P4nAwMdtnNw4EoYEI-AJQB5xMxJB44F5loShKwsOFfv8cu5RDSZBotMyonEEjAUtwmKdNBl3tSvEooDgIbyYvEkslhfocBxoDKsmzWDSUlsJgxkn1Eplwj9gG4ZDI6UTmIluVxMtwSgBROLwxI2hkwLDvK1eu3S2UcJ2u91Qe2irTvYLvIEguDgyHQ2HwxHIkCoso4g2MVXqqAyklIMmiClUjlefVYw4RDRm7yWmSSmR4eCsahlZn7Q4nM5-1vttplfEwZh9wVtmnD_DcHRjicmmQAahkJgHUWYsWoHEH087s5KABkbPCYBPasxqBCdEuwveuaLnWQT0IzxerzeTW5gmy8oVilKfB-mqIZGhgFo2g6Z4QMGepwMgsZcQYaYOFmeYYEWFY1g2CpMR2PYDmOUVzkuPpbiqR41yuV53k-H4r1ZDh4zBCEoRhRA4QRJFgW4JRN2YCA2moIQS2EMsYAkRAQAtXcZBcEBEQoCAFMQGQuMRHomwUuAb1gABFWIyFYVSWRgLS5IUqFnAABShSS4FMqz9DICAsAUiyrQUuJjJgGy6BUJyQH4-A2n0AEQB_QEMyUHAhAAaxwecSVEMTyUkylBEhCgYEkNItBzGt4ywBpJJK9whNJEB8q4SRjEMYwTHjAABZocFaKACD-MQIByyQAHZTDQbguhAYJxvGoA&query=previewwindow%3Dtests%26file%3D%2F05-day%2FisTomorrow%2Fvanilla.js\",\n  \"date-fns/05-day/isYesterday\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAVgLQBMCGBPAegjgE14AXGAJ10N0ozADs4A6AKwWRAGMB7JpUFIQBAgAIAFuXIAHOIjH0YjFqz5UA5gQBuAJlYBGAMysUBLHx5wipCtVoAdJvxblxwccTJxKNfOIAvuIAvOJUMACOAK4QEQAUAOTKqnCJAJTOzmLiAJJg4uR8tF5w4npo4gDKMLKUALYARtTlKIYALAA0peXt1bUNzVTiePb-eAD8zvXF0bCsMAAeshrkZWHeY7TxTDAA7uIAIjiU8XptXeIAHN16lx3dKOmZTDkhAHyFVNEwziCdIGIACEIEwcFQ8EgwDgoHAYIEAehsPhbD4_LRUVt8Kw4LIYDwOFxQK4hOQRK5fOIlnieJQsKEvj8si4BJTlMx1uEorEEolWBYTioORlnBT3LIoDhQQyIjE4jAkvydDgmNBJSKmM5KL4kptfA58IluvF0qFPsBnOIqct8eR4uyWOlWEUAKIxGHxam2mBYF5Wr20-ISqVMJ2u91Qe2CjkvQIvf6AuAgsEQqEwuEIkBIjF69Eo5WqqCSwlIYkCUnk1nuXMGvAM5RmjyW8RikZYuthXYHY6nP1t_XjHEwcg9hWjAe0ViaYejk3iDDiQx9iLkaJUJj9vN4Z18AAyVhhMFHVXIVFBmjnISv4mUO_3PEPx9P55NzkCzJy-UKxQCxHKlRqOoYCaFpzgeHo7n6ICQOGcctymJgZiwOYYAWZZVk5Gtxh2fYjkFM4Lm6G5em6cCnheN5PlPJkmATYFQXBSFEGhWF4QBVhZBXcgIGoKgeFLXhyxgYREBAC0N3ERwQDheoICkxBxBYuFOmbKS4HPWAAEVoj4Sh5MZGAVIkqTwSoPg9gABXBYS4H0kydD4CAsCkoyrSkmJdJgCyzPkOyQE4-BqB0X4QDfP5M1kHAeAAaxwadCQEASSWEsluDBeoYBEFIOUxCd8ATLBamEwqXB4okQGylgRAMPQDEMBMAAFGhwZooAIb5BAgDKRAAdiMNBWHaEBAhGkagA&query=previewwindow%3Dtests%26file%3D%2F05-day%2FisYesterday%2Fvanilla.js\",\n  \"date-fns/05-day/setDate\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAVgLQBMCGBPAejhgBcARHEmA3KjMAOzgDoArBZEAYwHsGr-SEAQIACABYkSABziIRtGPSbMeAJwDmBAG4AmZgEYAzMxQ0eXOEVIUqAHQa8mJUcFHFylGKIC-ogLyiajAAjgCuEMEAFADkispwMQCUDg4iogDKpKIk4t5GKLmiuHiiPGA5eaIAtnxFJDyiBpkw0lTVAEYwaqK6KAYALIgOtVhhsMwwAB7S6iRwAe42XlEMMADuorYwUX2DADSiAByHBkmHBSkM6f4AfKIAKmHeWdKiBb39A6IoKIi__xQDhA-xAEDgACEIAwcGo8EgwDgoMQfKD0Nh8NZPFQsdtmHBpDAuGwOKAnAISEInHAXNNCVwqFhFmtNttdl9Did3igrg5qS5FIwFoFguFIjsYswaF4Esk-XwaaJpFAcNDFqKItFJTocAxoCq5QwHFQabEPNsYocokkAvdgA5RKI6USSFFBUwkswGgBRcJIqLOhkwLBXR2B13K1UMT0-v1QN1eIVXHxXEFgyHQ2HwxCI5EwVEgdElXFeHV6qAqklIMl1GCCRDcBUuc1eRYJqiHEO21wO4pefHLKhu0NBUhhNQMPv2Bg-VLXMRZFy5fKFcR90rlSreWr8NcNJotNowTrdT6DYYMUbjGCTGZzYVLbE7FlbFZ7Aac07nblXG73J4vK03Jnt8AJgUCDBpuCUIwnCCJIiioLMNIwRSBA3RqFw1aNvwdaUg29qTqIdggMQ1QQCRiCiLmxD7L2JFwNCGiwAAimEPD2EgORqM8dFESRsJqDw6wAAqwnWcCUcRIA4NoPAQFgJF8Y6JHhBxMAiUJshSSRKHwN02gwCRDizpBBbSDgXAANY4BoN7sHw2Hknh2EwtUMBCPEQollQaZYK0db-Y46GkiAXlMEI-i6PoBhpgAAh0OBdFABA8fwEDuUIADshhoMwAwgD4RVFUAA&query=previewwindow%3Dtests%26file%3D%2F05-day%2FsetDate%2Fvanilla.js\",\n  \"date-fns/05-day/subDays\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAVgLQBMCGBPAejgFcAjAEXzgNwBcYMwA7OAOgCsFkQBjAeyb1BSEAQIACABa1aABziIxdBszZ8ATgHMCANwBMrAIwBmVihp8e1EhSoAdJvxa1xwcTcp444gL7iAvOLqMACOxBDBABQA5MqMLNEAlA4OYuIAymS06jg8LoYo4rhe4mDqfAC24oYZMLL0FaQw6uJ6KIYALIgOFXxYxLCsMAAeshq03oEeVJFMMADu4pT0kW2dADTiABybhom7KMlMaf4AfOIAYuoQ4gCCxJqteq3tHeIoKIgfXygOIOsgCBwABCECYOHUeCQYBwUDgMB8APQ2HwRDInms6KorDgshgPA4XFATiEtBETjgLhGeLyMCwAXEc0Wyxgq1emwA7Js9Hojg4KS5lKoGcEwhFWdFWDQcPR4nAkvyBJTxLIoDgwSLQuEopLdDgmNA1QqmA56JSYtMvNFNpFEgFzsAHOJxNT8bRIkKWIlWLQ-ABRMKwyKu2lYI7OkPu1Xqpje30B4hBz1wI4-I7_QEgsEQqGIGFwhFIzDFNG2Lx6g1QNWEpDEgSk8lKlyWybiD0ymCbMP21xOoodnEwWgs9v0ViaIcju0YIrhoJD4jqJj9-gOHwpY4STKkbK5fKFYreMqVaq1eowRrNF6dbpMXr9QbU8atluzBZLDtsjbbXb7aqHVIJDOS5rjuB4nmvN5vmg34mAzIFQXBSFoVheFERAVhZGCGQIGadQeFrXh6xgYREBAR1l3EOwQHhCoIGoxBSlQzs-2ouAwU0WAAEViD4VckHEbJiBYyjqIhcp5gABQhEi4AYqiQBwHQ-AgLBqPWViQDCPiYEk8p5Hk6isPgZodBgai1z-dDZFyABrHAJ0JARCJJEiyW4cEKhgEQ4lUUsMQzLA6hIoLHFwokQF8lgRAMHkjAzAABUgcCaKACHUYhBAgLyRA5Iw0FYDoQB8EqSqAA&query=previewwindow%3Dtests%26file%3D%2F05-day%2FsubDays%2Fvanilla.js\",\n  \"date-fns/06-weekday/getDay\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADANgLQHcYwNYAmAhgJ4D0A5jAC4AipZx1MGYAdnAHQBWCyIAYwD2bZqKQgyZAAQALatQAOcRFKYt2XIQCcKZAG4AmTgEYAzJxSMhAuJRr0SAHTbCO1acGlU6paQF9pAF5pbRgARwBXCDCACgBydVYOeIBKFxcpaQB1WQgBWWliEmkhMGlqWRhpHHxpCDhpQwBOaQAxGAAjbUiibRLDFBNDAH4XGAAPRR1qLm0iNgIhAFti4O8HUli2GCxpemZYweGAGmkTM5bU9LYsoIA-aTMM25lc_MK1soqqmtw8eqNQxodpdHp9AZDUbjKYzLhwSKLPwhHyOba7fZEQ7HQxnC5NNDXTIyB7SFAuEAnEANABCEDYEKQYCIUDgMH8VPQ2H-xXsvnIqNInDgihgAh4fFAbjE1AkbjgHkmooEzAI62ALmkoQWS1WpEQTxOmukCKRJANKCNbH8L3lHnUmnWYSiMRgCU4jCxGhSNzt0kUUCI9KdEWicXiHv0C2ggbSL2YCoSgpI8TOsVSwUeGrYWqVYuosQdHFSnGoQgAolEWbE8yqYAQbrmpvnYgGg2wS2XK70oIWvZobv4bpTqXA6Qz-kyWWyOSAubVCAxkwZo1BAxKkFKRDK5SIFRt-et1Jmil7OMn0y8su8CqeSt9KtUF4Cmq0Ot1ev0mlCxjtYdpZk4eZFhWNYUU2Eh0T2A43RxPFLmaIlXhPZ42GJHI8lvL5ykfP46gaAlQQ_CFv2GX8lThYVETAg80R2aCvSOKF4IJJC7keck2BHWl6UZRBmVZdkqU4RQwgUCAYG0bQBE3QRtxgcREBAbMtScEA2WWCA1INAS2StVT1PpChYAARUiIRmG0ioehgfTpDUvptCELAAAU-gUuArIc_QhAgAg1LstSogsmAXKc5QvJAUT4Ek_QYDUlwbS42dFCIAQ8CIKgJREWTpQU2V-AZZYYAkJJND5RwRwIGBRUWBSBAkyUQDKjgJGMQxjBMEcAAFOiIToYCgMgelECBiokAB2UwAFZOAAFhAfwlqWoA&query=previewwindow%3Dtests%26file%3D%2F06-weekday%2FgetDay%2Fvanilla.js\",\n  \"date-fns/06-weekday/getISODay\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADANgLQHcYwNYAmAhgJ4D0A5jAC4CSAygPIAipZx1MGYAdnAHQArBMhABjAPY9O0pCDJkABAAtq1AA5xECjl14CJAJwpkAbgCZ-ARgDM_FOwli4lGgxakAOj0l9qi4EUqOiZWEkUAX0UAXkVDGABHAFcIeIAKAHJdbj4MgEpvbwVFAHVlCDFlRWJwiTBFamUYRRx8RQg4RXMATkUAMRgAI0MkokNw8xQrcwB-bxgAD3UjagEamKC3UNI0nhgsRVZONMnpgBpFKwuevIKeYuiAPkUbQvulMoqq9bqGppbcHh2p1zGh-kMRmMJlNZvMlisBHAkjx1rFgu4wrt9ociMdTuYLlcumhbkUlE9FAB2bwgM4gDoAIQgPChSDARCgcBgETp6GwgJqrhCHnI6O2JH4cHUMDEQhEoF8Mmocl8cH8i2lYk4BA2wG8imqpEQLzO-sUSJRRqppp4ETeqv8un0G3iyVSMEy_HYuL0uTuDsU6igRGZLsSKXSGS9piIPGgwfyb04asyYpFGQuaTyMWeep4Bo1MuoaSdfDy_GoEgAoskOWlC1qYAQ7gWlkW0kGQzxy5Wa6MoCWffo7hE7rT6XAmSzxmyOVyeSA-a1CGw02EzLH40Q5UgFVIlSqpGrNsKwhtdDnDZx-MFMdmAD73qlvYqfSqG2r1RrNZfArq9AZhlGcYuhhOY9nhQxVn4VETwxHY9gOI4PXxQlrm6Ul3kvV4eDJUpynfH4v3-X8OmJcEgKhUDpnAjUEUlZFYLXBDsWQk4YTQ4lMIeZ5qR4cdGWZVlEHZTluTpfh1HiNQIBgQxDDEXdxH3GBZEQEA8wNTwQC5ABbCBtONUSuRtLSdOZChYAARSSCROEMhoRhgUzFG0sZDAkLAAAUxlUuAHLc0wJAgAhtJc7TkjsmAvI8zQApAKT4Dk0wYG07w7X4hd1CIMQ8CIKg5SkJTFVU5VRBZXSYDkbJ9CFeCSHHAgYGlFFVLEWT5RAGq-DkSxzEsKxxwAAUGIhBhgKAyBGaQIEquRKWsABWfgABYQAiDaNqAA&query=previewwindow%3Dtests%26file%3D%2F06-weekday%2FgetISODay%2Fvanilla.js\",\n  \"date-fns/06-weekday/isFriday\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADANgLQHcYwNYAmAhgJ4D0EcAYgE4THnEAuMGYAdnAHQBWCyIAMYB7dizFIQZMgAIAFkyYAHOImnNWHbsJoBzMgDcATFwCMAZi4oyBYYLgVqdBgB12IzkxnAZlWvVIZAF8ZAF4ZGhgARwBXCEiACgByDTZOJIBKNzdpGQBJOBkjNBkAZRglFgBbACMYGiKUUwAWGX8GAH43KuECGNguGAAPJR0mQvC_Z1IE9hgsGQARIhYEoybmgBoZAA5t4oys9lzQgD4ZJhoYmDcQTZBKACEIdiIaEiQwIig4GCD79DYXCEUiOdqgqYBEhcOBKGCCXj8UAecRMSQeOBeYZwwQsAhhC5XG7sNwYrwaLQEyKxeIwZJcGwrTTpI5kmRKKBEF5U6JxRJJBkGIjsaCczLZMTwJjJSEMJLbBIZMLnYBuGQybHw6UUzgZLhMYQAUVi3wSmtxMAIR3V5ulHK57D1BuNMVNOrgRyCRzuDzgz1e70-31-_xAgJw-AYYOm5CFIqgnMRSGRolR6NEmN8TihBI0ypkGi4uhgTGWJEVYVC4QArBLcgUiiVypUYLV6o0Wm0Y112D0-gNsWMJlnweW5gtlqt1i1tntG4ccrIzoTrrd7k8Xm8Pogvj8_vcuEpIooIPUaIJk0JUzAJIgQKr2OqXCBflUIM_EDJd79NmqZM-4BeXRYAARRiYQWA_FcYF_R9_xAN4aGELAAAU3hvOAoOfIgDGEehn1gp8QFiCCYBQpCVCwkAj3geoDBuEA3CCW5QyUIhBDwIhi0RURLxRG80QEV4qhgSRUi0aMoR9AgKhvGT3FPJEQHEzhJBMIwTFMH0AAEaiIOooDIK4xAgETJAAdjMasuGaEAgns-ygA&query=previewwindow%3Dtests%26file%3D%2F06-weekday%2FisFriday%2Fvanilla.js\",\n  \"date-fns/06-weekday/isMonday\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADANgLQHcYwNYAmAhgJ4D0EcAsgPYB2x5xALjBmHXAHQBWCyIAMb1WdZkhBkyAAgAWzZgAc4iKSzYduNAE4BzMgDcATFwCMAZi4oyBGoLgVq9RgB06wzs2nBplWg1JpAF9pAF5pbRgARwBXCEiACgBydXZOJIBKNzcpaQBJOGkjI2kAZRhFVgBbACMYbSKUUwAWaX9GAH43KpoCGNguGAAPRR1mQvC_Z1IEuhgsaQARIlYEoybmgBppAA5t4oysulzQgD5pZm0YmDcQTZBKACEIOiJtEiQwIig4GCD79DYXCEUiOdqgqYBEhcOCKGCCXj8UAeUTiRBCehwLzDOGCVgEMIXK43OhuDxY6TqTSEyKxeIwZJcGwrDTpI7kryKKBEF406JxRJJJkGIh0aDczLZMTwZjJSGMJLbBIZMLnYBuaTSHHw2VUzgZLjMGgAUVi3wS2rxMAIR01ltlXJ5dANRtNMXNergRyCRzuDzgz1e70-31-_xAgJw-EYYOm5BFYqg3MRSGRIhgYgkHN8TihhPUqspLK4uhgzGWJGVYVC4VMUtyBSKJXKlRgtXqjRabTjXToPT6AxxYwmOfBlbmC2Wq3WLW2eybhxyMjOROut3uTxebw-iC-Pz-9y4ikiCgg9W0glTGOlmfR6rompcIF-VQgT8Q0j3v02GukT7gLy6LAACKMQ0Kw76rjAP4Pn-IBvNoNBYAACm8GZwJBT5EAYNAQAQT4wY-ICxOBMDIYhyiYSAx7wPUBg3CAbhBLc4aKEQgh4EQpaIvQV4ohmaKgK8VQwBIqSaLGUJ-gQFQZjJ7hnkiIDiZwEgmMUZh-gAAjURB1FAZBXGIEAiRIADsZgAKxcM0IBBPZ9lAA&query=previewwindow%3Dtests%26file%3D%2F06-weekday%2FisMonday%2Fvanilla.js\",\n  \"date-fns/06-weekday/isSaturday\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADANgLQHcYwNYAmAhgJ4D0EcAykQC4CuATsecbTBmAHZwB0AVgmQgAxgHsu7SUhBkyAAgAWtWgAc4iOWw7c-YxgHMyANwBMvAIwBmXijIExIuBWp0mLADpdxPWvODylDQMzKTyAL7yALzyjDAAjvQQcQAUAOTanDxpAJReXnLyAJJw8qYA7PJUMKrsALYARjCMZSgWACxVbqEkAPxedWIE9LC8MAAeqvq0pTFB3SwpXDBY8gAidDAppm3tADTyABwHFTl5XIVRAHzytIz0MF4geyCUAEIQXESMJEhgRFA4DBwi90NhcIRSC5gu4ofMQixeHBVDARAIhKAfFJaDIfHA_BMUSJ2ARord7o8uF48X5tLoyXFEsktmlePZNlk4LlqRJ8fJVFAiJ8GQkkqlWSYiFxoILuVTJPBaOl4bCSGkDikctEbsAvPJ5ITUUq6TwcrxaGIAKKJAEpQ3EmAEc76-1KgVCrhmi3W-i2k1wc7hc7PV5wD5fH5_AFAkEgME4fAsaELKHGKUyojopCYiTY3G8vwqnpk7Ta-TaXgGGC0DYkTXRKIxND5C4KEplSrVWowRrNVodLoI0j9LiDYajQnTWaBVxDuvLVYbdjbXYHY4ds4FBTXckPJ4vd6fb6_RD_QHAl68VRxFQQZqMETZ0S5mDSRAgXVcfUeEBAuoQH9EHkM8gT2PV5B_OBPgMWAAEV6DEdhAN3GAwK_CCQG-RgxCwAAFb5XzgZCfyIYwxAgAgfzQ78QESRCYFw7D1GIkBr3gZpjEeEAvHCJ5Y1UIgRDwIgq3RCQnyxV8cWEL46hgGRMl0ZM5xDAgalfNTvDvDEQEUngZHMUxzAsEMAAEGiIJooDIe5JAgOSZHKSwAFZeHaEBwk8zygA&query=previewwindow%3Dtests%26file%3D%2F06-weekday%2FisSaturday%2Fvanilla.js\",\n  \"date-fns/06-weekday/isSunday\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADANgLQHcYwNYAmAhgJ4D0EcAygK4B2x5xALjBmHXAHQBWCyIAMYB7OqzFIQZMgAIAFs2YAHOImks2HbsIBOAczIA3AExcAjAGYuKMgWGC4FavUYAdOiM7MZwGZVoMpDIAvjIAvDI6MACONBBRABQA5BrsnEkAlO7u0jIAknAyxmYyVDBKrAC2AEYwOkUoZgAspS6kAPzulcIENLBcMAAeSrrMhRH-bSQJdDBYMgAiRKwJxo1NADQyABxbxRlZdLlhAHwyzDo0MO4gGyCUAEIQdEQ6JEhgRFBwMMF36NhcIRSE4AoxQVMuHAlDBBLx-KBPOJmJJPHBvEMYYJWARwudLtc6O40d4NFo8VFYvEYMkuLZlpp0ocSTIlFAiM8KTE4okknTDEQ6NB2ZlsmJ4MxkpNAiQklsEhlwmdgO4ZDJMbDJWTOBkuMxhABRWJfBIa7EwAiHNVmyVsjl0XX6o00E3auCHYKHW73OBPF5vD5fH5_EAAnD4cHS8ECoVQdnwpCI0TI1GidF-ZwyvEaJUyDRcPQwZhLaaKsLlmQoMW5ApFEplCowGp1BrNVoyzp0bq9fqY0bjDNg0gzOaLBmrdZbXZ1g45WSnfFXG53R7PV7vRCfb6_O5cJRRRQQOo6QSJoTJmASRAgFV0NWuEA_SoQB-IGRbn4bVUyB9wZ56WAAEUaGEVhX0XGAvzvH8QFeHRhCwAAFV5LzgcCHyIQxhAgAgHyg-8QFiUCYEQ-CVHQkB93gOpDGuEB3GCG4QyUIhBDwIhC3hUQzyRS8UQEF5KhgSRUi0CEZW9AhykvKSPCPBEQFEzhJFMYxTDMb0AAFqiIWooDIS4xAgITJAAdnMABWLgmhAYI7LsoA&query=previewwindow%3Dtests%26file%3D%2F06-weekday%2FisSunday%2Fvanilla.js\",\n  \"date-fns/06-weekday/isThursday\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADANgLQHcYwNYAmAhgJ4D0EcAKgBYCuATnMecQC4wZgB2cAdACsEyEAGMA9tw5SkIMmQAENNmwAOcRPPace_cQwDmZAG4AmPgEYAzHxRkC40XArV6TFgB1uE3mwXAFSlpGZlIFAF8FAF4FBhgARzoIOIAKAHJtLl40gEovL3kFAEk4BVMAVgUAZRhVDgBbACMYBjKUCwAWBWD3UgB-L3rxAjpYPhgAD1V9NlKYoLdQkhTuGCwFABEiDhTTdo6AGgUADiOKnLzuQqiAPgU2BjoYLxADkEoAIQhuIgYSJDARCgcBg4Te6GwuEIpBcPSWsMWLD4cFUMFEgmEoB80jYsh8cD8k1Rog4BGi90ez24Xnxfm0unJcUSyRg6T49m2Omyl1pClUUCI30ZCSSqTS7OMRG40AFuXyUngbHSCxCLDSRxSOWid2AXgUCiJaKV9N4OT4bHEAFFEkCUoaSTACJd9falfzBdwzRbrXRbSa4JdwpdXu84F8fn8AUCQWCQBCcPgWAjVTDJdKoAKMUgsZIcXjJATAq4UyRydptQptHwDDA2Ftllqok2FB15YUSmVKjU6jAmi02p1uoj-oNhqMYOMpjM5kW4SwVmtNpzdvsjqdOxcCopbhSni83p9vr9_ohAcDQW8-Ko4ioIC0GKJs2JczAZIgQLruPqPCAQfUID-iAKGeIIHHqCg_nA3wGLAACKdDiBwgG7jAYFfhBIC_Aw4hYAACr8r5wMhP5EMY4gQAQP5od-ICJIhMC4dh6jESA17wC0xjPCAXjhC8saqEQoh4EQNYYpIT7Yq-uIiD89QwLImS6MmvT_G8BC1K-6neHemIgIpvCyOYpjmBYIYAAKNEQzRQGQjxSBAcmyAA7JY5R8B0IDhF5XlAA&query=previewwindow%3Dtests%26file%3D%2F06-weekday%2FisThursday%2Fvanilla.js\",\n  \"date-fns/06-weekday/isTuesday\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADANgLQHcYwNYAmAhgJ4D0EcAKgK7zHnEAuMGYAdnAHQBWCyIAMYB7dizFIQZMgAIAFkyYAHOImnNWHbsIBOAczIA3AExcAjAGYuKMgWGC4FanTgMAOuxGcmM4DMq09KQyAL4yALwyOjAAjjQQ0QAUAOQabJzJAJQeHtIyAJJwMsYWMgDKMEosALYARjA6xShmACwyga6kAPwe1cIENLBcMAAeSrpMRZEBLgyJ7DBYMgAiRCyJxs0tADQyABy7JZnZ7HnhAHwyTDp0HiDbIJQAQhDsRDokSGBEUHAwIQ90NhcIRSE4OgxwbNSFw4EoYIJePxQF5xExJF44D5RvDBCwCBErjcYDlPKIsTINFpCdE4gkYCkuLY1poMidMT4lFAiK8abF4klkkzDER2NBuVlSSwsSkZkESMldolMhFLsAPDIZDiEUxElTOJkuExhABROI_RLavEwAgnTVW3VcnnsQ3Gs00C36uAnEIne6POAvN4fL4_P4AkBAnD4SFyzrkEViqDcpFIFGiNEY8k-OMMQkaVWUllcPQwJirEjKiLhSLGUl5QrFUoVKowOoNJqtdrQkg9dh9AZDHETKb-Zzy-aLFYsjZbXYHJvHXKyC5E27sf3PV7vT6Ib6_f4PLhKaKKCANHSCNNCDMwCSIEDq9iatwgP7VCCvxAyfd_bYamRXzgV49FgABFGhhBYL81xgf9n0AkB3h0YQsAABXeO84Bg18iEMYQIAIV94JfEA4igmA0JQlQcJAE94AaQwSRADwQjuCMlCIQQ8CIUskVEa9UTvdEBDeaoYEkNItCheV_QISo73kzxz2REApM4SRTGMUwzH9AABWoiHqKAyBuMQIHEyQAHZzAAVi4FoQBCZznKAA&query=previewwindow%3Dtests%26file%3D%2F06-weekday%2FisTuesday%2Fvanilla.js\",\n  \"date-fns/06-weekday/isWednesday\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADANgLQHcYwNYAmAhgJ4D0EcA6jAQHbzHnEAuMGYdcAdAFYLIQAYwD2dNuKQgyZAAQALFiwAOcRDNbtOPEQCcA5mQBuAJm4BGAMzcUZAiKFwK1WgzhMAOnVFcWs4LKUNPSMpLIAvrIAvLK6MACOAK4QcQAUAOSaHFzpAJReXjKyAJJwsiYALLIAyjDKbAC2AEYwuuUo5lXBbkwA_F4NIgSJsNwwAB7KeixlMUGuoSSpDFiyACJEbKkmHRUANLIAHAeVufl0RVEAfLIsuokwXiB7IJQAQhB0RLokSGBEUDgMHCL3Q2FwhFIzm6i2hC3cpG4cGUMCEfAEoB8EhYUh8cD8ExRQjYBGit3ujzoXjxfk02jJcSSKRgGW4dk2Why5xpsmUUCInwZCWSaXSbKMRDo0H5eQK4ngLAy8xCCJI6QOqVy0RuwC8slkhNRirpXFy3BYIgAokkAalDcTaOd9fbFXyBXQzRbrYlbSa4Odwudnq84B8vj8_gCgSCQGCcPgmHCVYmJVKoPz0UhMWJsbixPjAi5k2EYpptbJNNx9DAWBsllqoo3ZJY5UVSuUqrV6jBmq12p1ZDDVf06INhqNCdNZoWh0xljBVhstjtOgdjh2zoU5NdyQ8ni93p9vr9EP9AcCXtxlHElBBWrohFnhDmYJJECBdXR9R4QECGhAf0QWQzyBPY9VkH84E-fRYAARUSEQ2EA3cYDAr8IJAb5dBELAAAVvlfOBkJ_IgjBECACB_NDvxAJJEJgXDsNUYiQGveBWiMR4QC8cInhjZQiCEPAiGrdExCfLFXxxQQvgaGApCybQkx6UhgwIOpX3U7w7wxEBFK4KQzBMMxzGDAABJoiBaKAyHucQIDkqQAHYLAAVm4CoQHCbzvKAA&query=previewwindow%3Dtests%26file%3D%2F06-weekday%2FisWednesday%2Fvanilla.js\",\n  \"date-fns/06-weekday/isWeekend\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADANgLQHcYwNYAmAhgJ4D0EcA6rnjAHYFnEAuMGY9cAdAFYLIQAYwD29NuKQgyZAAQALFiwAOcRDNbtOPEQCcA5mQBuAJm4BGAMzcUzEULgVqtBgQA69UVxazgsyjT4rrIAvrIAvLK6MACOAK4Q0QAUAOSaHFwpAJQeHjKyACIi8LIArLIA8kIsIgBGMLqyJijmACyyYERQULJiskSyOEGMAPweALYiBHGw3DAAHsp6LHAR_s7DBEn0MFiFRGxJzW0ANLIAnGelWTn0-eEAfLIsunEwHiAnIJQAQhD0RF0JCQnSgcBgIS-6GwtGI5ACLkYTkCdEY3DgyhgQj4AlAXgkLCkXjgPgWmOqMAIaxeb1ynjEJNkmm0a2i8USMFS3GYBy0mVuxJ8yigRH-rNiCWSKW5RiI9GgIuydLYJNSCM2KTOSSyESewA8slkZKxLCSzK4WW4NQAovEukljRSCLdDY7TcLRfRLTa7VAzbztLcQrdPt84H8AUCQV1wZCQNChoRSMjEUxZfLukQcUg8WICUSGT51aiqZFNLrZABtFBnNAAXW4_yEUDiBHg_rY3H0MBYBVI2tueTkRRK5SqNXqjWO7VBPT6A0TrjG9Em01mZOWq0ixdc212-0O07OlzKNyHFZp73ood-_0BwMQoNjX24ymiSggDV0QhzwjzDEJRAQH1ehDTcEBwXGCBwMQDoYxgE4DVkcC4H-fRYAARTiEQ2Bg55XgQpDwMBXQRCwAAFQEGDgPDiKMEQIHcT4iJAeIcJgcjSNUWiQDfeAGiMd4QA8EIPjjZQiCEPAiG7HExF_fEAN_AFxhgKR0m0FNNlDNtMUYBghE_XEQA0rgpDMEwzHMUMAAFaiIeooDIV5xAgVSpAAdgsUpuFaEAQgCgKgA&query=previewwindow%3Dtests%26file%3D%2F06-weekday%2FisWeekend%2Fvanilla.js\",\n  \"date-fns/07-week/addWeeks\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAdgLQHcYwNYD0AhgCYkDquecBJRALjBmAHZwB0AVgsiAMYB7Fo2FIQBAgAIAFvXoAHOIgl1GzNuwEAnAOYEAbgCZ2ARgDM7FLQF8apClTgAdFoLb1JwSfcr44kgF9JAF5JLRgARwBXCHCACgByVSZWOASAShcXCUkAQTJJABZJHD9JegFJE0kAZRh5RgBbACMYLUlDFBNCxBdGgRIo2HYYAA95bXp_UJ9HOJYYLEkAEQYYOM7ugBpJAA4dk3SdwsyWHOCAPkkAWSFa-o6ATg6u4pQURHfPlBcQLZAIHAAEIQFhELQATyQYCIUDgMAC_3Q2CoxDIvmoaIcfnYcHkMD4XB4oDcInoYjccA8Y3xfEYJBCkgWS1WjA2rx2-yepxclI8yVSjPC0Vi6wS7Foa3UaVOfMk8igRFBQsiMXi4oMRBY0EVGSywng9ESsz8CR2cXSISuwBckkkNIJRoFbHS7AqAFForC4g66TASKc7b6jQqlSxXR6vVA4s64KcAqc_gDgaDwVDEDC4QikZhSoQTZj9FqdUQiUgSUIyRShFTvOjHIyY2sdlhLZdPLbJMlcTB6Kz1t2dL3-xbJABqEqSABUkjQgbCvaiWhYXbWLgC-py-QZxTz_gqVXuDRgLTaL26vRY_UGwxpk2mdex1HmixWa3Z2z2ByORVO5yutwrnU8hPOebwfF87y_P8gIgmCkLQrC8KIiA7DyOEcgQG0Wh8OW_CVjAoiICANorpITggPCjQQBRiCSJm8JbJ2FFwKCOiwAAilEAiMLR5RaFEMBMWRFHgloAhYAACuChHOEg5EgEQ-gCBAJAUcJdoUdEPEwJJ4mKHxFHofAbT6DAFHrr8KHyEQfB4EQQ5EkIeGkoR5K8GCjQwGIyTSliGIIP8JD1IRwWuFhxIgL5qRiMYhjGCYSYAALNEQrRQAQAnCBAXliGgpgAKzsIUIABGVZVAA&query=previewwindow%3Dtests%26file%3D%2F07-week%2FaddWeeks%2Fvanilla.js\",\n  \"date-fns/07-week/subWeeks\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADAdgLQHcYwNYD0cArgEYDquecBAJgIYAuMGYAdnAHQBWCyIAYwD2bZqKQgCBAAQALRowAOcRFIbNWHTkIBOAcwIA3AEycAjAGZOKOkIE0SFKnAA6bYR0bTg0x5Xxw0gC-0gC80jowAI7EEJEAFADk6izscIkAlG5uUtIAymSMOvQCXgAs0jgB0mA6QgC20mb5MIrM9aQwOtLGKGZliG71QrTEsJwwAB6KuoyB4X7O8WwwWNIAIkww8b39ADTSABwHZhkHZVlsuaEAfNIAsiLSAILEetIoFbsVKCiIv_8UG4QHsQBA4AAhCBseg6ACeSDA9CgcBgQVB6GwVCIZH81BxTgCnDgihgAh4fFAHjEjAkHjgXimpNKMFoYWkKzWm2YOz6ZQOaHOlzc9K8KTS7MiMTi20SnDoW006Uuoukiig9GhkuisQScqM9DY0A1mWyongjCSiwCiQO8QyYTuwDc0mkTLJlvFHAynEYQgAojFkfF3SzaJdXaHLerNWwfX7A8Rg164JcgpcQWDIdDYQjEEiUWiMZgqoRrfjDIbjfQKUgqSIaXSRAzfLjnOz4ikDlgHbdvC7pCliTBGNztkO9COx_bpBhKtIAFTSNARiIj4g6NiDrZuIJm3IFUhFErlSrt2oNJotNowDpdHp8wZsYajcZM2bzVuE6jLVYbLa8vsRwnGc0gXDkMh9o8W6vO8nwPv0Hx_ACvzAqC4JQjC8KIsiqLoiAnCKJECgQF0OgCHWggNjA4iICAzpbtILggKi9QQMxiA1LhMB7AOzFwNCeiwAAisQQjMBx0hFMQPF8SAsJ1FgAAKsI0a4SBMfJhhCBAtDMbxjHMTE4kwEpdTKJJzFEfAXSGDAzG7sC-GKCUeD0JOFIiJR1I0bS_AwvUMASCkSoEniCCgrQrQ0VF7ikZSIAhWkEimMYphmJmAACpD0J0UAEDoxCiBAgUSGg5gAKycGUIBBHVdVAA&query=previewwindow%3Dtests%26file%3D%2F07-week%2FsubWeeks%2Fvanilla.js\",\n  \"date-fns/08-month/addMonths\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADADgLQFsD2A7AFwAsB6AQwBMKBZfYuEisgmDMPOAOgCsFkQAxnRiEkIEiQAERAgQAOcRBKYs2HTjgBOAcxIA3AEycAjAGZOKRjgENKNOkTgAdPEI4FJwSXdqFHkgF9JAF5JTRgARwBXCHCACgByFVZ2OASAShcXCUkAQSpJAFZJXD84SQIcSWNJAGUYORYsACMYTUkDFGMAFkQXXAoo2E4YAA85LQJy0J8HODi8GAB3SQARZhg4zp6AGkk0PeN0vcLMvBzggD46qLxJADEYZskujq7ilBRET--UFxAdiAIHAAEIQPBkTQATyQYDIUDgMACgPQ2Ac5CovnoGPsZU4cDkMAEPD4oDcLFEiEE-DgHjGhIELAoIUkixW6xYW3eh0OZxcblpkmSqRZ4WisU2CU4jA2ajSZwFHjkUDI4NFkRi8Sl-jIeGgKoyWUI8AIiVmZQSezi6RC12ALkkknpRNNwo46U4lQAotF4XFnYyYBQzo6A6blaq8B7vb6oHE3XAzgEzgCgaDwZCYYg4QikSjMKViDisY4dXqoCqSUgycJKdT3N5MXMWfGNnssDarp4HUKNviYAQS62WJxtAOhzaANQlENhAdRTR3ZIuAJGnL5ZnFQv-SrVOoNJqtdrbXr9HCDYb0ybTRu4-gLZZrDZc3b7XknM4Xa61W4PJ4vGptg-L4fk-f5AWBMEIWhWF4URZEQE4ORwlkCA2k0ARq3rCkCDEe07kkJwQERLAICIxBJBzREdh7Ii4HBbRYAARSiHAWHIipNCiGAaIIojIU0HAlgABUhERnCQQiQDIPQcAgCgiN4x0iOiNiYGEwSFA4ojkPgNo9BgIiV3-BC5DIAQAGsyDHEl8Cw8kRFw_gISwGAxGSOVizmVMKAaERfNcNDSRADzUjEIwDCMYxUwAAWaMhWigEguMICBXLEAB2ExCk4boQACAqCqAA&query=previewwindow%3Dtests%26file%3D%2F08-month%2FaddMonths%2Fvanilla.js\",\n  \"date-fns/08-month/getMonth\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADADgLQFsD2A7AFwAsB6AcxgIFl9iSATAQwJgzDzgDoArBZEAMa0YhJCBIkABEQIEADnEQSmLNh044ATmRIA3AEycAjAGZOKBjgFxylGoSIAdPEI4FJwSRWq0ikgL6SALySmjAAjgCuEGEAFADkKqzscPEAlM7OEpIA6kQQAn64DpIQcJL6AJySAGIwAEaakYyaAJ4VKEb6APzOuPSRsJwwAB5yWgTlId72xLF4MADukgAizDCx-p36ADSSRntVaRl42UEAfPvOIDsgZQBCEHgtrUhgjFBwMP636Ni-th8DkBsyInDgchgAh4fFArhYokQgnwcHco0hAhY9GCVzwzlcqMkSRSOLCURiG3inAY6zUqROBPccigjCepIi0TiVL0jDw0BZ6UyhHgBASM188T2sTSwUuwGckkk6KhouJHDSnAIOAAolEPrFlZiYPQTorDaLmay8BqtbrmlBYmq4Cd_Ccbnc4I9nm03h8vj8QH9inRxcDdLz-YwYUg4cJEci3F47L4cUlZUT1pxQ3MTlkpHkCkUU2UKtU6o1mm0Ol1enh-oMYMMxhMpkmgXMFss1ixNts9gdS8c8-mjNdbg8ni9fZ9vrdOHIwrIIDBNJoBDGEwiCGJ5XhFY4QF8sBAD4hJO8ZzsFZID3AnmRYABFSI4FinyQEJowK97m8gFqaDgiwAAotCIcDvgejC6DgED0AeP77iAUSvjAwGAQokEgAu8ArroMAHs4_jXAGciMAIADWjAUDC-AbvCIjbvwzxYDAYhJHSIK-O69AwJCeC8S4y6wiAHEpGIhj6IYRjugAAvUjD1DAUAkE0hAQKxYgAOzGAArJwAAsID-CZJlAA&query=previewwindow%3Dtests%26file%3D%2F08-month%2FgetMonth%2Fvanilla.js\",\n  \"date-fns/08-month/isFirstDayOfMonth\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADADgLQFsD2A7AFwAsB6COAMQgCc4CARAQwE8B5MAWX2JIBNGCMDGDxwAdACsEyEAGNuMQkhAkSAAiIECABziJV_QcNFic1AOYkAbgCYxARgDMYlHxyy4ZSjTpM2nbiIAHTx5UQI1YDVyKloGFnYuQiI1AF81AF41ahgARwBXGhgACgByQyEROFKAShCQ1TUASTg1ezUAZRhtQSwAIxhqNRsUewAWNWIYNUg4tX5mNRwwNUY1XGSAfhDcXnzYMRgAD20zAlasmJ94_yTiYrwYAHc1JkFikfGAGjU0H_sanU8I0MgA-SbUfIwEIgL4gcgAIQgeEY1GYSDAjCgcBgqTh6GwgS8sV8CQCyWJ1z8iUCYjg2hgskk0lAYUESkQcnwdDUxwZskEvEyEKh9VC3IiFSqwpyBSKZTEfAElVEtRCYR52igjGRMryhRyCusjDw0G1arwIUEdDKVzi1PJxFKP2KNUy4OAITUvJOjIIxSlohqYgIOAAogUscU-X6YLwgd6YwLilqdXhg6GI_ko4G4EDUkDYfC4EiUWiMVicXiQASNjw7aTbkSrCazYxmUhWQoOVzwtFvPayXcUlkKu75sqxOYYPF3m6Mgu2mLGi02p1ur0BkNPhMpjNrhPFstVutAts8Lt9jBDiczhd-ySbjTkg9nq9lR9RmMfn82oCGuoYIitCeBFoiyKouiiCYtiuJwmI2g5FoECDNQsidr27IEMonp4N6QQgDiWAQARiAzJWMBfF6agEXAyLmLAACK-Q4IIpHAVReE0SAqLUDgTwAAqooocDsQRjBWDgEC8ARnH4SABSsTAAl8boYkgIh8CDFY0IgCEqQwtW2iMLIADWjDTsy-AYWyijYTIKJYDAygVMYngNk-jpEEWvDdIovmhChLIgK5VTKHYNh2PYRYAAJ9IwAxQCQkKEBATnKAA7A4ACsYhjCAqSFYVQA&query=previewwindow%3Dtests%26file%3D%2F08-month%2FisFirstDayOfMonth%2Fvanilla.js\",\n  \"date-fns/08-month/isLastDayOfMonth\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADADgLQFsD2A7AFwAsB6COAGQEM4CARKgTwHkwBZfYkgEyoJgxg8cAHQArBMhABjTjEJIQJEgAIiBAgAc4iZb36DhInACcA5iQBuAJhEBGAMwiUPHNLhlKNek1YdCRAA6eLLCBCrAKuTUtAws7JxEKgC-KgC8KiYwAI4ArhBZABQA5PoCQnDFAJTBwcoqAJJwKtZoKgBiMABGJrlUJowtKHYALCrEMCpQ3iq8gzhgKlQquAEA_MG43LmwIjAAHpqmBM0Z0d5xfomFeDAA7ioM_IXWwyMANCp2n61VNXj1NIAPnGvRgwRA7xA5AAQhA8P1GEgwFQoHAYMkoehsIlPDEfPF_FxzrFfAkAiI4JoYNJxJJQKF-ApEDJ8LQVAdqdJ-Nx0qDcuC8MFQuyyhU-Vk8gUYCURDw-OVhNVhWzwpppvCJTl8kVinLLFQ8NBpsqhYR4AQSiSCVcAsVPoUqukQcBgioOYcaZaxcIqiICDgAKJ5VGFTlemDcf7u8Pcwrqqjwv0B4N9KCFH1wf7Jf6Q6FwOEIgbI1HozEgbGrYleUmE3EGo1QaZ0pAMuTM1lhKI1m3k4h8srOiJulQi8JlADCUHwkwytweTxlZREZhgBAAKhAsDK_iPJ9PbpS14uMwqV8eFY6VABqL7RzJr3ImPCzM-rghEohXtI_1_8KczueH7XE6GBfMEyS1ACqhNC0bSdD0fQDEMozjEQkzTKKTAqAsSwrIkGx4FsOwwHshzHKc3b4pcfZfvOjyXq8oyfN8cG7tBQ4EGCEJQrC8KIiWaIYlCIiaFkGgQDAJgmNIradkyBCKK6L4qIEIDolgEBqYgKgokJ7wjmpcDwmYsAAIq5Dg_DafyMAGSpan9CYOB3AACv08hwDZjmWDgEDcGp9numpeRWTArnOdo3kgGJ8BSZY4IgBBELlpoVDSAA1lQq50vgcmMvIilSAi26KGUhgeNaNGfnm3AwNSeB1SEkn0iA5UVIotjWLYdh5gAAl0VBdDAUAkL0hBbjAigAOz2AArCIIwgMkK0rUAA&query=previewwindow%3Dtests%26file%3D%2F08-month%2FisLastDayOfMonth%2Fvanilla.js\",\n  \"date-fns/08-month/isSameMonth\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADADgLQFsD2A7AFwAsB6COAZQEMsYBZfYkgEyoJgzDzgDoArBMhABjRjEJIQJEgAIiBAgAc4iaa3aduPHACcA5iQBuAJh4BGAMw8ULHMLhlKNeoyIAdPKO4EZwGeWpaBkIiGQBfGQBeGR0YAEcAVwhYgAoAcnUOLjg0gEoPD2kZAEFYmWMZChhFdiwAIxgdcpQzABYZKjxmcoBWSurahqbjFvaIPBliGBk4ZxlcEIB-D1xmBNgeGAAPRV0COCj_JyDXFLwYAHcZABE2GBSRtoAaGTQX41yX86vb9gfRl5vXq5fJ4IqRAB8kx0CRgHhATxA5AAQuMqDoAJ5IMBUKBwGBhRHobCuRyBFwhMnOYLEHhwRQwYT8QSgLzsCSIET4OA-bYM4TsbrRAgwuF4DxeHkyTLZQ6xRLJe5pHgsO6aHKgyU-RRQKjjOXxJKpZVGTrQXV5AqEeAEdIBamuNIvFK5KJQ4AeGQyPmM20y7i5HgEHAAUUSuJSPoFMGYoK9UdtOr1eEDwbDCQj_rgoLCoIRSLgqLw6KxiBxeIJRMwCyY9pOlMMZqguuZSFZYg5XO8R3JNNC0RSmWKL0yyNdkM90ruxR4ehgBAAmjB0S6opFoqPZ_OlyvXQAyPdT9gzucEPur9cbu7Irdn06gwqyUrTCpVGoweqNZptDpdXr9d9P2GUZ_AmKYZjmGsiGWPBVnWGBNh2PYDmiOsKWIM5LhuO5_meV53k-GRvmwv5HlaQF3h6EFHzdaFYXhREUTRTFsVxfFCRAHhFFiBQIEaHRhDbLt2QISQPQmGQ3BAfEsAgKTEBkct8SeScpLgcY9FgABFBIcHYeS6JgFSJKk9EdBwC4AAV0XEOADNMwwcAgZgpOMr0pMSPSYEs8zlHskBuPgRpDDhEAPDCeEOMUKhhAAayoOdmXwIS2XEUShGLWhJEydUqXrYh82YapxCKzw-JZEAcuySRTGMUwzHzAABOoqAaKASBhQgICyzkAHZzB6HhWhAMJRtGoA&query=previewwindow%3Dtests%26file%3D%2F08-month%2FisSameMonth%2Fvanilla.js\",\n  \"date-fns/08-month/isThisMonth\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADADgLQFsD2A7AFwAsB6COAFSPIFl9iSATAQwJgzDzgDoArBZCADG9GISQgSJAARECBAA5xEUlmw5duOAE4BzEgDcATNwCMAZm4omOIXDKVqcOoSIAdPCK4FpwaeSpaeiJpAF9pAF5pbRgARwBXCBiACgByNXZOOFSASg8PKWkASTBpAhwWAE9_OGkjAFZpAGUYBTYsACMYbTqUUwAWABoa6VNGlraYTu7egf88MqdpXFcAfg9cRnjYbhgADwUdAlqogKcXYmS8GAB3aQARVhhkoz6h6TRhsZy8vEKIgB8ZW08RgHhAgxA5AAQhA8MxtJUkGBmFA4DBQpD0Nhgg5As5cWcgq5uHAFDAhHwBKAvGxxIhhPg4D59uShGxGJFgaD8p4mT4MlkuTEEklnqluEwnhpsr8vMzpAooMw4cK4okUhLDMw8NBlbleWxmWkiQTXKlhskcpEgcAPNJpKyKQRkoKuDluOUAKIJVHJJ3smCMX4OgMupUqvAe72-qCup5ZX6hX4QqFwWHwxHI1HozEgbErBimi6kAw6vXMKlIGmiemM7w1fElrkZG2-e3SeU-PA4O5Ra53R5sK0dmIEeLaBYZbi6GAEACaMARVsiEX7vZnc8Xy-tADJd9Jp7OCCWV2v1zdNyfgiO8KFeYUSmUKsxquQ6uNWu0uj1XgNhu-YzNF-Uw_rM_TzIs76FkQ6x4Js2wwLsBxHCcjbnDeA4PE8LxvMMnyjPUPwFDIgLcmCeCpjCcIIkiiAomiGKQtwChjgQEDdNoQjVvWdIEBIdoLNIbggOiWAQCJiDSAx6KDB2IlwHCuiwAAivEOBsJJ5FyUJIkItovYAAoImIcBaXpBg4BAjAiTpDoiQkGkwIZBlKOZICsfA3QGGCIAePelF5gozBCAA1sws5UvgPG0mI_GCPCWAwBIGQyniGGuKmjCtGI2WeBx1IgKlWQSCYRgmKYqYAAIdMwXRQCQIKEBASUSAA7GY9TcP0IChH1fVAA&query=previewwindow%3Dtests%26file%3D%2F08-month%2FisThisMonth%2Fvanilla.js\",\n  \"date-fns/08-month/setMonth\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADADgLQFsD2A7AFwAsB6OGAgWX2JIBMBDAmDMPOAOgCsFkQBjGjEJIQJEgAIiBAgAc4icY2at2HHACcA5iQBuAJg4BGAMwcU9HPzhkK1QkQA6eQewITgE8lRpEJAXwkAXgkNGABHAFcIMIAKAHJlFjY4eIBKZ2dxCQBlCgkAMRgAIw1Ihg0ATwkCHAkjXJhZZiximA0JfRQjABZEZ1w6SNgOGAAPWU0COGCvO19YvBgAdwkAESYYWK7egBoJNH2jNKOMvGyggD5cpkKSiW7O7p6HlEQUN4_nEF2QCDgAEIQPAVSpIMAMKDkfy_dDYXy2HwORH2YgcOCyGD8bi8UCuZgiRACfBwdzjTH8Zh0WZLVYbZjbZ5HU6ZFwk9xJFKzMJRGJbeIceibVSpM6uUkSWRQBjA7kRaJxAV6Bh4aDS9Ks5ikhLeVFEeL7WJpYLXYDOCQSclYgixTnsNIcWoAUSikNiVspMDoZwtHptUpleAdztdUFtmxSZ38Zx-f0BwNB4Mh0NhmFwyN1CN0KrVDBxSDxQkJxLccyRxFm4eY-ywxquHnNEiS6PmDlitcbYQIkQ0eCbm2c_lZ2Ty7iKpXKVRqdQaeWaMFa7SevX6eEGwxgowmUxmIUzbdp602jL2B1OLPOknrOVu44eDR2Lw-70-KG-v3-QJBVSTUJgMJADhZC7AgIHaDR-ALEsCQIUQzT7CRHBAcgsAgJDEAkCE_12RskLgYEtFgABFSIcGYdCajKGAcIQpCKg0HBlgABQqYQ4AoujdBwCA6CQmiLSQqIyJgJiGPkDiQGA-B2l0GAkMHb4ANkBh-AAawYLRNx4fAoPxYRYL4EEsBgUQkhFFFfFjOgmmEayXDA3EQDMlJREMfRDCMWMAAFigYNooBIMpCAgYzRAAdmMABWDgehAfx4vioA&query=previewwindow%3Dtests%26file%3D%2F08-month%2FsetMonth%2Fvanilla.js\",\n  \"date-fns/08-month/subMonths\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADADgLQFsD2A7AFwAsB6OAVwCMBZfYuEgEwEMCYMw84A6AKwWQgAxnRiEkIEiQAERAgQAOcRFJZsOXbjgBOAcxIA3AEzcAjAGZuKJjiEMKNOkTgAdPCK4FpwaQ9qFnaQBfaQBeaW0YAEdyCEiACgByNXZOOESASjc3KWkAZSoCbWYhLwBWaVwAuGkwbRwsaVNpADEYSm1yZm0AT2kjFFMyxDdcRnJYbhgADwUdAhrwvyc4eLwYAHdpABFWGHiBoYAaJpPTDJOyrLxc0IA-aX98mAVpQf7BgBY3lEQUX_-bhARxAEDgACEIHhuj0kGBmFA4DAgiD0NgnGQqP56JjHNVuHAFDAhHwBKAPGxxIhhPg4F4ZkTSjBGGFpOstrs2Acvic0Gdrm4PHTpCk0qzIjE4vtEtwmHsNOlrkKvAooMwoeLorEEjLDMw8NA1ZlsoR4AQkstqokTvEMmEHsA3NJpAziebRVwMtwCDgAKIxBHxV1MxjXZ3B82q9V4L0-_1dKDxD1wa5Ba7A0EQqEwuEIpEokBoqrEXHY5x6g1QNWkpDk0RUmmeXxYlaspN7E5YO33bxOkV7AkwAhl9tsbi6Icju0YSphiJD8jaPD9thuIIm3IFShFErlSqtuoNJqtdqdGEfIYjPBjCYwKazeaLZt4-hrTY7Pbc46nJoXaRXHIZB7J48heN5mkOb5_j-AEUCBEEwUhaFelzRFkRBbgFEieQIBgbRtCEWtG0pAgJEdZdpBcEAkSwCAqMQWo8xgI4-youAoV0WAAEVyBwVckGkIpyGY1iQG6eoNgABW6MRXAEqjmAMHAIEYKiWIoqiYj4mBJPqJR6MokAsPgPCDBgKi1yBAsFBKABrZgJ1JfAiIpMRSMEaEsBgCQUgVUsVgzRgXjEIL3FwskQF8tIJBMIwTFMDMAAFKGYSgYCgEhOkICAvIkAB2Mwym4T4QCCMqyqAA&query=previewwindow%3Dtests%26file%3D%2F08-month%2FsubMonths%2Fvanilla.js\",\n  \"date-fns/09-year/addYears\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADATgLQE8YEMBOA9LgCYkCae-chJuALjBmAHZwB0AVgsiAMYB7Fo2FIQhQgAIAFvXoAHOIgl1GzNuwH4A5oQBuAJnYBGAMzsUtAXxqkKVOAB0WgtvUnBJdygTiSAvpIAvJL4MACOAK4QYQAUAOSqTKxw8QCUzs4SkgCCZJIArJI4vpL0ApLGkgDKMPKMALYARjD4kgYoxgAsiM4NAiSRsOwwAB7yWvR-Id4OsSwwAO6SACIMMLEd3QA0kgAcu8ZpuwUZLNlBAHw1kSw1dZKd7Z1ojyiIKO-fziDbIBBwABCEBYBCwSDAuCgcBg_j-6GwVGIZB81GR9l87Dg8hgfC4PFArhE9DErjg7jGOL4jBIwUkC2Wa0YmxeuwOlTOzjJ7iSKTpYSiMQ28XYtHW6lSZ25knkUFwIP5EWicRF-lwLGgcvSmWE8HoCVmvniu1iaWC12AzkkkkpuP1vLYaXY5QAolEobFbdSYCQztavfrZfKWE7Xe6oLEHXAzv4zr9_kCQWCIVCYXCQAiSkRDWi9OrNbh8UhCUJiaShOSvCiHHTI-tdlm4AAVAR5X3mjxWyRJLEwegAMSGUFRdcY7G0fcHUGHVFNkgA1MUHC2237Qn3Ivg7klnP4ddk24Ul6VypV7vUYM1Ws9ur0WP1BsNKZNplWMdR5ktVusWTt9odjkKM4LmuapbnPR4qi2V5Pg-L4UB-P4AWBUF8HBRBIWhWE_nYeQwjkCBWnwPhi34UsYFERAQEtO5JEcEAYQaCB6MQSRMJhbYu3ouAQW0WAAEVIgERgWLKfBIhgTjaPogh8AERYAAUCAopwkDokBcD0AQIBIeipOteiomEmAFLkxRRPovD4FaPQYHo3cfnTeRcD4ABrXAJ3xIRSKJCiSV4UEGhgMQkgldFUQQP4SDqCjopcQiCRAUKUjEIwDCMYx4wAASaXAWigQhxOECAgrEAB2EwCnYLoQH8Oq6qAA&query=previewwindow%3Dtests%26file%3D%2F09-year%2FaddYears%2Fvanilla.js\",\n  \"date-fns/09-year/differenceInCalendarYears\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADATgLQE8YEMBOA9ACYRhgz4wB2AxjAJLUDCus1xBAmnvnCbgAuMDGGpwAdACsEyELQD21YcqQhChAAQALQYIAOcRBs7DR4iQvwBzQgDcATBICMAZgkoSC2v1LlKNPRMrOyc-DwEcAA6dEpwgprAmn4UVHSMLGw0YRF8mgC-mgC8mlQAjgCuEFQAFADkpiJicHUAlDExGpoAEgoA7poAtrjUWJq0WRwEmjiRmgQwmgBGMIJ9MDSars6aACIw9IMr-JoOKG7zHJrOOwBiMEv4FQRjZ84ArAD8MYMKxBWwCQwAAe-isgjgxWSZFSgQyIWy3F4cBqMU0mmoMAGuyEMBqb3eABprsSbq1CWiMVi9rj8edXKTnMTtu1qKyukUAHynGIgQkgCBwABCEGoLyQYDYcBg-X56GwvBIMIC6WCkxyyKV_jSQUyoSRkQkcH0B2kslAimUNEEakt8U0IJNtGExChDg6sXECUazSh5SqtTqEgEZmabRidoS-iguFFfpglWqeKD9hG0Bj4eoMWE8XqKRVuoRU3CyLqxJqrWK3OAlMdB0ENR94laEkECgAopU2DU686YMRWejew3o7G2a2O12oI3cc1WflWXyBcLReLEJKoNLZSB5bMiPmdfD1Qa-KnqOncGakBalCobYh5HFvcrD2r9SW5iUZ8IAILExpCpWXKUgAskI2gSLgSwoo0P4SNYqy3ACUC5BWmgYMkuJCvBiHIahrSsp0Wi9AMwyjOMx4nHukILMsqzrJs2x7AcMBHJQpz0pcro3Jo9yPM8-CvOcXw_H8AIwECoLgpCJQHnCb6Ih-fCotQ6KYtitIEqSjLkpS6k0sIdJuIyzLOKy7JaFyPLUEugoimKgkSlKMr8hI-hUHoECUPgtDXo-VqqA-NaqZoUQgNKgwQGFiCaBu0oUiFYVwKK1iwAAihUCjCNFmiCE8MAJeiYUEPg_QAAoLOIOXFXYCgQMQYWFaFICVFlMBlaVhjVSA7nwJQdgwGFMT5Ly276LgtAANa4AhZpKH5lp3n5YqDDAaiNOYvgvvJeqKbkCD8sQMAmhwgReeaIAbc0ahOA4TjOEuAACSxQTAUCEE8ygQKtagAOwuO8EgACwgPkYNg0AA&query=previewwindow%3Dtests%26file%3D%2F09-year%2FdifferenceInCalendarYears%2Fvanilla.js\",\n  \"date-fns/09-year/differenceInYears\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADATgLQE8YEMBOA9ACYRhgz4wB2AxjAJLUCae-cJuALjBmNXAB0AKwTIQtAPbUeMpCEKEABAAsuXAA5xEi4t178hk_AHNCANwBMggIwBmQShKTaHUuUo16TVgTgAdOmk4LiVgJXcKKjpGFjY4JQBfJQBeJSoARwBXCCoACgByPR4-AQKASkDAxSUACUkAdyUAW1xqLCUwLKgoJRw_JQIYJQAjGC4GmBolOxslABEYemax_CVLFHtB6mIlGzmAMRgR_CyCDo2bAFYAfkDmyWJumEEYAA8NYy4EtMjPGJ88TygSUSmoMCa830eUuVwANHsEftynCQWCIQtoZc7EibAjZpVqISaikAHx7QIgOEgCBwABCEGo5yQYFwUDgMES1PQ2DYJDIUS8sV87H5Hmi3jifkEcA0SxEYlAUhkNC48mVISU7zltB4uzSNiqQQEoWKMEMqXSMGyuRghUEnBKhgqgQ1oQ0UFwjMtmRy-QKDvMbWgnpd1ECPBChT-EuF8QKCLy5VS5OAaO1Sy4eTNhnKgi4kgAotk2XkM7qYMRCaDy1mPV6ifmiyWoNn9LnAolCVSafTGczEKz2ZzuZh-kQY0LAX4LMGergFUgldJZGrEBJgqFmIWAIIAJQA-gwAHIHgCyAGVLTYULelAAqJQANhQD-fr8flgALG-7E-rkaboRAK_ySiKPxKG2PA7giZp0smZJome3AqIIYBQJIxh5FBMA7koGARPo8FKMo277kep6XoS1TKPUTStO0nTdL044JEMozjJM0yzAsSwwCslDrJsdjbLs-xKEcJxnPgFybLc9yPM8rwfF8EGTgCUrsMC1CguCkJYnJSK4iiaJ6ZiPAwsJuL4jYhLEsoZIUtQPa0gyTIySybIclyICCBoVDqBAlD4LQS4biqcjrmmOlKP4IAcs0EBxYgnReTAqIxXFcCMiYsAAIpZJIPDJUoXCnOlaJxQQ-CNAACkMAglVV5iSBAxBxRloJxdkRUwLVNVaE1ID-fAlDmDAcWdpSPkaLgtAANa4CYLyiNIYXKquYVMs0MDyGapRuCBsbTuwPbEDAco7F4QWKiA-2GPI1iWNYNg9gAAiMuBjFAhCnDIEA7fIADsthXIIX4gIkUNQ0AA&query=previewwindow%3Dtests%26file%3D%2F09-year%2FdifferenceInYears%2Fvanilla.js\",\n  \"date-fns/09-year/getYear\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADATgLQE8YEMBOA9AOYwAuAmnkQCa5kwZgB2cAdAFYLIgDGA9swZCkIQoQAEACzJkADnETi6DJqzb98xQgDcATGwCMAZjYpCNfrzglyVAgB1mA1mQnAJpStQkBfCQC8EvgwAI4ArhAhABQA5CqMLHCxAJROTuISAOpSELxSEjgEEhBwEnoSAFLhUFjlKIYALAD8TgC2_DQ1MGwwAB5ymmRlQV72-NHMMADuEgAi9DDReg2NADQSAGwbeilpzJkBAHz1TU4gayClAEIQzARYSGC4UHAwvpfo2NS23gS_4zYcDkMF4nG4oBcwjIohccDc_RBvAYNECp0a6WcgnhEgSSTRIQiUSWsTYFkWamS-zhbjkUFwdwJYUiMVJulwzGg9NSmIY8LiY2osQ20RSgROwCcEgkiNBZGieNYKTYZH4AFEIi9orLkTAaPtpTr5XSGcxlaqNeEtYq4PtfPsLlc4Ld7vhHohnq93p9MEUiIL_joOVzcOCkJDBNDYdi3AH8GiEuLcYs2F4AGI1KDjUWYzI5PIFP0lMoVaq1dGtZgdLqwXoDIYjTx2aiTGbzRbLVYbbblPYZSTHdHnS43O4PJ4vN4fEBsOQhWQQGD4fC8cN8SMwESIECS5jShwgN5tCAHxAST1vNZSiQHuB3YiwACK4X4DFPEjI-HCMCve5vIAIfB-GmAAFAhNzgd8D1wHR-AgGgD1_fcQAiV8YBAoCFCgkA53gJcdBgA8nF8c5pzkXBeAAa1wUhwUENcoU3GEeHuNoYFEBJKQBahHRoGAQWYPjnEXCEQE4pJRAMPQDEMR0AAEACNcAUmAoEIL8hAgNjRAAdiMABWNhGhAXxTNMoA&query=previewwindow%3Dtests%26file%3D%2F09-year%2FgetYear%2Fvanilla.js\",\n  \"date-fns/09-year/isLeapYear\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADATgLQE8YEMBOA9BHADJ4AOAmnkQCa4AuMGYAdnAHQBWCyIAYwD2bZqKQhChAAQALRowpxEUhs1YdOQ_AHNCANwBMnAIwBmTikJ0hAuMTKUaBADpthHRtODSS5XNS00gC-0gC80vgwAI4ArhBRABQA5Gos7HDJAJRublLSAJJw0ibSAMowFMwAtgBGMPjShigmhr5s0oyyMNKwAdI4BAD8bjAAHhTajFx9FOG-jgHO-IlsMADu0gAiTDCJza0ANNIAHMcmWTls-WEAfJ34sTC51zJFJeWVNfWNB2btnW6vUoA1oIzWEymXDYQkY_jmET8Tloqw2212-xaZmOZxKlzyMju0jAuCgcGebBAhxAJAAQhA2AQsEgSWSYMFqehsLQHPDlrzkQROHAKDABDw-KAPGJGBIPHAvONRQJmHR5sA3NJgQFEA8nodNdIYXDKLrWeSDWxgi95V40hl5lE4gk9slONZdhpMldbdIKFBcAzHTF4kk3QZcGxoAHsi9mAqUkilrRksdEllwvcNR1pEqxYxEvaOFlOIwhABROKkxJ5lUwOhXLW1gv-wNsEtlyuxatFuBXYJXKk0uD0xn4ZmIc3szmYQZEJOBAgRqNQAMSpBSkQyuUiBULPlBCJpTPeQ2-ufzNKcHQwRgAMViq-W6cNUUYsXwHQvAFISigUOEYQRABQyggQ0i_gALP-gHAdIuo_tIkGwdIKBuNabAEoUxSlBUVQwHUDRNC0bRBl0PSzGB-DgkqUKcJRiKLIuKxrJsOzMJiRynOc-KvCejCPBSWHvLhXwET8xHmAC5HanMc40ZC-DTJwxrwvMC7Pqx6IcX8OI8VcNz3FObhDnSDJMiypLkhyICcBQb6MBADT4AIG6CFuMDiIgIDZlqLggOS1QQP5ZpWTAlp-QFDI6LAACKsSws8SB6uFhr-QQ-BCOsAAKBCeXAIXSOl-hCBAdD-RFRUgHEiXZZlSiFf59nwA0-hJehJk2RQuACAA1rgN4SiIbnSp5sr8Iy1QwBIaRegKyYEEOdCVJ5y3uE5kogLNGQSMYhjGCYQ4AAK1Lg9RQIQjyiBAU0SAA7KYACsnCQSAwTve9QA&query=previewwindow%3Dtests%26file%3D%2F09-year%2FisLeapYear%2Fvanilla.js\",\n  \"date-fns/09-year/isSameYear\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADATgLQE8YEMBOA9BHAMq4C2MAmnkQCa4AuMGYAdnAHQBWCyIAMYB7dizFIQhQgAIAFkyYAHOImmMWbTl2H4A5oQBuAJi4BGAMxcUhesMFxiZSjToAddiM5MZwGSXIqWgIZAF8ZAF4ZfBgARwBXCBiACgByDVYOOFSASg8PaRkAQRiZYxlSGCUWCgAjGHwylDMAFhlcdnoygFYKqpr6xuNmtoh2GSY5GBk4FxkcAgB-DwphenjYLhgADyVdJjhI_2cgumT2GAB3GQARZhhk4daAGhkADlfjHNeL67uWR4jV4fHo5PLsQoRAB8E3w8RgHhAzxAJAAQmMCFgkGBcFA4DBQsj0Ng6E5Aq4CGSXMF8Fw4EoYIJePxQF5xExJF44D4dgzBCwulEmHCEewPFyfBkskcYgkkg9UlxbPctNlwRKZEooLgxjK4okUoqjB1oNrcvkxPAmGkAtS6KlXskcpEYcAPDIZLzGdapZwclwmMIAKIJXHJL38mD0cEeiPWrU69j-wMh-Jh31wcGhcFIlFwdHsTHY3H4wkgYkLIi206UwwmqDa5lIVmidmc0Tc47kmlHZIZIqvDKo53QmT9rh6GBMABiGygNKdkQiUSHE6ns4bC_BBVkJWm5Uq1RgdQaTVa7U6PT6R5PQxG_nGk2msyo8zoy3Yq3Wm15-0OUWrCl8HOK5bnuQEXneT5vhkX4wIBJ4WmBT5ujBHcXVheFEWRNEMXwLFEBxPECWRLglBiRQIAafBBGbIRWxgCREBAN1xhkNwQHxCgIA4xAZCI_FnnddjOLGPRYAARXiYQWF4zCYCEtiOIIfBhEuAAFAhGLgOTlMMYQIHoDjFI9DiEhkmB1NUlRdJAcj4AaQwERADxQkRMslFwQQAGtcEnZlRDotlGI5ARCyoSQMlVKka3wXN6CqRiEs8KiWRAKKskkUxjFMMxcwAAVqXB6igQg4TECAIuYgB2cxui4FoQFCZrmqAA&query=previewwindow%3Dtests%26file%3D%2F09-year%2FisSameYear%2Fvanilla.js\",\n  \"date-fns/09-year/isThisYear\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADATgLQE8YEMBOA9BHACoAWJAmnkQCa4AuMGYAdnAHQBWCyIAYwD2bZqKQhChAATlGjAA5xEUhs1YdOQ_AHNCANwBMnAIwBmTikJ0hAuMTKU4NAgB02wjo2nBpJCtS00gC-0gC80vgwAI4ArhBRABQA5Gos7HDJAJTu7lLSAJJg0oxCDFh-cNKGAKzSAMowCswAtgBGMPjVKCYALAA0ldXSAFKxUBWGPb1-bCVO0jgEAPzuLWXjMJwwAB4K2oxVEf5OLviJbDAA7tIAIkwwiVN9gwBsg4ZZOWz5YQB8JXwsRg7hA_RAJAAQhA2AQsEgwLgoHAYMFwehsLQHAFnFiToECJw4AoYAIeHxQJ4xIwJJ44N5diSBMw6OFAcDch4RPTpGkMmyonEEo9kpxrA8NJlvnTvAooLgYQKYvEkqKDLg2NB5dlOcx6Sl8biCMlBoksuEAcB3NJpIzSYxEnyOFlOKUAKJxJGJO3MmB0b42n0OuUKtgu92eqCOh4Zb7Bb5giFwaGw_DwxCI5Go9GYJZEQ1ndWaqDy8lISkiam07neAtBCJpACCFt5D0bnB0MEYADFxlAzmbwmEIpcbvdmGaO13eyWB981htYNs9gcjpUcQPR3cHmbvr8AYwgSC2ImoTC4QikSi0SBOAoovIIJ18AJy4JKzBxIgQFa5tJXCAKItBAAGINImYov01r_oBMI6LAACKsRCMwoHsjAUF_gBBD4EIVwAAoEJ-cBodh-hCBAdAAZhNoAXEKEwPhuFKKRID3vAnT6CCIDuMEoI3gouACAA1rgnbkiIb5Up-NL8LCLQwBIaSStipy0ImdBNJ-mkeE-FIgMpGQSMYhjGCYiYAAJtLgHRQIQQKiBACkSAA7KYNScL0IDBD5PlAA&query=previewwindow%3Dtests%26file%3D%2F09-year%2FisThisYear%2Fvanilla.js\",\n  \"date-fns/09-year/setYear\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADATgLQE8YEMBOA9HDAC4CaeRAJrqTBmAHZwB0AVgsiAMYD2TeoKQhChAAQALUqQAOcRGNr1GLVn3wBzQgDcATKwCMAZlYpC1PjzjEylAgB0m_FqXHBxJClXEBfcQC84vgwAI4ArhAhABQA5MoMzHCxAJROTmLiAMpk4jgE4nooJuKkfOKG2TCy9AC2AEYw-IXFACyITrV81OGwrDAAHrIapHCBnnZU0UwwAO7iACJ0MNFFhq0ANOIAHFuGKVtrxmlMmQEAfNnhTFWy4sUtJSgoiM-vKE4gGyAQcABCECYBCwSDAuCgJF833Q2Cotm8BHh9nwrDgshgPA4XFALiEpBELjgbkG6J49Go4xm8yW9FWxWMW12FROTkJbgSSXGIQiURWsVYFmWqmSJzZ4lkUFwgK5YUiMX5ulwTGgktS6UE8FIcS8yNiW2iKUCl2ATnE4hJGK1HJYKVYZQAohFwdELWSYNQTmbXVqJVKmLaHU6oNFrXATr4Tl8fv9AcDQeDIdDMPkiDq4TolSrcFikDiBHiCQIiRMEc0giHllsU4aLu5TeIEqiyAAxXpQZHRav1kKkcL4G4JJy-dWZHJuFOPYylcqVHI1GANJqPdqdbq9GD9IYjMZBNMEaZzRbLOnrRl7A6Tk5nS5Za63e6VI73F5vZ6fb6_AFA_AgxBgiEwFCICsLIPakBATT4Dwua8PmMDCIgIAmjc4gOCAJC1BAaGIOI_4kBs9ZoXAgKaLAACK4R8PQ2GlPg4QwARKFoQQ-B8LMAAKBDwXANHMTofAQNQaGMWaaERFRMDsax8i8SAoHwE0OgwGhQ6fEBsi4DwADWuCaBunACDBuLwfi3BArUMAiAkwpIlQUbUNU8EOc4EHYiA1lJCIBh6AYhhRgAAvUuCNFAhB0YIEAWSIADsRgAKysK0IC-ClKVAA&query=previewwindow%3Dtests%26file%3D%2F09-year%2FsetYear%2Fvanilla.js\",\n  \"lodash/array/chunk\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegMYAWArgHYDWOUA9gCYpwEB0AVgsiHlSQC4w9IgcOAAQFu3AA5xEQ6nQaNOAWxw0qeODgDEhUmQA6JCEolU03YcGG7ywgL7CwaKkuEByOfQJvDhmAA9TczhGEioAZQgALxhhAF5rYnIACgBtNxQ3ABp3ACNs9zwCtxpimGKwYoBzNwBdAEpDIXiAPmFU9MzanPT87va3Iv700uG3crHKsZra2t8SAKDuELhjCVh4xL00jOL8nMHi0oPyg8qDmZyAZkaSZri2jt2D_cK6npKyiveBmbmSPyBMzLRRJMiRGIALRgzk2NjIO0yL2KRQOx3cp3c53cl2EAAZbvdHv9AUsQvCITAAHIwKoobgQABusQS8MRexRRy-Z2qPwAtABGQkiB7tf4gLIgCBwABCEBI6CwSDAKCgcBgdkl6EwuHh-DBjDgEhgeBYbFAnB4fG4AktcAsixNvBom2AhmEwjClMQ7U6P16_sOY1GHwmHymHz-WXdwlWJlgPqeSLynOD3KxgajMYp0Rg0Ocie62bBlJpdIZzML0ZIdnmdosngYmzQMAAjkQIC3km5GJRaF43Ld68J1ih5c22x2uz2cIyUEYoFBMrdDLx7d34QVkvVWpYY468Nxko2CPVGNwqABRduq5IH523D335Kj-Vni_Xoi3k-3Oy3CVSrK8qKsqqrqpqIDatg-p6LO87QEuZpIBaXC8PwiAcFw9pbLYCTJNqOQ5jEmwCoRKCECyYo7qKbokB6w7cCYmypIwrHav8HoQGAwjJERsQADwJASwgttwRBoHReDkQQMAxgA7gQ0CxMkjESIwsAkFU3CntY0kwIwEhEAwKkmIa6wQHgMDJHihElrm9SPiJMBiRJukUYYtYAgsQLBKEES5nCYLssiByou46LjN8Fx1MKu5JoGfQfEMHwhgMYYDBGvx1CS3lkoaawbKyQV-iFbxoumbjYm4uI3E0IqPCVKahYGEWYpVmbZfMizAuSdlQjCVCBdsjVuK8hzlScUU4j8BJ1XFOXdb5fFlvSTKUWyI1jWFnyTTy0X9IKsWiqk4qStKcoKmgSqICqaoapKBmiQyMJoHgyGYVa6EgLRHr6CA6pKBAf0-rd6rVr9_3ylUsAAIpEFQvDA8I3BoEQMDg8If3alQckAAroHwcBI1jjJUBANB_Rjf3tgjMC484UjEyAEgtuqaDMn9HmGCAEESORZAoFU-msFw72WmhNrsAqSgwAIJ4weQAE0DAxokMrJB4BA8DvSeAgACyMAKADsjAAEwCgBAACuQoLkMBQDgqM8MYssYSbAoAKyMHrPN2H7dhAA&query=previewwindow%3Dtests%26file%3D%2Farray%2Fchunk%2Fvanilla.js\",\n  \"lodash/array/compact\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegMYD2AtgA4p4AuOUBAJinABYB0AVgsiIQHYUy9IQOHAAJGFCiTiJhNek2aEiOWgTxwcAYiVlKAHW4RSBNBRHARO8mYC-IsGmIiA5HIaNnBg0ToBXWMwwAB4kJhRwIgC8lsS6FAAUANoADAA0IgCM6QBMALoAlAbCUQB8IolZInkGIKkgEHAAQhDc6FhIYChQcDA2deiYuFaU-LHWzHAkMHhsHKA8fAKIXATccGbBU5QwtFHlldXcBjzrIm5Me2gwAI6-EFfxzszUdO7OhdwnZiRQKC2XNzuDyeOAAbihDFBfu8vLx4AlnMMKM50vF8qVzAYRCJNtMEudGPlmBQCABRW5deK47a0D7Y6kJH5_bhEknk3yUgkfGwfWr1JotNodLo9PogAbYUakaxgiHQX6zJDzVaLCiCHy0fwwQIhMIRaIpdIHXLMSBQPhoeJBDEAQhtQQ-xUiZQqOVyNTqDWarTQ7UQnW6vTqzBIVwkEBgGDwSpWcKWIGAWJEehAPSIEBTiHsIpgqSTKbgLQA5rAAIq-Ah8TMiChoXy5_PijAEADuAAV0Pw4NWUyhQQQILQU3nuNiU7dKzA244pD2QKH4JHQTAUwYbDUxboANYoIva9irGMLfhqzitIgwQQEqVxPm0GBTbj3z4RuYgAmCAAszAyAHZmNkGR8gAAgARigoEwFAOB1rwRiXss_4ZAArMwn4gDYmGYUAA&query=previewwindow%3Dtests%26file%3D%2Farray%2Fcompact%2Fvanilla.js\",\n  \"lodash/array/concat\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegMYD2AdnigC45QEAmKcAFgHQBWCyIhRZMXSIOOAAT0yZAA5xEAqrQaNCAWxzUCeODgDEnUmQA6RCArEE0ZQcEHbyggL6CwaAgsEByGXXov9-hTQCusIwwAB7GpnCCALyWxDoAFADaAIwAugA0ggBMGQkAzOmCCQkALCkpAJT6AlEAfIVJGdmCuTmlKfogaSAQcABCEEToWEhgKFBwMDZd6Ji4VhTzjHBiMHgsbKCc3LyIHMRwZiEreNzUUfWNGS2Fbd4k-2buDOdoMACOfhCvcS6MlDQeFyVe5EA6CMRQFADF7vT7fX44ABuKAMUEhQLu3AOP3mLgycXKtXM-kEgiOqzIcSe9HKjDIBAAoh8xnFyScYNRgaS2ZSIVCiLT6Uy_CzqcCbMDOt0-gMhiMxhMpiAZth8LFyEiUdBIeskJtiNsyHxfNQAjAgqETGQItFkil5OrKU08gUim1gdVInVkpdmq0yh0uj1-oM0MNEKNxpMuowxK9RBAYBg8Hq9lweEbdsASYJdCAJgoIHnEPYFTA0jm83ABgBzWAART8BG4xcEZDQfnLleVGAIAHcAAroHhwVt5lCIggQah5itEUl5j7NmADxwSMcgOPwJOImB5_Q2DpKsQoPAAaxQNfNrGIqa2GdTgwUMD41LVJHIUuoMBWRG_JETDYQGpPhikYJIAHZGEyJIpQAAQAIxQBCYCgHAOy4QwX12KCkgAVkYYoQBsEiSKAA&query=previewwindow%3Dtests%26file%3D%2Farray%2Fconcat%2Fvanilla.js\",\n  \"lodash/array/difference\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegCYRhgxowB2AxjDlAPZ4pwAWAdAFYLIgW1kAu5PkhA4cAAiZ8-ABziJRdBsxY8AtvloU4OAMQEiJclQA6ZCKum00fMcDH7ipSjDEBfMWDS1VYgOSLGJl9TU1V6AFdYFhgAD0trODEAXntCRyMYAAoAbQAmABoxAEYAXULsgGZC3JKASlNRZIA-MWzS0xB8kAg4ACEIMnQsJDAUKDgYVy70TFwHQ2d8NIWqFjhpGAp2TlAefkFhPbgbWI2KATxk1vayUyObAOYr0gBHcIhSTN8WGnpA33qlF4xzE0igKAGzxgbw-WW-OAAbigzFBwQCQvtjl95k4qL5Cplas1bKYxGJTps-JlHkxaiw-LQAKJvMaZCnnGB4QFk9lUsEQsh0hnM8KsmmA1yAzrdPoDIYjMYTKYgGbYJYGXHUJEo8HbJC7XgCfiHYE2HEZK6ZGZFQozXJEpIta0sSBQARoTIxYkAQjtLAGFCg4Tw8E9tUBoQiUVOVj4iRS5ucOQKxTKrSqYhqgMajuuJQ6XR6_UGaGGiFG40mXRY0lIUggJDQFH13ENB0QIGApLExhAE1UEF7iA8ipg-W7vbgAwA5rAAIrhWgCIdiPhocJjicqjC0ADuAAV0OQ4CveygEbQIHhe-OyGTe28lzB915ZKeQLX4CQETBe6ZXB0yrSCgFAANYoNOMDbLwLZ7EaQhcIMqgwMINLqukzjSiGGxkCGlANjsIA0sIAAsLBFAA7CwuRFNKAACABGKAMTAUA4Ou_DmChHZUUUACsLAkSArgiSJQA&query=previewwindow%3Dtests%26file%3D%2Farray%2Fdifference%2Fvanilla.js\",\n  \"lodash/array/differenceBy\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegCYRhgxowB2AxjAEK5QD2eKcAFgHQBWCyIF9ZAF3ICkIHDgAELAQIAOcROIZNWbPgFt89CnBwBiAkRLkqtADpkI62fTQCJwCYeKlKNLBIC-EsGnrqJAHJlZhZAiwsYAA8bOzg2dEwsOAkAXidCFxN3AAoAbQAmNgBGABoJYrYCgF1ywrYAZnKGtgAWWokAWRQBdjAGWwBKC3E0gD4JPMqaiLJRgBUWGAkAAwB9Nlk_WRIBLBWJCCFMIWXWW16UMjw2SJiL-PoAIw4YCgEU9OdjN1p8xyiiAkBS85QBQOKXg6eXBFSh5UCUUCwzmklSExhQSRQJBnmqFhApRAEDg1AgZHQWCQYBQUDgME8RMS2HwmR-plw31cHLYcB2FE43FAfEEwlEIrg9mi_KEeDSDgsEgkzOSQKmVVqiokz1e7wUk1huM1ZE8swl9hCrHlpAAjgBXCCkHKBNg4S1hFHmiSyKAocnWmD2x0wZ2ugBuV2gvuRsyEkudXOytEC5Ryg3GCrISulbwEOXdgzYAnoAFF7bScjn3jA8CjszFczkfX6yIXi2W7RWCxZPCjCcTSeTKdTafTGSAVayjNz3DgI5YoL7BUhhfwhIJxfxJRlp0mPOkcokysqMAVykcSD0YDB0-jM0rCBIcnsdvQwIdjlflqkf0FJWhyQAc2Re8lQkL0tnoWR5QvE5ry1B9P1OGChACO8L3UPJINkfEsy8LVSAEO00CzI82EgKBjhyCgMwAQkSIp1BQWQclgr9C3JCgoDtPB4FYpDr2owZhJ7WZpQeBIMGwT4dyyX4sHyIpj2maEiiaCQWnacpul6ciBjQFFRjvdUZjIEZJEWZZ1k2bZdn2D9L2Q847BYK4bjuWIPjYHVcxkxN5P-CRAWBUEHCCiF4QNcK4TxBEkUMtEMUcRFAhxKECSJEkyQpNAqUQGk6QZIkbJgGQIBINAKBXXg1zFRAQGALUzBAel1AgZqgQK-lSialqgNgABFO16CEDqJAENA7RgHq8OaxJ6AAdwABXQcg4DGuaw3oCA8GamalWa-0RpgJbtnWpAJGarZ4BIMMYGa0SyBAcdZBQCgAGsUEAmBBX4aqRXXEQeApdQYFEd0pzkjl-14nZrhMcqhRAd1RFaEoAHYqmKfsAAEnhQJ4YCgHBJsEKwwfqzHigAVjaZ7PAZzwgA&query=previewwindow%3Dtests%26file%3D%2Farray%2FdifferenceBy%2Fvanilla.js\",\n  \"lodash/array/drop\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegCZoD2ADjlIXinABYB0AVgsiAMaEB2ALjF0iDjgAE1Tp2JxEA8pRq02AW3yEWcHAGICJADrsI84oTSdBwQZuKCAvoLBF5ggOTSq1Bzp0wAHgaNxacPWJYQQBeMyJiAAoAbQBGABpBACZEgGYAXQBKHQFQgD5BaJTBDPd2Lx9OPwB3CE5qADkAV3kAIxg0UPCSGITktPTEpOz2XJCC6NL2D29DKtpa-ua2joA1dAgULi7zXqGBxIBWEbGJ9LKKuZq66gAtDsIdiL3-ksHBAAYToXHCvuKpiB4iAIHAAEIQdjoLBIMAoKBwGCWYHoTC4cz4CL-YgwFgMJigNhcHicPhEuDGCq47h4LrAHSCQQBfSwRCFAGDBmCRaNFrtNBsyac9iMnnLfnrNCbLiC4Wim73IiC_4HHSWMrk4zOGhdNAwACOTQgesiDloZAoLgcI01giCKEhuoNRpNZpwADcttAoChrWVuBTTeYHIlIpl8iYuVSWJxItrqJlaJxCABRQ3wyLRmkjRlZyL2yGJ5NppoZ-MjSwjIEg8GQ6Gw-GI5EgVHYTEkD1eqA-_FIQkcbi8RCsDgU7oWMKRVGJEVhWLh36o_xQCAsGCRdgjGaVPzMoIwJ49OL7N7fCNFAYXWa-BY3cUdQ9RY-vDJDM-_IVXne3pZ8tYbLZjDCXZnw5I53zOL8rh_O4HkfF4wM-CC_hPQFgVBCEoTQGFEDhBEkWBWhiD1UQIA6NAWD7EdiSHEB6RFQQtBARF5AgJi2TwxF4i5JiAnYABzWAAEUmkIbh2METg0CaGBuIYpjUUIaoAAV0B4OAJIU91CAgPAmLkxkmMNMSYGUiINKQRiQGI-AOndGAmLVHQQGbYgUBYABrFB-JgfEOCoolB1JZgoXkGA-HjdtiGrPAYBxdhYvYFgyIJEB4z4AAWWhYgAdloJJYmrAABVoUHaKAcGkrg9HC4c8tiQ5aAylzLFaywgA&query=previewwindow%3Dtests%26file%3D%2Farray%2Fdrop%2Fvanilla.js\",\n  \"lodash/array/dropRight\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegCZoD2ADgEoQDmAFgC45SF4pxUB0AVgsiAMaEB2NGIKQgcOAAS0axOInEMmLVnwC2-Qjzg4AxARLlqNADr8Iq4oTQ0JwCfrKVaEgL4SwRVRIDki5lW9TUxgAD0trOFY4c2JYCQBeeyJHIwAKAG0ARgAaCQAmXIBmAF0ASlNxBIA-CSzcvOKg_lDwmkiAdwgaKgA5AFdVACMYNASkgycaDJz8ouL68v5K-Jqsxv5gsKs21k7u_qGRgDV0CBRBMYdDWmn6udyAVkXl1fXN1o6uqgAtEcJL5LXKZ1WYSEq5AAMz0kK1qMwKYPWIGyIAgcAAQhB-OgsEgwCgoHAYC4UehMLgrpN8IDJlFiDAeBwuKA-IJhDRRKy4DYWgyhHgxsBTBIJNELLBEHD6vNhRI9r0BsM0JK1tlZfKDkqTmgzoIVTL-CL5b8iCr4fdTC4mlybH4WGM0DAAI59CCO1LeVj0Rj-byLG0SWIoLEO52u92enAAN3O0CgKD9TSE3I9lKM3lyqVK1Vsst5PCmdqopVYNEIAFEXQTUvn-YsRbXUkGsSWy5W-tWi4sXItkaiMVicXiCUSSSAydhqRMjNHY1B40ykCyBEIRIheAJueMUs5EqkyblDYlMtnYWSolAIDwYKkIbkALSGgA-T4k59g_Ao3UW722kTFsQwAC043CCCIlNCOZgW8zRbBEuxfJqIzATuwLmoiCwVDCqyZDBLR_gh-yKscpznDYiRpqB6HghITxYVBeFwTsxp_ChQK3KCNFQvRsJgXMph9mimLYmguKIPihLEiirDEI6NA0BAIxoDwS4bmya4gEKhoSMYIBEqoEC6ZKElEmq2m6dEn6wAAin0hBCEZEg0GgfQwGZIq6WShDtAACugwhwI5nlRoQEB4Lp7k6SALr2TAPnJIFSBRbJ8AjFGMC6ZaAljsQKA8AA1igFAwEyAiqayq4ctw2KqDAohFlOqF9ngMD0vwLX8DwinMiARaiAALKwmQAOysHkmR9gAAoMKDDFAOAuYI5h1euo2ZA8rD9SALg7TtQA&query=previewwindow%3Dtests%26file%3D%2Farray%2FdropRight%2Fvanilla.js\",\n  \"lodash/array/fill\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngeklKHKAewBMU4ALAOgCsFkQBjYgOwBcYOkQccACSu3YAHOIj4lyVaiwC2OUsSZwcAYnxQAOqwhyRxNO37B-m_gF8zaYnP4ByKRUr2dOmAA8DRuNXSYsfgBeM2goAAoAbQBGABp-ACZ4gGYAXXj7FHsASh0-YIA-fkjM-wys8vtUt1ZPb3Zff2wAYTY4djQAVyZ2Q2DQgnCAQQxscOTs-ITc1nygosikxKnq1ncvQwbqEXR2CBQofs0ogBZ4gDZ4gA546IAGdIcAKjL-OP4JvIF54rPn1_sL1uDx0IFiIAgcAAQhBWOgsEgwAc4DALOCmrhNHgwtQ4CIYEw6AxQCwOFx2DxSe1-HUCZxSP1gDp-PwMYhiqVKpV0szWaMsK1WO0uj1DOzFlMVrFeTsjPsoOK_oCAUC3g9pawLDUqcYnFR-mgYABHToQQ3hezUIhkZw5HQ6_giKAoWEG42m82WnAANxQugIWRmOk47Qtmle4WyhRMvNpPXCeso2WovQAoiaDuE4_SZizs-EnS7WMm0xmIomZhYZmCIdDYfDEcjUej-diCD6_WEUESkCS2JxuIgQHVNo1-f0YpKPqlqMdSjM5gtOQ4KiuqjURz4_PzBcLur00P0RgFxsnjtMvtGJctEqt1vVfLK9gcJ39LvwbmqZ3PVe9PrNvgWJVVWVYFVhrSEYThNAEUQJEoBRNEQG2Q1hAgGAMCYXtmH7ckeCZVgWS0EAUTkCBiPZeCUQ1IiSNhABzWAAEVOmITgKP4DpOhgGj-GI_xiAAdwABXQLg4A4_jvWICBSGI3jiJNNiYGEmwxEkkARENFE0G9GBiJ0LVWBAJCdiYABrFB6JgIk2Gw0kBwpRg4TkGAeETNsoBrUgYHxVgfNYJh0OJEBEx4E5qGiAB2agEmiGsAAEACMUCSmBCC6Dg9DcocYuiABWagThMixSosIA&query=previewwindow%3Dtests%26file%3D%2Farray%2Ffill%2Fvanilla.js\",\n  \"lodash/array/findIndex\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngekgOwBMBJImADxygHtCU4ALAOgCsFkQBja_AFxj5IQOHAAIGvXgAc4iETTqMm3ALY5C1TnBwBiAiTLkAOvggqp1NL1HBR-0oQqiAvnbTUVogOQL6DLyYm3Phw1gCucDBocKIAvKIA2iaiNqIRUYjeAEbo-DBYXgA0oigA5jCZAMwAbMUonLwQAG4VorxoYTAuhcmp6WiZXmBoMIRFJeWZACwADHUNza1gKFCR3b22_YNSMFlZsHDjZa0AjPONLZntnev4ALqB-Cq0YbBMFBZWMfH2hgAU_TgxWocQAfKJqExjqJQfFZgBKEwiMGiE4mECFEAQOAAIQg-HQWCQy1WMGcmPQmFwv0clBpFCYcB2nFY7FAwX4gkQXB4oVEHxgDVGcVRj2CfN8jBFIwAjmEICM_l4mFRaH4vIj8OLrFIoCh8dKYHKFTAlSqmihTFA9RrHvxQkr6eRxn94SjgL0BQ0_pKGPCmLxqABROUrP5e_iETUpCN_XX6_D-wMhsJh32a5yajFY3H4wnElaRckgSnYPD4gy0nAWq161lIdk8Tm8ITatKRaIipL4FKbDuDHJoPIFOqTUQ1c6LK4dLrkjbtjLeYajI5j2aTy52Quzno9vr97w7PYHVenDeta47kwPfAmZ6EV4wd7kT68b4L6JMJ1_EGxcGQ6FYVEBEkTEP9RXwbNsTxAk0CJRASSLTEmCkEZJAgKI0E4BseT4AQW25D09yMEBIhUCASMyRCYF3FISLgfFSlgABFMJqH4Si2hnWjRBIylqAAdwABXQAQ4E4vimmoCBCBIniSLldiYCE9wZAkkBUPgKIWhIkxnHRYspHqABrY5WR4HCOXwnCCRUGAhF9csiAcChs0cHYyC1DC2RAX0hCmJgTgAdiYAAmE5swAARyLIYCgHAOj4Mx7O5EKTgAViYKYQGcXLcqAA&query=previewwindow%3Dtests%26file%3D%2Farray%2FfindIndex%2Fvanilla.js\",\n  \"lodash/array/findLastIndex\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngekgOwBMAZFOAFwEkiYAPHKAe0LIAsA6AKwWRAGNG-cjCFIQOHAAJW5cgAc4iCUxZwOAgLY5CjPnBwBiAiTJUatADr4IGuYzTlJwScdIVqhOpIC-LtIw1JAHIVNiCrKwF8CkkAVzgYNDhJAF5JAG0rSSc4hLREYIAjdHwYLCCAGkkUPnIIADcYAvI0WJgfCqyc-MSCoLA0GEJK6tqGppcUKASOruce_OC5GELC2DgRmrrGgrApme9O_ABdCNLaOwc4djBGWKJUlwgiNzNPWgAKBbgqxlSAPkkAEJGOwtuMAJRWCQAyQAJjOdEu5Gu-EY5AAYncHmlXKYPHQvnkfpI_ilASD2AsofgYeTJABaACMVhAFRAEDgACFnugsEg9tMYIcQOhMLg8e5zHhniYpe92HBlnwuDxQFFhKJEPxBDEkTBakNHsAurd7oQCnCjtk0ZjsRbGUyjt4zlEYqE1I9BgBHWIQQYfILsBjMMI0t2OORQFDPL0wX3-mCB4P1FDWKDRoI0qzCCiByVvOgjD4Q2Em_DZfW1D4e1gQ9jkRgAUV9Uw-VeEhBplYuBvIHyjMfw9cbLdibdrNO8NLZHO5vLQ_MQgoSIrF2BlL3x0tT6ejqqQ6sEmvIYgjuUSyTSmQr3TyfWKaFK5Sq4J2khabVmt_m9-CAyGTYxnfFd2kOOYL0WIJllWdYgO2CZQO_U58CsJF7BRG57Ueb4bllV4CU-MkKVBN8YBpOlAQRVDzmRVF0Sxc0cOJPCt3lQliOBUFqWhKR6WZVl2U5Hl8D5AV9mFdl2DkQZZAgRI0D4Q8dSEERT21ctsgsEAEg0CBtN2CTrUkbS4GeABzWAAEVYnRGADI_VoYGM7SxUYAB3AAFdARDgBzXPqRgIEIbSXJAX07M8_wFH8kAZPgRJGm0qwXXwEARTkGoAGsUHMmBVUEZSNTU5TRI0GAxFrTc5ULWhZ08ZYaHwPh5LVEBazEAAWdgmQAdnYOEmVnAABYpChgKAcFaIQbAq7V-qZABWdhOvS7x1u8IA&query=previewwindow%3Dtests%26file%3D%2Farray%2FfindLastIndex%2Fvanilla.js\",\n  \"lodash/array/flatMap\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngejFFAFwFkUAHHKAewBMU4ALAOgCsFkQBjKgO0Jj5IQOHAAIGhQmTiIR1OoybcAtjhpVOcHAGJ8RUmQA6PCMrJU0hUcFF6S5UQF9baKstEByefQYfjx5VoAV1gmGAAPc0s4UQBeWwJ7MgAKAG0ARgAaUQAmAF1snjiAPlFUnkK8gEpjERKyrNFGnOz84xBMkAg4ACEIHnQsJDAUKDgYR070TFw7AzxEgyY4MhhOVnZQbj4BQiFtuCsI1c5-GjiG7ObWvP8eA6tvRgu0GABHIIhX5I8mSlofB4avdeIdRGQCP0Xu9Pt9fjgAG4oExQAhAu78Q4_ObkDzZZJVerAYyiUTHNaEZJPBhVJiEKgAUQ-o2S5NOMBowNJbMpEJQ_Vp9KZQRZ1OBjmBHS6vX6g2Go3GkxA02wC305ERyOgBA2SC2vH4gkQIECNBCMDCkQshBi8QyNyYOJSRVipXKlWBdVdlyarRu7U63T6AzQQ0QIzGE06TDIr0kEBgGE4eq4Bt2QmJRVEhhA42UEBziFsCpgmRJ2dz_QA5rAAIpBKj8QuiQhoIKl8s56ZUADuAAV0AI4M2uwiqBAaDmy1mcx9GzA-65pCOQLH4ImETAc8ZHO0lWQUJwANYoKsWti8FPbQ17DgDZQwITUtVJKU0GCrHjv-4JzYgalCAALEw6QAOxMDk6RSgAAgARigsEwFAOBtnwpiPsa4HpAArEwgEgI4hGEUAA&query=previewwindow%3Dtests%26file%3D%2Farray%2FflatMap%2Fvanilla.js\",\n  \"lodash/array/flatten\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngejFFAF0JgDscoB7AExTgAsA6AKwWRAGNLSSekQcOAAT1iABziJBVWg0ZcAtjmqUOcHAGJ8RXgB1SEBWMppCQ4EO3EyQgL6W0lBUIDkMuvRf79CmgFdYRhgAD2NTOCEAXksCa1IACgBtAEYAGiFEgCZ0xIBmHIAWAF0i9IBWEoBKfUEogD4MtKFsjPyM4tKhCv0QVJAIOAAhCFJ0LCQwFCg4GFs-9ExcK148WN5GODEYDhY2UC4eMkJ-A7gzEK2OEmooxvSWvMKS8qLvUlOzdwZbtBgARz8EF-8RcjAoNA8Lmq724ZyEYgIIx-_0BwNBOAAbigDFACFC3iQziDlmQXOl4pV6uZ9EIhBdtoR4l96JVGIRKABRAFTeL0q4wajQ2l8xkIlAjVnsrl-HnM6G2aG9fpDEZjCZTGZzEALbCrHRkTHY6AEXZIfbcXjHRAgXzUAIwIKhEyECLRFI5B5tRIdF5FRhWCk1YSRBru5o5L0-rqvUhKgbDUZocaISbTWZ9RhiX7ECAwDAcM2cC1HfjAGlCXQgGYKCCVxCWDUwVLlytwEYAc1gAEU_JQSHWhIQ0H4my3tRhKAB3AAK6DIcAHlZQGMoEGolebpFplYBfZg08cEkXICz8DzGJglf0th6WrEKA4AGsUO2HaxuIWDpbC6MFDB-MyepxEq1AwFspCge8uZ7CAzL8AUjDJAA7IwmTJEqAACABGKBYTAUA4MOPCGP-1oockZSMAUIC2LRtFAA&query=previewwindow%3Dtests%26file%3D%2Farray%2Fflatten%2Fvanilla.js\",\n  \"lodash/array/flattenDeep\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngejFFAF0JgDsARGGABxygHsATFOACwDoArBZEAY3qkSQpCBw4ABK2LU4icQ2Zt2AgLY5G9PnBwBifEWGUaAHVIRV1emkITgEg8TLHqEgL4O09VRIDkillZfMzNVJgBXWHYYAA8rGzgJAF4HAicKKmoACgBtAEYAGgkcgCYinIBmcoAWAF1aooBWeoBKM3FkgD5iwokyiSqJaqbasxACkAg4ACEIUnQsJDAUKDgYNwn0TFxHI0y8NL2adjhqGD4uHlABITJCURu4W1izvhJGZJ6i_sHhiWaQqRHrYAmxPmgYABHcIQCFZXzsOhMQK-NpAwRPCTUAhzcFQmFwhE4ABuKHMUAIqMBJCe8N2zkyviKWRaXTsZgkEhe50IWVBrBa7EI9AAotCVlluW8YIw0ZypbzsSg5oLhWLwhL-Wi3GjxpMZnMFksVmsNiAttgDoYGTQSWToARLkhroJhPdECAwoxIjBonFrIREil8uVSg1ioMcnVw81auxHFkAJKkSDmQhYNEdJLdEN9Iq_EZjCZTWbzNCLRDLVbrCbsagQ4gQGAYPjO_iuu6iYAciQmEBrVQQPuIBwmmAFHt9uBzADmsAAiuF6CRhxJCGhwuPJ-aMPQAO4ABXQZDgq77KGJ9AgjD7E9InL70OXMAPXlkZ5A9fgzeJMD7ZjcMYzWoFA-AAaxQGdfW4QQ2xuN023mVQYFEfkrXSFw9UYGgyGwoEmyuEB-VEap2DyAB2dgSjyPUAAEACMUHomAoBwDchAsFCPUovJGnYaoQDcIShKAA&query=previewwindow%3Dtests%26file%3D%2Farray%2FflattenDeep%2Fvanilla.js\",\n  \"lodash/array/fromPairs\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngejGgewFsAFFCNOHKAgExTgAsA6AKwWRAGMCA7AFxgCkIHDgAEjfvwAOcRGJr0mzHkRy0CXKgGJ8xMhTgAdXhCIyCafuODj9pcpXEBfe4SLiA5EoaMvpqZEdACusMwwAB6W1nDiALzuBk5wABQA2qbi4uleKF4ANOIAjAC6BVk5XgBGheIATOWmpQCUpmIJAHy23vmIJUU1Xv31rqYgBSAQcABCELzoWEhgKFBwMC6T6Ji4DoaUeB77cMxwMjBcbBygPAJC_CK3cDZR51yCtAk9KP3FRdUjMa8UxPGy-JhfNAwACOIQoMFSXmY1Dofi8bV4oPEMig5F4kJhcKhiORADcUGYoLj0YE7s9EXsUnVUi0urZKq8LvxUuDGC1mPwCABRWGrVKc94wWgY7IS7k4vH8wUikJi3kYlwYiZTWbzRbLVbrTYgbbYQ7JIw4cmU3FXJA3PiCYSIEDBWhhGARaJWfhxRIAeWqrC5zAcQoEaAg8AylVy-SKZQq-KqtSKjSTrXaEni3TseWGA28tUBLnGk2mcwWaCWiBWaw2k2YMih0ijGC49u4jvuImAlWMIHWRAgA_6dfWSeyA7g8wA5rAAIohAiCUfifhoEIwSfiAfbAgAdzIUN4JiQu5NpIIEFoA53A9hK5gJEIcjXA-b8BgaFJMAHplLXgQGNGQUC4ABrFBZ09dg-E7W4nQeTgFiIGARF5c1HCMbVaBgc5eFwzEo2uEBeREAAWZhigAdmYepim1AABaoUGqGAoBwTcBHMNCXVo4oAFZmHI4CXDElwgA&query=previewwindow%3Dtests%26file%3D%2Farray%2FfromPairs%2Fvanilla.js\",\n  \"lodash/array/head\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegBYwoAmOUA9kSnHgHQBWCyIAxmQHYAuMnSIOOAAjwcOABziJ-5StRqsAtjiJlmcHAGICxADpsI80WTQcBwIYSICAvgLBoy8gQHJpVPE9275FAK6waMAAehsZwAgC85sQAFADaAIwANAIATMkAzAC6AJS6_BEAfALxuiCJIBBwAEIQbOhYSGAoUHAwVuXomLhaJD00cKIwzPSMoKyc3By843AmQYPMXJaRJWy6Myau1BECaDAAjj4Qe9FONKQUbk65bBsColAotTt7h8cwp-cAbih6UI_XTwTWanHpOZLRbKFUy6AQCeZDDjRLZ4bI0DhkACih2a0QRixgRBucPxSIeTzYaIx2J8uJRNysNzKFWqtXqjWarXaIE62HwFhwPz-jxGSDG7C4PEQLHYswEsR6mR2CWSaQEWS8vn88yMHDCkR6eUE4SKq2ZlRqdTQDUQTRabXKNFEexEEBgGGYYplEylIGAsIE2hArXkECDiFsnJgiQDQbgtQA5rAAIo-MhccMCDhoHzR2M8jBkADuAAV0Nw4JmgygvmQIEQgzG2HCg4d0zAS_ZxFWQM74O6vjAg7orKVuaIUMwANYoBMwEbsL3jSVTJh1eQwXgo_nEZlEGCDNj725u0YgFG8AAsNHiAHYaCl4syAAIAIxQr5gUBwOc4-k30r3vEACsNCXiAViQZBQA&query=previewwindow%3Dtests%26file%3D%2Farray%2Fhead%2Fvanilla.js\",\n  \"lodash/array/indexOf\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngeggOwBMYAPAeTBygHtCU4ALAOgCsFkQBja_AFxj5IQOHAAIGvXgAc4iETTqMm3ALY5C1TnBwBiAsXJgAOvggqp1NL1HBR-0hVEBfUWDTUVogOQL6DLyYmKrQArrBMpBZWcKIAvHZEDmAAFADaAIwANKIATNkAzAC6BQCUJiJxAHy5JiCZIBBwAEIE6FhIYChQcDBO9eiYuPaGeImGTHBSMJys7KDcfAK8Qgtw1pHT_IRxNfgmq9a-jDtoMACOIRCnyV5MVLR-XmX4B6JSUCgEJ-eX17c4ADcUKYoB8noFFmsbsMKF5sskSlUbCZRKINpxeMkjgwSkxeNQAKIXLrJdFbZ6osnJd6ffC4_FEkIk7HPJzPOoNZqtNDtRCdbq9foYbCjAwUQHA6AfWZIeY8fiCRAgYKEMIwCIkKK8GLxDLZPKiIpMGEpfLPCqxao5Wr1RotfBtDpdHp9EBMKSnSQQGAYTiyrjypZCYAo0RGEA9FQQcOIVzOmCZUPhuAEADmsAAiiFqPwY6JeGgQgmkyABtQAO4ABXQAjgefDKAB1AghHDifwqPDFxzMEr7hk9ZAHvgPoBMHDJictVdUhQnAA1ihU-q2Dx_QsFcsOA6VDAhNjRUkOcQpokXt65iBsUIACxMdIAdiYOXSHIAAgAjFAfmBQHCFvgzD3JUn3SABWJgbxAJwYJgoA&query=previewwindow%3Dtests%26file%3D%2Farray%2FindexOf%2Fvanilla.js\",\n  \"lodash/array/initial\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngeggOwgBcIUocoB7AExTgAsA6AKwWRAGNL8iYekQOHAAJ6RIgAc4iIVVoNGXALY5qlDnBwBiAsVJQAOoSUTKaIsODDdJMsIC-wsGkpLhAcjl167o0aU0AK6wjDAAHqbmcMIAvNaEtlAAFADaAIwANMIATFkAzAC6AJRGQrEAfMLpWdkFRiAZIBBwAEIE6FhIYGRwMPaN6Ji4Nvp4CfqMcBIwHCxsoFw8fEQCi3AW4dMcvNSxVZk5dfhGaxZeDHtoMACOgRBXSe6MFDTe7iX4p8ISUCgElzc7g8njgAG4oQhQX7vPxLdaPegwFDUdxZJJFCqWIzCYSbGZEJLnehFRhESgAUVuZCSeO2MGoHxxtIJPz--BJZMpgWpRI-9g-DSarXaaE6iG6UF6_RAg2wYz0ZDBEOgvzmSAW3F4_EQIAC1GCMFCETMRGicWqOXyBUmUAgHBgSQADFkALRpD5lGKVC21eqNZptfAdLo9PqNRgSK7iCAwDAcdWcTXLATAbHCAwgXpKCAZxBOUMZNMZuAEADmsAAioFKLxc8IiGhAjBC_gcRnBpQAO4ABXQfDgdfboMoEGoGZbbZAtxrMG7Likg5AkfgsdBMAzRns9WlEhQHAA1ihS4bWNwE4stSt2EGlDABET5YlBdQYNN8C_PjH5iAiQIACyMGkADsjDZGkgoAAIAEYoFBMDkI2PAQLeAggWkACsjB_iA9i4bhQA&query=previewwindow%3Dtests%26file%3D%2Farray%2Finitial%2Fvanilla.js\",\n  \"lodash/array/intersection\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngeggOwBcY04YBjQiAe3xymoBMU4ALAOgCsFkRzbiRJCBw4ABK0KEADnESiGzNu34BbHI2rk4OAMQFipClVoAdfBFXTqaQmOBiDJMpRr4xAXzFg01VWIByRRZWAPNzVSYAV1h2GAAPa1s4MQBeRyJnYzcACgBtACYAGjEARgBdEsKSgGZygEpzUTSAPjFC8vMQIpAIOAAhAnQsJDAUKDIPHvRMXCcjV1o8TIWTfHY4aQouHlB-TKFEPlo4OwStyhhGNPaCzvxzfdOxYLYbtBgARyiID5yA9j0JghAKNfBPOzSKAoAjvL4_P4AnAANxQFig0NB4Uyp3-8xcawCJRy9Va9nMYjE52MOVerHq7EI1AAot9xjlqZdGGDKZzCDkoTD8Aymayouy6WCPGDur0BkM0CNEGMJjApiAZthloYCW4UWjoNCdkg9gIYIdjvhnvjsrQbjkZiV2M70ABzOCk1ItCliGbsSBQQw5CDEfxe31od1xZEkLAOjBkv0EchQKKMeDB0P1bPYyKMGIwOKJGyEFLpG2LfD5YplSq3WoNJricMdLo9PqDfDDUbjSY9djSD5SCAkNDkE2WwSEYTAH2mEBkVQQeeIby9mBFOcLgiu2AARSi1GIK7EhDQUQ3W5m1AA7gAFdDmuAn-coZHUCCMeeb9xieffI8YDvXxZBfEBB3gEgY3ncwPC6dVpBQcgAGsUFdQtuFoCd9inCcu1UGBhDpbUskrWV0y2fB03BEddhAOlhAAFnYUoAHZ2AKUpZQAAQAIxQXiYCgHBzyISxCKOdjSgAVnYRiQA8RTFKAA&query=previewwindow%3Dtests%26file%3D%2Farray%2Fintersection%2Fvanilla.js\",\n  \"lodash/array/join\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegFYD2EAdjlAQCYpwAWAdHgsiAMYHEAuMnSIOOAAhocOABziJ-5KrTpsAtjgoEWcHAGJCJADrEI80QTQcBwAVuICAvgLBoC8gQHJp1Gk9275lAK6w6MAAehsZwAgC85kTEABQA2k4oTgA0zgBGKc4sTgC6qU4Afk4AlLr8EQB8zigFaQXZuiDJIBBwAEIk6FhIYChQcDBWzeiYuBb40XRwojAsDEygbJzcHLxLcCZBMyxcFBHVtfUexLrrJq60-2gwAI4-ENcxTnRklG4lp-wbAqJQKCRXW73R7PHAANxQeigfw-J2WGyeFkyMWKlVMugEAi2sw4MQuNGKdA4BAAonc-jFsTsYBRSpYscEcTFfv9iITiWSfBT8XSrHSmi12p00N1EL1-oNhhhsBMSODIdA_vMkIt2FweIgQN4KH4YAFgkYOGFIgkkvkMvlsjkGNEnkU6eVwlVEocGsQBa0OsQuj0-gMhiA6KJriIIDAMCwVaw1SteMAMQJtCABvIIEnELY_TBkgmk3ASABzWAARR8BC46YEHDQPmzuZAIwIAHcAArobhwStJlBgogUJM5-lJu7lmAt-ziLsgYPwcNgmBJ3RWRoB0QoFgAaxQBb1jHYUaW6tWzG98hgvHxsvdzQoMBmxFvxBYYYWIHxvAALHQAIwAdjoABM34CgAAmkKBpDAUA4DWnD6Oemr_t-ACsdAfiAViYZhQA&query=previewwindow%3Dtests%26file%3D%2Farray%2Fjoin%2Fvanilla.js\",\n  \"lodash/array/last\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngeiiuAFzwHsATAgCwDoArBZEAYxIDtCZ2kQccACSoUIAHOIl5RyVaiwC2OMiSZwcAYnxEAOqwizhJNIT7A-GowF8-YNCVl8A5JIpxK97dtnkArrGowAHvqGcHwAvKYEhAAUANr2KPYANA4ARkkOTPYAugCU2rxhAHwZbqwgiSAQcABCEKzoWEhgKFBwMOYV6Ji4ZniR1HDCMEx0DKAs7JyE3BNEfAFDTBxkYSXurLNGTlSraDAAjl4Qe1H21KTOrnkbbHPC-HW7B0cnZzgAbig6UPj219ocIinMzpKI5IrGbR8eaBYbRbYuHLUQgkACihxaUQWcJgZGu0OxSyi9xQdSRKPRXkxCMo13M13KlRqdQaTRabQ6IC62D6RA-X2g-FGSHGbA4XEQzFuRi6qziCWS9jSisyWXWnjIPhgfkCBkIIXCXRiXWosFYAHNCJQ-ABaPgARjVrAKoWK9ky2kZVVq9TQjUQzVa7Qq1GEeyEEBgGCYIqlkwlIGAUL4mhAbVkEFTiCs7JgiWTqbgdXNsAAil4SBws3xCGgvHmC1yMCQAO4ABXQnDg1dTKHeJAgZFT-dY0NTh0rMDbNlEPZAYfgUfeMFT2nMns5whQTAA1ihzdr6GxYxNxdNGPVZDBuDTedMKmQYENWI-NpGxiAadwACzUe0AdmoAAme1GQAARSFAUhgKAcDrdhdGvSVAPtABWahvxAcxsOwoA&query=previewwindow%3Dtests%26file%3D%2Farray%2Flast%2Fvanilla.js\",\n  \"lodash/array/lastIndexOf\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngeiiuAFwEkA7AExgA8B5MPAe3IIAsA6AKwWRAGMHShGIKQgcOAAQtChAA5xE4qE1Zt-AWxzkGvODgDE-ImUq0wAHVIR1shmkITgEoyQrU6EgL4SwaBuokAcmVmOBZAy0tqW3s4NjhrWVgJAF5nAldTOgAKAG0ARgAaCQAmYqLSgF1ikoBKS3FUgD4JAGZI0kaAZRh0XhYfPwDCFhgJAANffxNqcaiqGMI4qfUZqlT04zczPIqyiT3q0pr6zskUlvzLEEKQCDgAIQhSdCwkMBQoOBhPW_RMXAuNZ0PAZYFgeKyGC8TjcUD8QTCQiiBFECTRaFCcgbYCWCQSBI2WCINqFPGDabbElFSyeDqohwhVgbNAwACOAFcIKzsoE2IxQuFTgyJEkUM8WeyuTy-TgAG4oKxQfCBU6WIREXlA7Z0QLFbK1ZqOckY3iEbJMsK1NiEBgAUU5n2ypqxp3xLuyYue1ttDo5TstLFOnlONzuj2er3en2-vxA_2woK2WXoCqV-FhSHhAiEIkQIGidiW8USyTSBRq5RqlTY2pT2TqDXOLXapCbEh6fQGKwkIzGkyGazmpELsTYKzWGwrxwO1drYJ1YAbJ3bFwO11u9yeLzQb0QHy-P1ubFkrJkEBgGF4Wb4OaRolxpHx5hA33UEBfJIP3zJT4kL4SUgAHNYAARQ5BghE_Xs0A5GBf2feMMAYAB3AAFdBhDgaCXxQOUGAgcgXwQ_8QE5SCYDQvx5BwkBT3gS85RgF9aWuONZBQXgAGsUCAmBYQEG8EVzZEeBedQYFEQMk0ydwwDDSgoTcUheAvOEQEDUQABY2HyAB2NgSnyMMAAEACMUDMmAoBwWDBGsST8wM_IAFY2C0kBPC8rygA&query=previewwindow%3Dtests%26file%3D%2Farray%2FlastIndexOf%2Fvanilla.js\",\n  \"lodash/array/nth\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegHYAuAFjlAPYAmKcRAdAFYLIgDGZhMhSIOOABEQIEADnES9yVGrTYBbHBTIs4OAMSEiAHTwRZwsmgJ9gfDXwC-fMGjKy-AcknUi97drZ44R9Jix8AvHwA2vYo9gA0DgBGEQ4ssfYU9gC6bngwAB76hnC0cLrCsAGmxAAUPtiRAIwAlNq8AQB80a542pnZBLnpAOYoBBAAbjDFGuUYlXwAtABMdXgN_s328QDc2iDhIBBwAEIQeOhYSGAoUHAw5lsVuBr4xHnCMCwMTKAeBJwE3B5efB3PT4UYrAbR8Pj5PSwRAtcJg0wwPoDYYwlYRbTmNK_IxOGjFNAwACOAFcIATSvZaKRKM57PNsXxCigDviiaTyZScIMUDooFAwvNtJ8vBSNLFSjUmsZ4QCWARSriiDVaAQyABRElnUqyoHzcE60pMg7K1Ua4laxXzczzTbbPYHI4nM4XK4gG73Ejc3n815Id7sT5cRCsdh_MyBcZoSIQCgZSVLPg-PJQCAsGClGMZaOxvgAaj4tSCAAZUm08AybsUQmFIvYYrX4rWkqX2lkDF08gUioExjdqvNFssYmkOu3uoj-kMRj2yn3pnN6vwE2j1nhbTt9oc0MdEKdzpctrRhAShBAYBgWH6QxwgyBQXhwZoQBdZBAnzC9xc4Q--E_8ngelgABFYkyE-d8-AINBiRgb9HzdDAyAAdwABXQTg4Agp8UEGMgYyfODfxAEkwJgFCbFELCQGPeBz2GJ8MQ2V1hBQFgAGsUB6GBXnYK8Pi-K9DlkGBuEVD1bQoGAnjwSTyzPN4QEVbgABZaCqAB2WgZiqW0AAEohQKIYCgHBoMIXQRODTSqgAVloZSQHMJynKAA&query=previewwindow%3Dtests%26file%3D%2Farray%2Fnth%2Fvanilla.js\",\n  \"lodash/array/pullAt\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegA4CuUUAggC45QD2AJinABYB0AVgsiAMZUB2ZMfJCBw4ABAzJk8cRCOp1GTbgFscNKpzg4AxIWLkAOjwjK8VNGVHBRe0pYC-osGirLRAcnn0G7o0e48cJbomFiiALyiANruKO4ANB4ARgkenKnuNO4Aun48MAAeZhZwTGgwZARoPBE2RHYAFCHYiVEAjIkAzNkAlEYiEQB80e4piZk5eYXFZKXNYZHz_WLhwzFx4-m5PCDxIBBwAEIQPOhYSGAoUHAw9nvz-PXkj_pkTHB4MJys7KAB_IJEFxeEFRNMvvwaLVgEZRKJypVqogRmMPFlsvFYaJ5sj1hktpiePY8gFQV5GLVygBHAgQcoNdxMSi0bzuPo8UmWPBQFAnSkwGl0mAMpkANxQxmIcXZRn4QQZtnIqQaPSGVix4M4ZAa5IYPSYZCoAFEaVcGprIey4RaGtzeTx9YaTQQzbr2fZ2bt9kcTmcLlcbncQA9FRRxZKeT8kH9eACyEJOXVXrUmhhEhAaAU4KrVliM1msXCyjBRTA0DcVYXRExlCg8A182qQu9uRBOML84k2j0ogAGXpV4ul8vCmUckHBDDYWp48ao9zpcboqZFcyzYuImqRUOp0KtDqibrsgarFEZZc8IzTNdzKcLbF35Zq2dpSY7PYHY6nNDnRCXa63HsTB4AiZAQGWaCcNGwJ8AI8ZAjCNSiAYIA3MoEAoci_43IScIoXAJwAOawAAigQVD8JhohkGgBAwLhyHBhgVAAO4AAroAIcBUShKCilQGYoQxKE0hRMBsS40g8SAIHwGWpYoUYxI7EGeAoJwADWKCETAPy8NB_xwdBpzKDAQi6i8dhejQMCfDwNkcuBvwgLqQgACxMG0ADsTAAExtF6AACSQoEkMBQDgtF8CYZlAj5bQAKxMG5ID2GlaVAA&query=previewwindow%3Dtests%26file%3D%2Farray%2FpullAt%2Fvanilla.js\",\n  \"lodash/array/reject\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngejTAKxgGMAXHKAewBMU4ALAOgIWRGMoDtSZukQcOAAT1SpAA5xEgqrQaMOAWxzVKxODgDE-ImQA6nCIvGU0pIcCE6S5gL5CwaSoqEByWXXquDBxTQCusIwwAB4mZnBCALxWhDYAFAZCQgDariiuADRuAEZZbsT5rtRFMEVgRQDmrgC6mUlCxPTo0QB8jc1o0VExxd6cAJQGgm2paRnZrnmThZNlkxWT1TU1BiCZIBBwAEIQnOhYSGAoUHAwthvomLjWZHhxZIxw4iTMrKAc3Lyk_J9w5qEXmQYNRoql0kVpgVSuUqrUfJw_uYPAwwfgAI7-CD4eKuRgUGieVxDRFcf5CcRQFB7NEwTHYmC4_EANxQhigVOJCJ4_1xt1I-XiA1GwAagISKPoA0YpEoAFFMSd4uLgdQSckVaR4pTqYMZfLFVB4pKSbYSetNjs9gcjiczhcQFdsPddORWeyqW8kB8uDw-IgQH5qIEYMEwqZSJEYuNIUVZm4SnNYUtaoxIFAeGhEpxkk0WlF2nmugBCHoJ_okkYFsYQyZQ1zx1zzNyLNzLVacC1bXb7NCHRDHU7nDaMcT4MQQGAYYje9i-778UU5oR6EBnRQQVeIBx2mD1ZeruB7SqwACK_koPC3QlIaH8e4aq6ulAA7gAFdC8ODXp_MygQahV33ZJV0xS8YDfJxJB_EAx3gKdmRgVcDFsNYHXEFBiAAaxQSpQxYLhZ0-P0fjYfZFBgfhJRdGwLWoGAXk4ejEUnd4QElfgABZGAARgAdkYAAmHiLQAARyFAchgKA8H8bgjEogMBJ4gBWRhOJAWwtK0oA&query=previewwindow%3Dtests%26file%3D%2Farray%2Freject%2Fvanilla.js\",\n  \"lodash/array/remove\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngejTAWwHsA3GHKIgExTgAsA6AKwWRAGMiA7AFxl6QgcOAAR0ePAA5xEwyjXoNOBHFSLs4OAMT5iZADpcIBSUTQ8RwEbtIwRAXxFg0RAiIDk82nXeHDnLjgLdEwsEQBeEQBtAEYAGhEAJgSAZgSAFgBdf24gkRgyQIjrQlsAChDsBK4IgD5LQxESngBXNBqagFIkiPDIgAZDewBKPy4YAA9TczgGSrDI-cNhOuj4kRTsrkNJ6Z5Zgv44YsPA5dFw-qjkkSyxgLzxgHcAQQxsYtiEm7TbhIBWLY7KZmfZzKBQYo2MhlZ5vUIJMrDVZw95YBiwLgAcx4dBE9X6oy4K0ua2-qQyAKB4xBMwYqNCxQZ2HOqyiWxAcRAEDgACEIFx0FgkGAUFA4DB7Fz5nhSmRZXoYAw4JIYOxmKxQAE-AJEBxchZdmq-FRisBGiJ5ogyRtMnELacZNEbll7TURMysNb2W6mmKoN71j9KSJAW77PcDSIvPQoTAAI4tCD4MruBgUajedxEh4WSRQFACuOJ5MwVPpkgoIwQlDZsZ8IKp6EwdyI5Gk83uo3sHhlGN0YYMHhEACiibFZW7JqJTSnZXzha4g-HY5aE_7RJGhk53L5AqFIrFEqlIBlzZwlerBY1SC13B1PEEuZKiuKFTRCQgfEwfBg7fqnZNCsRZmFQMBoCIw4ekQFgEC0PAoHwkF0HYZgQFi-6QvMIgtLw0DIXYZBoGE_BUBaKxPHYTxVhYUHsCg7AoQRIgCmBEzwJBRAvrYIhPHQ0B2JI-CSOgApYsx-BwC0UC0Vx-CtO0FrPsOABKcp2JE7JKVGknSRYixogwkAyeBZRlF-hCfv-LHfohMBlhZBDIgAZM5nFqYqDCSC09DmcMRLkaITA-RYABGMBgGYdjyW0RjYgklEiPRNS4vw3FkMxjlwAkBAoAA1mJIhSfgvF2EE6A8IFTguG4qViOhKEQaxkzwNaMGNU8PJ2KlYRPEQ0mmvQEBgMEhoMXi0JihaqnqQw-BERKSJGWYI7jeZqzzMq-YQOwDkJDE_kWjF7QlFJMlDJGgTBGinxBhStxbM-jpxoq74Ih6qyAc0sUfd0iS9AMQwBTSeyzNhBmhKypJfLaYy7KCByFMckSOlDVwutSz6erd5IbCGgJw7SYL-i95Sem2KIwK8hmYjieIEkSJJXHdeN_KG1Lw3S2ORJ6aPRByXI8vygrEYe4qSlyXnyTwEDgWg7C3vqvD8I-epffoIASgQEAa9aori76Iga3AYmwAAii0MEwLrkFoC0MCGxrIREE8AAK6BHDbTskEQEBkZyFoa4mVuuy40heyAQnwOBBggBdXAgCeInsHlKBYkqLDcIr2oq4rgoEDAgj9gqtg7mBqpcGBXDsLLmogP2gjpAwMQAOwMIkMQ7gAAqFKDhVAeC4TLBeCG3MT_Aw6SJ_YM_2EAA&query=previewwindow%3Dtests%26file%3D%2Farray%2Fremove%2Fvanilla.js\",\n  \"lodash/array/reverse\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngejTANxjThhygHsATFOACwDoArBZEAYwoDsAXGXpCBw4ABHR48ADnETDKNeg04BbHFQrs4OAMT4iJGAB0uEZZIpoeI4CL3FSIgL4iwaCspEByebTqfjxpxccFbomFgiALwiANoAjAA0IgBMSQDMALoBXDAAHuaWcAz4PACuaFxRtoT2MAAUYdgAlMbCUQB8sWlJqSJxWVzGeQU8RcqlPCh8VFWNWK2ikZ0x3SlJ_cYgCSAQcABCEFzoWEhgKFCkjttzeDUGt_qkDHCSMOzMrKBBfAKIHNwhETDN7TKrAYwiaplCqILo9dYZBIQkTjSbTWEreF9RHGRzZIKAnz0Kr4ACOpQg-DqngY5Govk8LS4BKskigKEOJJg5Mp9RpOAIKBMUHZjOyfBC1LsBk8STqTQ61mRwPYPDqRLoTQYPAoAFFyec6irpkzIca6myOVwtTr9aVDRqmY4mVsdvtDsdTudLtcMNgHrUBULoOyPkgvtwfjxBCyRHMqvEsZlssMLKNijBoZVonMM496ky2ks4WtsSn8mmxhMpjAZjm_fMuEXlqtehsuK7dgcjmgTogzhcYFcQAxJCUeBBiGh2OH_rx-NG_uDKiJDCBSMoIGvYQPSEiV2u4IcAOawACKpQofG3Ih4aFKMH3kLXYQoAHcAArofhwG8vggUBAVBrk-q4gOSV4wB-bjSH-IBjvAxBEGuuKbMOkgoOwADWKDHjAHzcLO3wLrORzKDAggagGBiulQMCvFwdHMpOnwgBqggACwMHEADsDDJHEroAAIAEYoCJMBQHgpS8KYFF_HxcQAKwMBxICOBpGlAA&query=previewwindow%3Dtests%26file%3D%2Farray%2Freverse%2Fvanilla.js\",\n  \"lodash/array/sortedIndexOf\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngejgezQBcYATASQDtSYAPAeTByn1JTgAsA6AKwWRABjfJRKikIHDgAEHIkQAOcRFJZtOXYQFscpfILg4AxAWJkqNBmAA6lCFoWEi04NNMkK1Oo2kBfaWBo-FrSAORq7ByhtrZarACusFx0jsRw0gC8bk7mXlYAFADaACwANNIArOVVleUAbAC61QCUtlKZAHzSAIy2IKUgEHAAQhCU6FhIYChQcDC-A-iYuO65lox4OZ7rYFxwCjCCvPygwqIw4ohCInDOKYcemT0xlGe30hGcT2gwAI7xEB--VCXGYrEioVarxuzgUUBQY2-fwBQJBOAAbig7FB4ZCXiRbsDVttvGBQuV8s1Oi5bNJpPdBER8p8OM0uER8ABRf4zfIMjxQun8_JwhGUNkc7nxXksqG-KH9QYjMYTKYzOYLEBLbCbMwkqwYrHQeHHJCnERiIgSN7OYkWUlPfJLcqYqDxGBUjJdQpcX1LBp7JyUrhjHb5V3uqGxBJJFJOdJZO15RhFMq1dM1RotNoyL3PSiKoajcZoSaIaazeYDLgKH7yCAwDCCM3Xc6XEDAWnSawgOZaCA9xABdUwUpdntwMYAc1gAEV4vgSIPpEQ0O6x5Q6T2lvgAO4ABXQFzgy-36PwEFIPY3W5A_0XMH3QSUp5AtfgjfRMB7tl8fU1CgoIIADWKBTjAxwiC2ZyWi24xaDAEgsrqHj2lYio0AcXivA2JwgCyEjFFw3QAOxcAATN0ioAAIAEYoLRMBQDga6iPYiFXGR3QVFwxQgL4AkCUAA&query=previewwindow%3Dtests%26file%3D%2Farray%2FsortedIndexOf%2Fvanilla.js\",\n  \"lodash/array/sortedLastIndexOf\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngejgezQBcYATAGRTiIEkA7UmADwHkwcp9SqALAOgBWCZCADG-OiUlIQOHAAIeRIgAc4iOZ25x-4gLY5S-UXBwBiAsTKVq9RqzAAdOhD0rCRecHmWSFKrQMzGzyAL7yYGj4evIA5Fq8sc7OelwArrB8zO7EcPIAvD4e1gF2wWAAFADaACwANPIArA3NTQ0AbAC6LQCUznIFAHzyAMzOIHUgEHAAQhB06FhIYChQcDChk-iYuL4ltkEOeMX-B_ZsfHAqMKKCwqDikjDSiGIS1PLZN34Fo8l0jw-CR0vzQMAAjmkIGCKrE-BwuIk-gD3p4VFAUPNQRCoTC4TgAG4oFxQDGxZHOEjUWF7U6Bc5gWINCo9IZeZzyT5Ma6iIgVYE8Hp8Ij4ACikNWFS-vLIyM50r56MxdCFIvFaUlAuRoWREyms3mi2Wq3WmxA22wxysdLKRyJJIxdyQDwkUiIMgGSlU6k0iJ0fH0hmMpgsJxs9PKzkBnlp4dtIUKFW2DSJUDSMFZ-WGVT4ue2nUuHhZfAxZ3KFVT6YpdFSpAyMCy3I8eUKsdKhzY1XqbR7rS6vX6CizfzoeumcwWaCWiBWaw2kz4KjByggMAwomdbyeLxAwA58kcIHWeggh8QERNMDq-8PcHmAHNYABFNL4Ehn-RENDp690TmH7Z8AAdwABXQZ44A_ACCXwCBSEPX9_xASE3xgECojUKCQCXeA1wJGBD2cUJxjNFQUFEABrFB7wbIQJE3R43U3BY9BgGQBStPw4w7MA9UYa4ggBVd7hAAUZBqPgAEYAHY-AAJkkvUAAEACMUBUmAoBwb9JFcNjXlkyTGj4GoQFCczzKAA&query=previewwindow%3Dtests%26file%3D%2Farray%2FsortedLastIndexOf%2Fvanilla.js\",\n  \"lodash/array/sortedUniq\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngejgezQBcYATAVQDsIBHHKfUlOACwDoArBZEAY30olBSEDhwACFkSIAHOIjEMmrNvwC2OUvl5wcAYgLEyVWgB1qamYSLjg4wyQrUa4gL7iwafGvEByJcwsvubmaowArrBsMAAeVsRw4gC89tbGzgAUANoAjAA04vniAEwAugCU5mLJAHziuQVl5iB5IBBwAEIQlOhYSGAoUHAwrq3omLgO6bR4aU60bHAyMLyc3KD8gjDCiHwCcDaxy7yOyfVFTZTmmwfiAaxnaDA04RBPGb5s9IyBvpWUNxsMigKG6j2er3enxwADcUNQoCC_iEtgcPlN5jRfAUMuVarZzOJxEcVkQMvcWOU2ER8ABRF6DDIkk5kf5E5lk4GgyhUmn08KMin_Vz_FptTrdXr9QbDUYgcbYWZGTGw-HQEFrJAbARCIgiQGpZUmFwpcb4rJsS2UGAAd3EAGUYGTxuVSotrLiUWFSJEYNE4tZEikMcbskULhUqhIknUGiVSs1Wu0uj00H1EAMhiNWmwZE9pBAYBheFq9lsdiBgITxKYQMM1BBa4gPDKYHlq7W4N0AOawACK4XwJCb4iIaHCbY78ow-BtAAV0Ns4CPaygYfgIKRa-3KETay8hzA5145CuQHn4EWYTBa-ZXM05TIULwANYobt-rgCUubXWlnpqDAIgUkqjjGmKpAwMslCQQChbrCAFIiAALGwOQAOxsMUORigAAgARig-EwFAODjoIECASImE5AArGwyEgK4zHMUAA&query=previewwindow%3Dtests%26file%3D%2Farray%2FsortedUniq%2Fvanilla.js\",\n  \"lodash/array/tail\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegC4rQ5QD2AJinABYB0AVgsiAMYkB2eMHSIOOABFTx4ADnER9SFajVYBbHGRLM4OAMQFoAHTYQ5Ikmjz9g_TVH4BffmDQk5_AORTKVRzp1zyAV1g0YAB4GRnD8ALxmhFAAFADaAIwANPwATMkAzAC6AJQ6fOEAfPyxafxZOiCJIBBwAEIQbOhYSGAoUHAwllXomLjm-FE0cCIwzPSMoKwcXHg8U3DGgSPMnGThxaXlbDrzxi7U62gwAI7eEEfRjjTE5K6OuWy7_CJQhGyHJ2cXVzgAbii6KCve4eaYLS7mRzJaLZQomHT8fhLUZ4aL7KjZGh4EgAUVObWiyJWMDID0RRNRLzemOxeO8BPRD0sD0q1TqDSaLTaHS6IB62AGRH-gNe4yQk3YnG4iBY7AWxWSNCV5ky6wSyU2mU8Pj8S0MeFCEXMeQEYSKJQyWrYrJq9UaaGaiFa7U6VRoIiOwggMAwzHFsum0pAwAR_C0IA6cgg4cQNm5MESofDcAaAHNYABFbwkTgxsxobwJpN8jAkADuAAV0Fw4HnwyhfiQIGRw4n3mGQKcczAK3YxHWQB74D7fjBwzpLBVeSIUMwANYoVMwcbsf1TKWzJiNOQwHjowVQVlkGAjNjHx7eiYgdE8AAsNHiAHYaCl4qyAAIAIxQn5gUBwBYcHou4ys-8QAKw0LeICWLBsFAA&query=previewwindow%3Dtests%26file%3D%2Farray%2Ftail%2Fvanilla.js\",\n  \"lodash/array/take\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegC4oDWMOUA9gCYpwAWAdAFYLIgDGZAdnjF0iDjgAENPHgAOcRAPJVaddgFscFMqzg4AxAWIAdDhAViyaPIOCDtMQQF9BYNGQWCA5DOo1nevTAAeRk3B0FDBgKACuUKYAvBZEMAAUANoAjAA0ggBM6QDMALoAlHoCglEAfIIpuV4cvv54gXgA7mQlscRJaZk5uekZhRzFZRWdGVUc3n7G9XQoUFCtlh293ekArP2D5SnLgnnVtVOBHJxWMYvbXbs9ggAMG0JDiWMgqSAQcABCEBzoWEihUDgMGsr3QmFwlnwcTocDEMFYjGYoHYXB4eD4KLgplq8O4FFawD0gkEwVCETwiGGPSJFmalIuo1SNNmUHpIxWNOONXp1I41mqmNMblorTQMAAjmEIGL4s46KRKO5nP1BYIxFAUN9RRKpTK5TgAG4ofRzFDK6rcLGyyzOdLxfIlcqEjjEnGsPDxYU0fJ0PBkACiktm8TdeP6rr8uPi6s1HB9fsDYWDXv61n6Lzen2-v3-syBIJAYOwUOIhuN0A1iKQyM43F4iDYnCxbVOgniYPS4rwWFayQdjzog7BuRh6ogrASN073f6EzqgVJ4UiCziS0ueXujqp-0mAV9zRX7QZK0ym8eIzGc8OMzmh4Sx6uazPW3ZVx387oXNb51feXSdyKB4tmeV53i-H40D-RAAXzV46DEMVRAgGAMFYatG1ResQGdYkdBAIEFAgPDKRgmAmRdQQ8Lgb4AHNYAARTCMhuGIiw0DCMiaTwsEyEaAAFdAeDgVjuINMgIAoPDyNwkBJWYmA-IcCQRJABD4BQg0YDwvR-Q4EACzEFBWEIFAaJgRFOHQlE63RFgfgUGA-C9EtHNeYI4Q4YIOFYZCkRAL0-AAFjoZIAHY6AyZIMwAAQAIxQWKYCgHB2K4AxHIbcLklWOhAv06wCusIA&query=previewwindow%3Dtests%26file%3D%2Farray%2Ftake%2Fvanilla.js\",\n  \"lodash/array/takeRight\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegC4oDWMAShAOYAWeOUA9gCYpyUB0AVgsiAMZ0B2eGIKQgcOAATU8ABziJx9Ji1Z8AtjgZ0ecHAGICxMlTwAdfhDUy6aPBOATDpCtQkBfCWDR01EgORKzJR-5uYwAB7WtnCsDDBgKACuUHYAvI5EziYAFADaAIwANBIATMUAzAC6AJTm4hKpAHwSuVWh_BFReDF4AO50DRlGLnh5RaUVlcUltfz1TS1lEm38YZE23awoUFCDTsbUY9OTxQCss_PNBcfLle2dGzH8AjB7mQej1xO3xQAMF5IFrk7vwQIUQBA4AAhCD8dBYJAJKBwGBucHoTC4fYjfDvEasOAyGA8DhcUB8QTCPCiClwOydYlCBiDYDmCQSOIJZJ4RAtKqFNmOfq83JLfmC7ZQEXjMVTQXPDoiuX8NztWl2QIsQZoGAAR0SEB12T8rFojCCflm6okMigKFh2r1BqNJpwADcUBYdihLe0hHTjdiTH5itlqg1mqz-OyGTxRprKNVWHg6ABRfXbbKxpmzGORRnZW32_hJlPpxKZhOzNyzMEQ6Gw-GI7YotEgDHYXHDEzuz3QO2kpDkgRCESIXgCOlDLKudLZDHFXV4LCDfLhoGsTcYyoE20QHgwbIAWiXWEXy9may6MU5SRSb27hy-soBEb5IKvj2T_QfM8-MpOUpXyBWV7nWaIth2X8PiOb5-Qkc46kBK4ANuMDr1YBVXnSIMn1Q-D_iQt9gXMOtIRhOE0ARRAkVbcFWBkHU8DwCAYAwHghwnSkxxAKN2VMEAUTUCABN5WiYAFaMJAEuBYXIWAAEVEjoIRRMcNBEgkwUBIxOhegABXQYQ4DUnS3ToCAGAEyT-JAfUVJgfTvDkUyQEY-A2LdGABPMVVQTbGQUB4QgUHIGBSQETiKVHaluDhNQYFEBMuz_Os4iJfg4n4HhWLJEAE1EAAWVh8gAdlYEp8jrAABAAjFBapgKAcA0wRLES8dyvyU5WEKkA3AGgagA&query=previewwindow%3Dtests%26file%3D%2Farray%2FtakeRight%2Fvanilla.js\",\n  \"lodash/array/toPairs\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegC4D2ACihGnDlAQCYpwAWAdAFYLIgDGBAdnjL0hA4cAAnp48ABziJhVWg0ZcAtjmoEOFAMSESZOAB1uEZZIJo8I4CN2lyIgL4iwaAspEByeXXoejRsABXbg48CB4RADECAgAKAEorIxEbegg4RhQRAF4RAEZk1PTGACMckQAmIwd_bmiCRklXQjwsSRglcoBmWuUaQNhGGAAPMws4ctt9WO4YAHcomIT4o2EcgD4RAG0tjxQPABp8gF0j3ZLDyuPjkViIPkwwiPNqGDQRdJFuAksAc0D0CheDAYNQVtwQAcQOkAEIQbjoLBIMAoKBwGAOKHoTC4KbkfDEOwZODtDgsNigLjAgSITg8OCWEakvjUcpbQq7fZHPKnDkeC5HCq87jHWpUhkibwMcpoGAAR0CZBgsQ8jEoNB8HnB4sskigpG4MvlitlKrVADcgdB9VranwGSq8XBLgkNklDSImTBQrEpfR4oxCABRBWo2Je0Kg8EpCN4WJ6g0B4OhqC-jUMcEOcGQ6FwOEItBIxAotEYrEYbAEvT4y3GKD68lISk8Pg08DBULhQ31V3AQp4NIZLK5AoegfFMq5KrcGrcIz1RrNH5tDocbq9fqDJnmPATXIAeRKzG9eCGvDQEHgM3mizi8XBa2ymx2e0uPLO_MuQpudweKCehovG8HwTN8fwApgwJRkYOawvCiLIqi6KYiAi4wBIl4YBwTZ0tSeCCH2HoGCA6LKBAxGIM4SEwAchTEXA8K_LAACKgQ_DAFE2GggQ0XRIDYgQcwkLK3CGEgIjESg5oEBA1DEbRREgAq7FEK40iccRTTwG85ocSA1QwShkgoBwADWKC_B0rA8DhVKtvh7AIsoMCCH6VZEjmrztNwrwhJeFIgH6ggACyMHkADsjAVHkOYAAIlCgJQwFAODcbwJgubSkV5AArIwwUgA4RVFUAA&query=previewwindow%3Dtests%26file%3D%2Farray%2FtoPairs%2Fvanilla.js\",\n  \"lodash/array/union\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegK4B2EA9gTlMQCYpwAWAdAFYLIgDGpALjAZ0iDhwACWp04AHOIkEVqdehwC2OSsTZwcAYkIkCAHSKLxxNJyHAhO0kIC-QsGmKKhAclk1aLgwcVU8sehgAD2NTOCEAXksiUgAKAG0AJgBdABoheIBGdJT0rJzkgEoDQUiAPgzE9MzkgxBUkAg4ACEIAnQsJDAUKDgYGwb0TFwrMlH6OHEYNiYWUA5eHj5EdlI4M2Cptm5KSMrq2v0CBfWhdzo9tBgARzwIK9iXenIqDxdi47WzcSgUNsubncHk8cAA3FBEKC_d7eRbrR6jFzpWKFcrmAxCISbaacWLnWiFeicYgAUVuPVi2O2MEoH0xVNxPz-BEJxLJeAp-I-Ng-9UaLTaHS6PT6AxAQ2w-BiZHBkN-syQ8y4S34JzMoz2sSG6XouvQAHM4KiIhV4rr6AQYAB3IQAZRguKGClIbBQuPNBqNhUOPj8AU2Jk44SiowSuQy2SE4fyUaKJWEJv2QhqdQaTVa7TQnUQ3V6_Qa9HEVzEEBgGDYitWi14_GAGKEehAfUUEEbiHsIpgqXrjbgbX1sAAinhiNw20JOGg8F2e-KMMQrQAFdA8ODjxsoUHECCURvdgiYxu3UcwReOSTrkBF-Bl0EwRsGGx1MXiFBsADWKH1MFmpErC24GtWHaRQYH4fEpV0PlKBgKYCBg45SzmEB8X4AAWehMgAdnoRJMj5AABAAjFAiJgKAcCnXgIFA_gcMyABWeg0JAGw2LYoA&query=previewwindow%3Dtests%26file%3D%2Farray%2Funion%2Fvanilla.js\",\n  \"lodash/array/uniq\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegK4B2EAjjlAPYAmKcAFgHQBWCyIAxuQQC4zdIg4cAAlpcuABziJBFanXocAtjkrk2cHAGJCJADpFF48mi5DgQncSEBfIWDTlFQgOSyatZ_v2KqeWPRgADyMTOCEAXgsiYgAKAG0AJgAaIQBGFISAXQBKfUEIgD4hRJTUzP0QJJAIOAAhCAJ0LCQwFCg4GGsq9ExcS3xo-jhxGDYmFlAObl4ufim4UyCRth5KCOLktPKCfXnTNzp1tBhiPAhjmOd6Mip3Z1yCPaFxKBQGo5Ozi6ucADcUIhQV73LzTBaXSzOFIxbKFMz6IRCJajLgxA60bL0LjkACipzaMWRKxglAeiKJqJebwImOxeLwBPRD2sD0q1TqDSaLTaHS6IB62AGJD-AOgr3GSEmnB4fEQIB8lD8MACwWMXDCkTi9G1BBgAHchABlGCokppDI5bb5cJFM1lCpVGr1RpoZqIVrtTpVejiY5iCAwDBsSXsaUzfjABFCXQgDqKCAxxB2HkwJJRmNwBoAc1gAEU8OQeImhFw0HhU-n-RhyHqAAroXhwYsxlC_cgQSgxtMEREx06FmC1hySZsgX3wQO_GAx_TWCp88QoNgAaxQWeVzE4IamMtmrEaihg_HRQuIbMoMBGBAvjwDExA6P4ABZ6KkAOz0BKpNkAAQARigf4wFAOBltwECHvwH6pAArPQT4gNYSFIUAA&query=previewwindow%3Dtests%26file%3D%2Farray%2Funiq%2Fvanilla.js\",\n  \"lodash/array/unzip\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegK4B2AXhAA45QD2AJinABYB0AVgsiAMaUEAuMvSEDhwACejx6k4iYVVoNGXALY5qlDnBwBiQiVIAdAhCWlKaHiOAjdZEQF8RYNJSUiA5HLr03hw0pp4sIwwAB6m5nAiALzWxGQAFADahiIiiW4obgA0IgCMOTxoeDAAulkpaW4ARtkiAEw5YChQcKXlBCUAlIbC0QB8aemZOdVuZWn59eOJhcWNza0lJYYgWSAQcABCEAToWEhNLTB2a-iYuDbkl4xwpDAcLGygXLz8PIIvcBahdxx81NE0hUhrVRmVgZM6uCCKkZkUYPMjtDlgRDJ8LJ4GIC0DAAI54CA4-JuRgUGheNzdAjokSkKAoHbYvEEokknAANxQRig9MpvleX2Jl1q8U6_UsFR-9x48Ux9E6jB4lAAovjmvEpX8YNQqalNTK6QyCAqlaq8Oq5VS7FTVustjs9gcFsdThhsPg4uROdz6Y8kM9uHwBIhONwviI9ID4mccow4-gAOZwMVRPoVM6MJQoUjxeKcqBzEQQaghFMDRL5wtxxiJuCZ7PRjDis6JYshLpdfk0y5RxLV2tdcV6eL9tBJql-AJBH5mHiRGKXJLAjK1SazNrLmo5BqOZ3Iqm9VODFcjGrTSHTdeIxYo20bba7ND7RCHVonECMUg4iQQGAYDj-qGrzBiAwAVPoICtEoEAQYgu5HO0qQQXAOwJrAACKeCUHwsEiFe4EgGclAAO4AAroPwcC4RBKDspQxYQYhIgQfi2EwKRzhSNRIBfvAf7sjAEGGHYKzvqQKAcAA1igCYwI83CAS8QbvOwuxKDAghyh6ei2tQMB3AQenUr-TwgHKggACyMLkADsjB1LktoAAJVCgVQwFAOBFLwxgaSGdm5AArIwFkgHY4XhUAA&query=previewwindow%3Dtests%26file%3D%2Farray%2Funzip%2Fvanilla.js\",\n  \"lodash/array/without\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegO4QAuAFgPYCuhOUpAJinMQHQBWCyIAxqQHaEx8kIHDgAExQoQAOcRCJr1GTbgFsctUpzg4AxARIVCAHR4QVU0mkKjgo_WUqiAvqLBpSK0QHIFDYl5MTbh44a3RMLFEAXlEAbQAmABpRAEZkpNEAZgBdExgADwsrOCY0GEJyNB5ouyIHQgAKcOxktNF4gEoTEWiAPjicwJ4CosIS5siYie6xKP6E1vTkwZ4QRJAIOAAhCB50LCQwFCg4GCd1ifw6wyuDSiY4KRhOVnZQYP5BRC5eUNER578Wg1YAmUSiMoVKqIAbZRJg0QTGELVJLLJwkxOIbBP6-Rg1MoAR3IEDKDS8TGodD8Xi6PBx1ikUBQuwJMGJpJg5MpADcUKYoMzaUN-KFyfZDF5kg0On0bAiAZxGnjiB0mIRSABRYnHBqKoF08H6hpMlk8NUa7XkXUqulOOlrDbbXb7Q7HU7nECXCWUHB8gXM15Id68T6EIQM2p3awxJoYZJMRPoADmcFlc0RGCYkCg_DQDSIME8GYAhCmSrtOFByLR4AX-CoOnSgr8whhsDUUW0Mis8oVLGNSuVKtUYj7GhNFu06T0M7Fe8N-8UmBMatMeLP5hlu8tcqt1psdns0AdEEcTmd1kwpJDCBAYBhOMGfnwBOHvqDqqIjCBTioID-MLnqc8Jfj-cC7MmsAAIrkKQ_CAaIhBoOQMCgeCP7hKQeAAAroAIcCIZhPKkBAtA_uh34gMS8EwDh7gyERIA3vAD48jAP6YiYICelIKCcAA1igyYwK8vDPh8b7PnsKgwEIKq3PUjq1k8PC1vS95vCAKpCAALEwKQAOxMPEKSOgAAgARiglkwFAOAoXwZhyd8xkpAArEwuk8U4vlOEAA&query=previewwindow%3Dtests%26file%3D%2Farray%2Fwithout%2Fvanilla.js\",\n  \"lodash/array/zip\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegF4QAOOUA9gCYpwAWAdAFYLIgDGpAdgC4xdIg44ABNU6dCcRALKUatNgFsc5Uizg4AxAUIAddhHmFSaToOCCtggL6CwaUvMEByaVWqPdu-RQCusWjAAPQ2M4QQBecyIACgBtRxRHABonACNHAF1kmIBGZIAmTMEYzjRvGGSwFCg4GHSASl0BcIA-IriE5NzBErLCuLT8iqqa9PTdEESQCDgAIQh2dCwkSuqYS0n0TFwtfCJaOEIYFgYmUDYuHk4-c7gTQMOWbnJwot1BIvikwS6e2sS3j4DQR5IarTK6MbsXQ3EwuGgvNAwACO3ggiKijloJAorkcDXYMMEhCgKHmCORqPRmJwADcUHooCS8R4LrcMVovlE6i1TAD7kdOFE4dQ6rROKQAKIoqpRfmPGDkfHvOWC4mk9ii8VS7wy4X4yz4iZTWbzRbLYZrDYYbC7Yh0hkkk5IM4cbi8RCsDi3SKEF5RTbJWhB9AAczg3LCzQBm1o8hQhCiUTpUDKyQg5ACEdaMWTqcEQdoobgsfj_owPM2MXTAXq9RZXnIvhg_iCRk4oQiWlin2SjjSfS6BSyv1BI3xTUjbR732Svz6fa-IJsFtG40m0zmCzQS0QKxq6xAtEIiNEEBgGBYzs9F3dIGAAO0IBq8ggj8Qy9W_3Y70fcHmIdgABFbxSG4N9ulKcoHxATZSAAdwABXQHg4HAx8UBpUh00fL8fxAFFQJgBC7HENCQGPeBzxpGBH10SxxgPQgUBYABrFAQ2bRgOCvc43SuZgFnkGA-GFW0jXIGBDnYCSCTPU4QGFPgABZaGyAB2Wg8myI0AAEUhQFIYCgHBSi4fRhI9DTsgAVloJSQEsRzHKAA&query=previewwindow%3Dtests%26file%3D%2Farray%2Fzip%2Fvanilla.js\",\n  \"lodash/array/zipObject\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegF4QAOA8gEYBWMAxgC45QD2AJinABYB05CyIVDAOxowhSEDhwACNjRqE4iCYxbsO_ALY4mDKnBwBiAiQrUaAHQER1hBmhqTgko2Uq1JAX0lg0DdZIDkyqxs_hYW6swArrAcMAAeNnZwkgC8TkQupgAUANr-KP4ANAGk_gC6xTkAjMUATGUAlBYSqQB8DgEFiJI1Jf7dtR4WIIUgEHAAQhAC6FhIYChQcDDuo-iYuM4mtPgZ2zQccITUXDyg_EIiNGIXcPbxx7QwTKkdKN29pANDAha39kF2K80DAAI6RCAgrL-Dj0ZjBfxNAT_SSEKAoabAsEQqEwnAANxQlig6MRYUud2hW1cNCKkiyDTaDgskkkD2ygLYDQ4NAYAFFwYssuynkwkayRTQsmiMQJubyBZEhZyke4kSMxpNprN5otlqsQOtsLtjDSCUToOjTkhzoJhKJEHxBHd0qbTK8sgBrGBYODFQlQSLwRkpVosyTe30cEFMSJUGBZLIoKhUYqR4oQJhxEPtYDh1nJqg5SNlV4BoNwHKZuJlfOSEE0SJoASSQvh1YONXkiKxmIPWw0ZJpanZPIFYr-UoVSTVOqNZpSUMdfL9HoT0rfdzDUbjKYzNBzRALJYrUYcQgNmgQGAYKg2p2XB0gPMtyRmEDLdQQd_dY_LQrhu-cDTAA5rAACKkQMMIP6SDQaBBgBr7vusDAAO4AAroCIcCwSh-IMJm75Iay77gtBMAYT48h4SAF7wDe-IwO-FhbgIIAGoQyaeigIEwKcgj3hc9rXLwMzqDAYiciamS0BqTAwMcAgKci15nCAnJiAALBwVQAOwcLUVQagAAqQKCkDAUA4AhQhWJJjoGVUACsHBaRx7iee4QA&query=previewwindow%3Dtests%26file%3D%2Farray%2FzipObject%2Fvanilla.js\",\n  \"lodash/collection/every\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAxgeyrFAXCaB2A9DAG4wBOAnoVGgCYCGcAFgHQBWCyI6-2MfJCEKEABM2zYADnEQjajFq3QBbQnTQo4hAMSkKlADr4IKqWnLZRwUfqqiAvqLDk0K0QHIFTZh-PGwAFd8HDx8UQg4ABkGcgBzCgAVZgZ8RIEAChhYFQFsAEprY1FRchhsQPJw7JhcvlEAPgBeUQBGAAZjB398FXpA2FYYAA9zSzhRFrtKDIBtDoAaUQAmdqWAZnaAXSXImPiklLSBfOMRSYbRbHJAmGMQBZBIgCEIfFjKJDAGKDgYB0e6EwMFCBGIZCo4IMrDgUhBHC4qAI_EEiB4BDgVhGcJwMDokyuNzu-GMvExom8LAJZQAjoEIGUMh5WDR6D4PKcQhirFIoAw3tSYHSGTAmSySKloHyOT1-JimdMPEsMoUmpdgMVbKMQdgMpTmPlWNg0ABROk_LLa3F0TklbE6jK8_n4Q3Gs2BC36zkOTkPJ5wV7vKhfH5_AHo4GgojTQgSkyYBgIpBIvh5IRBEK4AgRaKxBLkZKpdL4LI5PKFDXhUrlSrVMv1ZptTr4bok3r9QbYizYCYteZrFYDzZbIYQmZ7POHIsnM5iNWE273R4vN4fEO_f6PVhSMqSCAUcgoZPo1OokCVkqGEB_FQQK-IZyhmALTVXuBvOKwACKgTQ_HvC7Pq-ICxK4ADuAAKsQCHAAFXgwJBoBAdBXi-VZXnSf4wBBrgyHBIA7vAFBkFeXT3OGUgMCgADWDAJAiBDHrwKLYMe7y5EI-pQsGjx0DAcL4HxIT7oiID6kIAAsrCtAA7KwyytH6AACABGDAqdkhA3HwpgwEIcmtAArKwEkgA45nmUAA&query=previewwindow%3Dtests%26file%3D%2Fcollection%2Fevery%2Fvanilla.js\",\n  \"lodash/collection/filter\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAxgeyrFAXCaB2A9JFNjAE6FRoAmAhnABYB0AVgsiOvmT0iIUIACRtmwAHOIkHV6TZugC2hGmhRxCAYhJlyAHXwRF4tOWxDgQnRSEBfK-TSKhAclkNGLgwbABXfDh4-EIQcABCEADmAKL4aL6RjAAUAG50UL4wAJQWBkJC5DDYvuTBaRkwQgB8ALxCAIwADAa23viKtL6wzDAAHiZmcEJ11uRJANr1AEwANEIArHMAHHP1AMyNcwAsWwC6c6ERMXEJjFkGgsNVQpOzDRvbewYgMyCHEPh05ACeSGDpcBgtle6EwMECBGI0F0UNIFGYcHE4LYHFQBF42H43Dg5j6SJwMBowxu01WDyEO12bWx5ncTGJhQAjr4IIUki5mFRaB4XOcAgQcUJxFA6B8GTBmayYOzOWlDJg6Ly2mQcezRi45kkcjVrsA8kI8eDsEk6WdmNg0NFmekkoaCTQ-fk7cbhaL8FlzZbrVATdymHzbHyXm9wh8vr9EP8oIDgVwMFhcJDRoQ5dARSikGieDA-IhwP4IcF3sd4olUulMjk9cECkUSmUK5Vag1mvhWvgDB0aF0YD1-qZsEM6rc5oshCt7psKXtmKMksXYqWzhdhDqSXd1lPKc9Xu9Pj8_gCga9mOJCmIIBRyChM3Hs7mQNX8noQIDFBAX4grEeZvqX3APkiWAAEVfDQMhPyEbByEyX8axfL5HAAdwABS-HM4EghCUjQCAaBfODnxAZlwJgFDHEkLCQDPeAKBSGAXxaZ5Y3EOgUAAazoSJe3YAhb24DFb0-RQYH4U1YV0YMaBgJF8GkgJL1REBTX4LZmHqAB2ZgpnqYMAAEACM6AMmAoEIGCeCMUS8y0-p5mYLYQFsZznKAA&query=previewwindow%3Dtests%26file%3D%2Fcollection%2Ffilter%2Fvanilla.js\",\n  \"lodash/collection/find\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAxgeyrFAXCaB2A9JPgCaFRqkCGcAFgHQBWCyI6-2MnSIhhAAjrZsABziJ-lGvQboAtoVJoUcQgGISpADr4I80WgBO2AcAFaBAXwtG08gQHJptOo926OcUwFc4MIzgBAF4BAG1dATMBPwDEJwAjaiN8GABPRwAaAWoAcxh4gGYANmzqHAgANwKBbCMfGGtMyOjYo3jHMCMYUiyc_PiAFgAGMorq-LBqKH8mlvM2jtEYBITYOD68moBGMdwJ2vrGq2b8AF0PfHkqH1gGGAAPQxMg0K0ACja4bLQQgD4BGgGFsBAAeAQjACUun4_1a_naAm0ICSKXSyLKAwEJT2VRqdQa1l0IEyIAgcAAQhB8Mk0kgpjMYCd2BgsLgCMRqeQtAw4MsUMxWKgCFweIgWfhvAJHvyuKQQvC4olkqkMpiajicuN8UcifhPAQpS56ArugBHHwQbrvRwMChUVyOaH4LymURQajU00wC1WmA2u2Vah6TDUJ2XLjeG1aPrvSFw4AtGUwHDvY10SEMbBoACiFum72TOB6zqiRew73dnvwmezeZ8BfTzqszpJZMp1Np9Om_mZ6EwKfZRC0hCDIY9gqQws43GwvFdMQRr3C80XSscqNVmyxmvK-x1hJOq8WTi6PW3NRGuIODNmR_wUQWCKWKzW8Av8V2Wv38QJx1OFz6lcNx3DKxjYMuXwMB8vzBACQIguCUIwoIcGKoiyKbuiJL9BqpTfniv66lYxKkuSVI0kYdKILeTKkgwojdCIEABEYKBThKopzuKiYPkiID-PIEDIpMPYwKcUTInA1K5LAACKPhoFwImHA0En8ckdgAO4AArJNwcAqci1CVGgEA6CSLTIhaSkwDpdjiEZICMfAATVMiugkfgIDMqI5QANZbIKBAcRwXEcTS8gwLw6acmQbakDAyxkNwKAsUKIDprwgwMNsADsDAAEzbG2AACSQJDAUCEPUnD6NF4oFdsACsDCDD5VidVYQA&query=previewwindow%3Dtests%26file%3D%2Fcollection%2Ffind%2Fvanilla.js\",\n  \"lodash/collection/forEach\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAxgeyrFAXCaB2A9GGgE4CiAhigBaFRoAmlcNAdAFYLIjr7Yx-SEIUIACGtmwAHOIlENmrNugC2hRmhRxCAYhIVqNADr4Iq6WWxjgYg1VpiAvndJpVYgOSKWNT6dM-OGtKUlJKAE8xAF4xAG1PSk8AGi8AIxSvFE8AXQD8eyMAClDwiNSiiAFVVIh8RhgADwBKGIA-G1MxMSCMGDYGAHNK6tr6pubTJ0micWiOyjEABlNRdrE0sQBGVbmOlDEAJlMQZJAIOAAhOtCIpDBKKDgYJzP0TBgcPCJC2mIyBzsODST6cbioAgCISIEANOAoUgQNIwIqeX5-CqteadfDdOEIpEo7xMXyZIpYjrALrdHoEYJiIYAYSMMBitPwcD6AzQg3yNI2MAMMAAgpgiuT1lTcfz2ZzYNzBmyOPBsGwwPhydT-aQYABHACuEB1qLY9BJrE8M350y1YkoYAEpFFUHFFJxMtlXKGbKZLNtNvwtoEwVR3poLAFgh6j1gjFpYU-2CgETJbqlHqaIJwRV68qGzTY2DQAAlKAA3GCXGCCABy2BozI-jAA6lUaEUtqlEpkllaZZnEzm6V6eQWi6WK1Xa_XG7HW_WiocuxlUls-_yB9nc_184WS-XK9X8HWGzGYC220UAMxd7KpQ7r5x9gPU_GI5GosuUMyYJKYyW2kE1i-rQrKxNuCp8jSyJCs6roAdK_IQd6sTKsEaoao-3Q6gaRpEqaX4_lASSPgG_L2o6cESti6YyshPI-jyzKgf6MxBiqoYMeGcCRriKBnnG6AJjgyapghGaNFm2BDhyI6DGO-6TkeJ6zue87tp2Xh_ssWFiJu0n0fJe4Toe06nk26mLsumRrra3T6TJco7qOxkHlOx4zgJlk3lkmQPqx1IBgGpznFcNykHciAPE8LxvBgWC4AQ_yGH8hHQMRYJIBC_CCNgwgANwJNpngrr5ORqgCxQjDANRiHUDQtOJnp5jy1W1fVExTDMazYosKyzOsmw7AN2IHMc-AhRc1z4Lc9yPM8rwgGw0g6lIEAwGEKBZbwkK5cItHGCAzyqBAh2IHY80wMk1KHXAdSDLAACK-poAIZ1iNgpD6ldN0gKUaAAO4AAqhIIcDvYd5ZoBAjCHdd0qHQar0wEDbiyBDIArfAG0VodUwnIt0jUAA1pQgz9FwBDbXwUJ5TwM2qDAwg-KwyWAiFDQguM-AoOt4IgCzNDCAALGwWwAOxsIcWwhQAAmklDIlAhBffw5hMzCktbAArGwwsgE4huG0AA&query=previewwindow%3Dtests%26file%3D%2Fcollection%2FforEach%2Fvanilla.js\",\n  \"lodash/collection/forEachRight\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAxgeyrFAXCaB2A9GGgE4CiAhigBYBKEA5jdoVGgCaVw0B0AVgmQh0-bDDFIQhQgAIW2AA5xEM9lx690AW0Ic0KOIQDEJCtXpMWAHXwRtistlnBZZqrQbNnAXzek0bVkAcnVuGmDbW1E4Z0pSUkoAT1kAXlkAbWDKYIAaEIAjPJCUYIBdKPxtTgBXWF4YAA9HUmw4NLcyD0tvAAp4xKT83ohxbXyIfA4mgEo0gD4XW1lZGIwYXnZGEbGJqdnbHxnbGQXV2QAmE7lUxYLZAEZrs8pZAAZbEFyQCDgAIUm8SSSDAlCgcBgPm-6EwMBweCI7gsXhYxC6yKs2F4cEUcIEQlQBHEkkQIGmcBQpAgBRgvWCSNoxV6c1uS3wK3JlOptNCnHCTJZi2AyxWqwIsVkWwAwhYYB01vUtpVRbIaWYYABBTC9ZlnYXslVi_BwdabNCMDr8eBYsD4ZkilWkGAARxqECddN4bD5PGCxwNKyODtklDA4lIWqgOsFbMNRpNivNHWlsuDQfwwfEsTpW3k3FVMAkqzBsA4YoScOwUCSAr1wZWTVxOF6Co2WxmvGwaAAEpQAG4wP6F_AAOWwNBlsI4AHVRjReg98sFSvkLv6443Ky3xab252e_3B8OxxOSzAZ3Pehcl0V8g914bN83W2bGB2u72B0OJCfJ6XZ-OvQAMxLjk-RvA-gYPumIqclSNJ0n2lB2JgYGyLqrL6iqMTOCmtByukL5KhmAYFuqkbRnWpErERSbpFasS8La9rUbITquu6PJekhKFQDkkGyOmKqhuGFEYUK9bxrudGSuaMr4Wm_qZtaOZJjQ-Y0kWKBnmW6AVjg1a1phklPtg27GtJb77p-R4_uOf7ngB86LiUxRriZzRbrRVkfoe36jvZOlOVeN7FPeHlNmZ3nvgeX7HoFU7BSBIRoRBikium6ZfD8_yAqQwKIKC4KQtCGBYLgBBouYniYoQPHQHx-JIISYgSNgUg4Z01U9CwHT9AkyQTOGlDiDAgoihkvBTQMyRlLwToDqQELMkx6K0DqSFQHs0yNDGWGiqMMCJKNvSbfkM1JJsEiMOOsgALSPPdsiTDt50DUk0FKfgnUXR0WRocEt6uRUJHVBwdQbI2TjtOkDI9WZF3DId4zPfsu1UTRO6JtsyPbQc-DpqcrIoJczysvcTxEDciyvB8-DZb8AL4ECIJghCUIgLwihOtguBHaQKDNSIRJtVI-3WCAELaBAEuIG4bMwLkIoS3AkyMLAACKNRoOIsuyNgpA1IrysgAMaAAO4AArxBIcB6xL_ZoBAHAS0rBoS66OswJbATKPbIDc_AR0DhLhyfBzijUAA1pQjAbIIBBC6IxLtcIzPaDAUhhDwVXdCi7XfNMuL7N9EDwEL2c0FIAAsvAPAA7LwFwPNlAACBSUDSUCEIbYj2JnpKNw8ACsvDVyAPiT5PQA&query=previewwindow%3Dtests%26file%3D%2Fcollection%2FforEachRight%2Fvanilla.js\",\n  \"lodash/collection/includes\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAxgeyrFAXCaB2A9BPilAK4Am8hUalAhnABYB0AVgsiOvtjHyQhChAATNs2AA5xEIuoxat0AW0KU0KOIQDEJMlXgAdfBBVS0AJ2yjgo_RWpxRAX1FhLaFaIDkCpsw-JiYq9OSwrDAAHhbWzgC89qSO8AAUANoAjAA0ogBMuQDMALq5mQCUJiKi8QB8otiW5DAmINkgEHAAQiQMlgCeSGAMUHAwLu3omDA4eEQOhtoLTqxwUjMcXKgE_IKIPARwNtHrODCUNQ1NLfgmvEei_iyXljAAjuQQr6k-rLT0AR8lVIhxsUigDBIL3en2-v0IADcGKZMAwgcE-PBsD9lvAfLlUuUavVgCZRKITjNsU9mOVWNg0ABRD4jVKUs6UYHk9nY8GQ_B0hnM8ismnAlzAtodbq9AZDEZjCYHaazAjEZKLRHI6AQzZIbaYvYgUKUcIwSIxKzYBKiLK5AqiEqsXFwVIVKpiOpXZqtdqdHr4PqDRDDUbjdqsKSvSQQGCWSwofUHQ3YISk_DkowgMYqCBZxDuBUwbJk0RZuAkADmsAAiuQ0Px897i6Ws31PAB3AAKfQEcCbbYRaAglCzJYzZZAHwbMC7nhkA5AUfgcYRLRAJhcrSVUgYKAA1gxK-bOAQk7xdqnuIGVDAhDT1QYnFLqOt8NRSLGtiAaUIACysJkADsrB5JkUoAAIAEYMFBMBQIQTR8GYd77CBmQAKysH-IAuHheFAA&query=previewwindow%3Dtests%26file%3D%2Fcollection%2Fincludes%2Fvanilla.js\",\n  \"lodash/collection/map\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAxgeyrFAXCaB2A9ALYCGADoVGgCalwAWAdAFYLIjr7YzdIiFCAAgbZs5OIkHU6jJumKEaaFHEIBiMuQA6-CMXJoATtiHAhWoQF8hYI2mJCA5DPoMnu3cVoBXWExgAD0MTOCEAXgsKAAoAbQBGABohACZkgGYAXWT8CIA-IVyAKiF0gEpdQXyhWPTkgDZkgE5M3RBEkAg4ACEIfFIjAE8kMFIoOBgrDvRMGBw8Ii0SCiY4cjnWdlQCHj5ETgI4UyD1nBgaCJq6oUahFs98LiOhV0ZLoxgARx8ID-inJhUWhuJwVR6HUzkKCkPrvL4_P4AwgAN1IekwpFBDx4R3-WicyWiZWqwF0QiEJzm2GirwYZSY2DQAFFvmNopSzjQweSOdSoTD8PTGSyfGzaWCrGD2p0en0BsNEKNxpNphgsLgCMtKKj0dDNkhttxeNh-N4aH4YAFgsZsGFIglkmlSpkmFporlwgViqUwVVPVcGs1WvhpV1ev0hiMxhMpiAmOQPmIIDAjEYUAaDka9iBSbkhNoQBNiBAC4hbNGYIkyfnC30AOawACKPjQPFLQmwRh8lerBYG9gA7gAFAa8ODtvvItAQGgFqt5gvfVswIf2CQTkAJ-Ap5EwAu6KxtWPkUgoADWpDrlrYBAzXF2Jo4_WIMH4tK10poMHW-C_j2TWwgLS_AACxMPEADsTApPE0oAAIAEakAhMBQIQXbcPor77FB8QAKxMCBIBWCRJFAA&query=previewwindow%3Dtests%26file%3D%2Fcollection%2Fmap%2Fvanilla.js\",\n  \"lodash/collection/reduce\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAxgeyrFAXCaB2A9AE4wAmArijIVGmQIZwAWAdAFYLIjr7Yx8kIQoQAEzbNgAOcRCLqMWrdAFtCZNCjiEAxKUrUAOvggqpaYtlHBR-qjFEBfUWGJoVogOQKmzT8eMYAA9zSzhWBmJiBgBPUQBeW3J7AAoAbQBGABpRACYAXRyUuAoVHPwASgSAPlESjwBqUXwcgAYK4xEa0QBmAPxg0OxwtAAjdhgcBKSDGBTjUWtRBkRRbNFR1dyclFWMpyyF0RTSEqhsHIA3BigKGByAaxgYqvja4CPFgG4T-ApztLXW4wfKiAA-YOOp3-2EBNzuoMSaXyFQqrCkFBYKSeL0-SWwFGI-CSZ2wR0ch2J1kcxg6RDEbyWngynlWaU8DE8OU8KE8hS8uVZonZoz5TmOEH40VwBFEFjIMGIoggcGaaCsAHMKJEGHwYOQ6SAsiAVQAhCD4SIxJBgG5wGAUngYLAyoh2agkZLUVhwKSTDhcVAEfiCRBO_BwKyDSb8MjTD5UyLRGKrHqUxZjCY4VY2DJsjlcry8_m5fOi0EU4w0_DGXiR0Q-FjTUgARwoEFIKU8rFo9F8njpdasUigDAtzZgbY7c27hGuJkwnLpxn4ka77pghZSr3eR2jOBSjeYaOwaAAom2bil97G6YsbykR2PKqxTxftVBD32WHTHIbjWaFpWjadoOsa6CYDGeBul6NDztAo4BkgQZ6qGICDBYwwRFEsTTJkOQFKwG4pMUpTlDudSlKITQtKI7SdAytR9DWAwhJhIzjDG0wAPKcTgrACNgxAQPAKQ2Csaw5JseQ7HsThosRRy_KSORpDiVzwiCFEJos3zKTCcLAqCEJQn8AJAgieEomiGJYjid66aQBJEiSMLkum1K0gx3Q2MyQrspy3LFtygplmKzgpJKioMK6crEAqSoqmqmratEeoGsYRomnA5qWsQ1qILaUD2o66JObgirECgyHhiG2BCDpoiGCA9oqBAzWrEV9oec1cAWhqsAAIoUOqMAdaIQl3D1IBJmgADuAAKkQCHA43NQwlxoBAZDNdNbajQtbgyGtIBSKciqXGNIBVpljpSAwKAPAwGowAGBA1bwdU1ZaKgwEIR6erMWUKn6-AKvgKAiYGIBHkIAAsrAZAA7KwuQZFlAACowMKMMBQCQFB8KYf1hijGQAKysHDICOLTtNAA&query=previewwindow%3Dtests%26file%3D%2Fcollection%2Freduce%2Fvanilla.js\",\n  \"lodash/collection/reduceRight\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAxgeyrFAXCaB2A9AE4wAmArijAEoQDmAFtoVGmQIZyMB0AVgmQh0-bDFFIQhQgAJm2AA5xE0tp2490AW0Jk0KOIQDEpStTpNsAHXwQtCtMWwzgM01VoNmMgL4ywxGhaMgDkalyMITY2WuwUsDwwAB4OTnAyALxu5B4WzAAUNjIyANpFxaUADAA0MgCMALrV5cUlAEy1AMxNLaUALLUArD34xSPF-WBQHNhi-OS1aNiMMMQAlJkAfP7Ts-LkmgQoM_lLK-vNo6UNNms20lv9Q7UdMp21NfU3-CDVIBBwABCEHwHGIAE8kGAOFA4DAfH90JgYDg8ER3OYvCwMZ5LDw4AoUfxBKgCHNsJIRHBnMlCThyJknjJBi8uh9ao1ovgqc5wtxGaQAI4UCCkfIhHisdgREJ3bkEakyBTTEECmDC0UwcWSgBuHFsmA4sq5Ymp4pxeWwIVq-Q2GW2wHKtJR2HyfMYax42DQAFFhTD8s76WQ5cUg67lRwQZ7vX6KAH3XKfHLfv8gSCwZDENDYfDERgsLgCCQcpjLIQ9QbpsSkKTROIKYgQLFKAlaY5sOksmUriVPo1Lq1Xt1B0zhpcGjwLVj8pNdnMFjIzqs7dspjMF2RDtyTsuLtc5Q97WPWW92V8bKmAcDQRCoTC4QiQDwFKRZhBVsQULXhGSG5JHSuKwQDhLQIGAxB_AfGBR2AuAQXoWAAEUKCWGAIJkbBiAoGDymAsFAgAdwABTBcQ4Aw_CdTQCAyGA2CQGFNDiMCJRKJAV94FWHV0JAGwfEvJ8FA4FAAGsOHoGBiQIH8RHJH9QS0GBJHdEszFxZhUzIGBCXwbTuQ_EkQHdSQ-h4OoAHYeDaOpUwAAQAIw4ByYCgEgKFEOxlKbKy6kGHg-hAHxguCoA&query=previewwindow%3Dtests%26file%3D%2Fcollection%2FreduceRight%2Fvanilla.js\",\n  \"lodash/collection/size\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAxgeyrFAXCaB2A9HBAF4yFRoAmAhnABYB0AVgsiOvtjN0iIUIACBtmwAHOIkFU6jJugC2hamhRxCAYhLkAOvgiLxaAE7YhwITphCAvkLAm0ioQHJZ9Bq_36YAD2MzOCZaExNaAE8hAF4rMhgACgBtAEYAGiEAJgyAZgBdAEp9QRiAPiEcn3x_QOxgtAAjFhgcGLjyBMtaRCF0oQaezLsiomFo8syqmtM6pjhsEwh8AHM26wTXcRgGhtg4VxGS8aEAdn0QNJAIOAAhJdCIpDBaKDgYW0v0TBbcAmJ4_7kOZbFCsdioAg8PiITgEeZCGo_GDUNrAfRCIShcIRHo5NLooSNZo4Qb4_AY-aLFY9E5k2xVLjwjyMNomGAARwArhA2RsmJQaJ4DvpGeZxFBaEtWRzubzXPyAG60AyYWjC_D6HjzDbWVwZBIFMoWAmInAJZkMApMbBoACiXJeCVNPGoIwxzoS4sl-CtNvtnMdFpGthGFyut3uJkeiGer3enwwWF-RGshCVKolYKQEO4vGw_FF7RssQgPBc4wJpZgigUcIWnJwphi0ViAHkmj8hAB-ITt4nYJgAaxgETgCSriitsBW2AYQh6E6Y0-Ws6mARmwSxkTW8WSfWyFUKxTG5UqGuq66CTCJndi6y6PT6Ayyw2PRsm5-mV8pS1Wd93mzbLs8Dqkc5RnPgYbXHc-APE8LxvB8IBMOIbJiBAMBhCg2awrm0IgGi5JCLoIBvIoEAkT0sZvGSGIkSQKywAAipyaA8JRQj1jAtHESAWJoAA7gACqEvBwBxJG0AqaAQNQJE8SRXJsTAQlOJIEkgKh8CYQqMAkfo9KQUh4i0Cgg60MsMBggQOFcFC-YcLBigwPwFqAi5lzUDAWz4F5-AoBh4IgBa_AACxMCkJxMJkKRhgAAg0tANDAUCECYnLcIYLkwlFKQAKxMKFIC2CVJVAA&query=previewwindow%3Dtests%26file%3D%2Fcollection%2Fsize%2Fvanilla.js\",\n  \"lodash/collection/some\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAxgeyrFAXCaB2A9HGgLYyFRoAmAhnABYB0AVgsiOvtjN0iIUIACBtmwAHOIkFU6jJulKFqaFHEIBiEuQA6-CKXFoATtiHAh2mEIC-QsMbJCA5LPoNnevVzhmIcAFEAN14hAF4hfHCAPkihAFIhACZwsIiABi98UhoAV1gmGAAPI1M4cMsyGAAKAG0AZgAaIQAWZoBWAF1m_2DeAEo9QRihbGNcmD0QRpB_ACEIfFpjAE8kMFooOBgbGfRMGBw8IitiKqY4cUPWdlQCHj5ETgJfIWKrnBhqCrGJrJ8zG5GBVjDAAI65CCg6rOJiUGjuZyDfAAoTiKC0RYg8GQ6GwwhBWj6TC0JFZHi-GFWZzNar9EbAPRCN4lQ7YapAhj9JjYNABCGbarvNlfZHM4U4arozH4bm8_m5QWc5E2ZHTWZwBZLVbrTbbXbPA5HAhncgEonQDE3JB3bi8bD8VG9EJRCKu2JRRIpNIZLI5aj5GCFEombDlCINZptIRdC5VarOgZDYRhWK_Sb4dXzRbLNaIDZbHYzJjiUFiCAwYzGFA2552x4gRlRIQ6EDbUgQVuIex6mCNJkttuLADmsAAirk0Dwu6Nxn2B63lo4AO4ABWWvDgM8XQTQEGorf7zdbEKnMFXjkk25ApfglZCrb0NimBvEtBQAGtaMOg2wCLWuAeB0OCWch-E5U0YHVagYCufAYJRCtbhATl-BaJgAEYAHYmCSDD1QAAQAI1oIiYCgQhxm4AwoKeHCMPaJgWhAGxWNYoA&query=previewwindow%3Dtests%26file%3D%2Fcollection%2Fsome%2Fvanilla.js\",\n  \"lodash/date/now\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAJgQwC4wPQDsD2A7tlPunABYB0AVgsiAMb65atIjbYAEFGGABziIupctWYBbbCnyM42AMQFCAHVwRJA_ACcM3YNxXcAvtzA78k7gHIxaSjfXrJZAK6wqMAB7a9cbgBeIyIACgBKdS4ggD5uRW5JaCgIOBhmXBQA7hgoNCEYFG44CFxGGG4MCgqAVQ1vHO1GCnUQABoQVIAhUrQdAE8kMDQoNJMO9Cw8ImnCKjgBdNp6UAy2DA4MuH17SiDuHRgARzcIQ9CbKhIyBwobSLKWbe4BPNL9w5OzmAurgDc0BooHl7s5WPAMBc4FYYDY2twIrEDOpuNxovAUqwALQoVJoABGsCxuB8GCxmIqBCxh22OggjCwKCxAHNSPiRnAUTlfOlIakAHJofmhEmEbgAEUwP1eaFK4XlVAw-AAoicRqFhqMYA9UT5FgyRTAxZKsKEZXKqMyYBgACqaH4KpWqtzq824HXc_WQt3cLHcXYUcKKlVqqChAAMDxMD3anTgPVwfUGiE1YwmUtm2ABQLyyyQqxY6w4rhQHhgXl8ugwAWCJvLKgiUR4gTiCSSwNS6RYWV1eQKRRKZQqVVq9UachauFj3V6AyGHJg4xAVAEh34EBgOh0jHzTELMHYiBAwC5qhAaSSZ8Q5gXbVP59KrJgAEU3PgsFfKjo3DA77hUWefSWIQAAKfQHpySDcIBfz4BAKBnn-AEgCc74wCBlhCJ-Z6rvAm5_DAZ7qCYrRLgIaCMAA1mgVrLCwu5rAeGwMImkgwBwAazLGKAwIsmQHowG4rCAAYcAALFQACMADsVAAEySbGAAC7L4rk2Dfqw9ocLJkkAKxUGJIAmCZJlAA&query=previewwindow%3Dtests%26file%3D%2Fdate%2Fnow%2Fvanilla.js\",\n  \"lodash/function/after\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKMBXAdgYwC4QPboD0AhmNjAE6FR4AmxcAFgHQBWCyImB562SIQoQAEjbNgAOcREJr0mzbgFtCtPJjiEAxKXIUAOughKJeCtmHBhuysIC-wsBTxLhAcjkNGbw4aV1UWGYYAA9TczhhAF5hAApcJXgAGkd0AEpogD5rMkp442TUtMMhLOFMRhhMAGthbEq6-GxIsDNhfwoYYVoYbGJoOEMQJJAIOAAhCHRiCgBPJDBiKDgYOxG0LFwCElyqGwpmOAkqtg5Qbj4YPgELuAswdEiY4ENhYU8mRGFOgEdUCE6sTczGodC8bjSSVewgkUH66C-v3-gOBhAAbsQjFA4RCoeg7L50D04JgKBAAEYwIH7NwpWIZKLZF7oN4AeXJrCq2GCfDJ8FiDzgaWYrQoAFFiBVYrEANrVGCzFKJep0AC6DKZ0LexNJFKp8sVcQ1li1b3evVSprelNFMAlUvpZWZZpdqWiwk5dxF6FixDKxGKLNddkDVsadyBEAsTDwgVo5SWUDqDQewgIUFmjmcrnqXT4jGEUzR6mIWxZmPjcFQ5JWfyuzVpRqdYbetwsNrMMHjMWVjDosQArCkHqGg67HG1YrALBB3QAGADcheEAB5hABGOeLwsAah3GWd47NHc6tFiEEDR_sLeEoWOOAF6WY2Dw4xgAGFE12ACoFOCxABOAA2S9g1At4Q2hSD8UDYZRgmKYZnmRBFmWVZ1gwHB8CIfZ0UxaA4VOJBzh4esbgIO4cj0d18kSOBh3SZsg2ncpY0uCh50JN5OmwVAKBZWJmCEmYAHMhSYl1uAwPQ9y4s0IDAOIpPY4RMhiBJ4APMMeL4lkHkE4SKDE8DryDAl8UJfxaECGBgjCMxmhojT6KKf1dlowoRyGEYxkmaY5gWJYVjWEBmAkHjcEoChMGIrhSOuRAQEPfQQBWJQIBSr5UJWPE3hSuAphE2AAEVUDwchMrqChUBgXLhBSmZnAAdwABRmK5BiQeqQGIYsIFoFK6pSv5ypgFrnCkSqUvC-BKDRGAUsMcyQBCiRJWqYgRNs9gCFii5eH4ThpkSAQPkYHY9DgnpjiJK5MAgeBYrOgQABZmHXAB2ZgACZ1zggABcliEpKBCGqvgCgEL71wHZgXpWuxEbsIA&query=previewwindow%3Dtests%26file%3D%2Ffunction%2Fafter%2Fvanilla.js\",\n  \"lodash/function/ary\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKMBXAdgYwC4QPboD0AhgE4CehUeAJsXABYB0AVgsiJgdjOtkiEKEABA2zYADnERDqdRky4BbQjTyY4hAMRlyAHXQQlEvKWzDgw3cIC-wsKTxLhAcjn0GLgwaW1UsJhgADxMzOGEAXmEAbRcANhcAGlcADiTXAEYABhcAXSYlYgkACl1igDlUJQAjGFImCTI4GABJPmSMgEpOgyFIgD4YuOSUjqzcgxBEkAg4ACEIdF0kMGIoZptptCxcAhIKffImOAkYTFZ2UC4-Xn5ETgI4c2DTnBgaSKGRsYn0A2unsJ3IxPqQYABHVAQMHFFxMKi0DwuHpYR7mCRQYiLUEQqEwuGEABuxEMUExyO8NyesN06WKnQGFgMwmELzO2GKwIYnSY2DwAFFIWtimy3jQUSzRRyMVj0Dy-YLUMKuSibCipjN5otlohVusYJtwBgcPgiLoiSToJiLkgrtxbgIAeZrBFmcJimB0MkyBBsOQGRF-m7ikxQ2QAOZwANB9AslmekNh0iR45QCCYGDFLLe0i-_0onx-AIvUzYcJRWIJZIuNLV7J5ApFUoUCpVWr1RqkZptbAdbq9ESBr7CUbCbK_DWzBZLCgrNYbaYNMHiCB1UiYW0PG58ATAN16EDNJQQA-IezzmCJfeHxbh2AARVQeB4p-E2FIqEv17IjgA7gAFMheDgV8D2IQk8AgGgDyvWNhAPSFnxgf9HCkUCQAkMFmlIQkYAPAwbEmQ1GkwABrYhwxgC4CE3a4eB3DgliUGABC5Q4NRoGBTnQTisFXS4QC5AQABYmAyAB2JgACYMg1AABapiFqKBCA_PgjBY-5JIyABWJhhJAGwjKMoA&query=previewwindow%3Dtests%26file%3D%2Ffunction%2Fary%2Fvanilla.js\",\n  \"lodash/function/before\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKMBXAdgYwC4QPboD0ARjGHgE4yFR4AmAhnABYB0AVgsiJgdjOmxIQhQgAJm2bAAc4iUbUYtWvALaE6eTHEIBiUuSoAddBFXTK2McDEHKMMQF8xYCnlViA5IqbNPJk1V6VFhWGAAPCwpsODEAXjEAClxVeAAaF3QASniAPlsye2SzdMysk1E8sUxmGEwAazFsWqb4GJdKMSCqMToYbAZoOBMQNJAIOAAhCHQGCgBPJDAGKDgYRzG0LFwCEkKqPcMYVjhpOo4uUF5BASFEHgI4KzB0WITgEzExHxZEMSoAI6oCBURKeVg0ei-TxZNKfMTSKCDdB_QHA0HgwgANwYpigSJhcPQjgC6D6cEwFAgpDBdiongyiRycXyH3QXwA8sR2HVsGFBFT4IkXnAsqxDABRBg1RKJADa9Rg8wyqWa9AAuszWfCvuTKdSYIlFcqklrrDqvt9-pkLV86TApTKmVU2Za3Zl4mIeU9xehEgwqgxyuz3Y5g7bWk8wRArCw8CE6NUVlAmi0XmICFB5qmHJAKE8xOgALQARiaJViuMTzQE_36qAo7JrdbgISseDAOe-THbZwoDB26AZppdEa-1wL9sTCVVzHoiQAzBkXuGQ-6rVYqMM1-7DElYFYIJ6AAwAbjER4APGIS8ezxeANQPnKu9eWreeqeJCDBt9OMdiBEZw4MK2SsNgeCTDAADCyYwHQAAqFaJAATL-b5AbyiRbmKEFQYkJboW6YYWiRIZkWRozjFMMxzIsiDLKs6ybBgOD4EQ9rYri0BIhcSBXHwtzCBOVj2p6xSpHAy7ZKOIYHtU8Y3BQJ7wvJW6kl8VDYA27KJKw-lzAA5qKslurwGD8BQT4aZaECdok5lKWI14pPAL4Rh-CQvHpBkUMZRHvvWjYtqRgFMeaO6aUF7LqTuJLkSY8WBMEoRAZYbxJK5UllFU9oSaUK4jGMEzTLMCxLCsawbCArDSFpuAwBQFCYPxDw3IIwivkYIBrKoEDdX8jFrESXzdXAMyGbAACKqB4PwA1NBQqAwCNYjdXMbgAO4AApzAIwxIGtIAMFieAQHQ3Wrd1QJzTA21uLIC3dXV8CNViMDdYlIzVdI0r1AwhnHJwBCtdc_AddwsypMIPzMIc9hUX0ZxkgImAQPArWw8IAAsrAlgA7KwKEllRAACxAMKQUCEEtgglMIhMlgArKw2MgI4HMc0AA&query=previewwindow%3Dtests%26file%3D%2Ffunction%2Fbefore%2Fvanilla.js\",\n  \"lodash/function/bind\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKMBXAdgYwC4QPboD0ARhOgCaFR7kCGcAFgHQBWCyImB2M62SIQoQAEDbNgAOcREOp1GTLgFtC5PJjiEAxKQoAddBCUS8AJ2zDgw3eWEBfYWFN4lwgORz6DNwYNosuATCAOamMDDYABSh4bjowQA0whIYOKi0gegAlJYGwsJh2Kim6CFhEWTBwgDU7nW12AwQcEyocDCmNcmpRRn46AZ2vugAbrSdeMQsMDjCALyWwm0diO5OMORu9sNjncR4GLYLNtHl2EmT0zhJbk1uWcNKNKiwTDAAHibmcPPWBxSRNwAQnuBiE8wAfO4mo4wuQQQYQAkQM0AEJkcYATyQYFoUHadmR_hw_RIZEoNiYcAkM1Y7FAXD4vH4iE4BDgFg-NJwG1-twgsI2CIGWHZFk8jF-YQAjqgIGFAUwqDQvKDRegOckoLQyFKYLL5TBFYQxoYoNq1QYeBzATY3ElIjk5lDgHlhFyZlEJQwskxsHgAKKyvGRD088gPUruz6eyISbVkX3-oPpKCRb2RuyRpEouDo9BYnF4glEnqkmwm2hm7V0pAM7jMgSMzU2X6RMDoJI4d5JJh9_aHACCpmCcCdUI7TBO3d7_f-5GHo8jfjLQRiEVOsUqSRSAXSmRyrqjhWKpXXcSqtS2WwaTRay06tV3aT6BEGO3Gwkunt-VgfqzcdZNm2EVdj-Q5fhOc8LimT0bjuZd0CecgXhgN5PjMbAfmOedARBSNwWdaEBSA4UczRDFTGxRBcXxGBCRAJgJEKXAOlMTA6zZJk-AEI98j0EB2iUCABNWWj2gSN0BLgSpYAARVQPAeFE4RsFMVAYEkqMBPGZwAHcAAVxl4OAVJ0kY8AgcgBK0_iQFlJSYAM5wpDMkBmPgDoRhgAT33QEAGIkWhMAAa1oYI0LYAhOMZHgeI4AslBgARvTJCgc3IGAaQoXhMAgeBOO9AQABYmAARgAdiYAAmMqcwAAWIWhiBgKBCHUvgjGS1kqrKgBWJhioCuwRrsIA&query=previewwindow%3Dtests%26file%3D%2Ffunction%2Fbind%2Fvanilla.js\",\n  \"lodash/function/curry\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKMBXAdgYwC4QPboD0mqATqQJ6FR4AmAhnABYB0AVgsiJgdjOtiQhChAARNs2AA5xEImg2YseAW0K08mOIQDEJchQA66CCql5S2UcFH7KogL6iwpPCtEByBYyYfjxnnQ4K3oAI0xRAF5RAAp6ABpRUMTMAEoogD5RAG0EpJSAXX8sAmDbMlIIGFoo8oM48NTimAAPc0s4ZQqKWrsq2hiARlSYgCYRgGYmojFIrOzBxNHEiaL0Y1b27E6VCxh6UgBzOF6K_qGlyemRTJzF0WXRVea2i22WeigoA-PT8nP7o8psYbnM7ksVmsQPEQBA4AAhCDoA4UJBgT5wGAOGFoLC4AjEbqEgwsOBSGCYdicUCBPgCISBMqbCl8GrRYDGUR1SiIcEPSHxTmiXakfZHWR8oEFQXoLmfb7i3kLCFPaXGBzFRlWbzMWqigCOqAgopiHhY1DoPg80y1oik3yRepghuNMFN5oAbvQTF96Nbinxgqa7BQPIkYukwRzZaJmTgYjqmKkWNg8ABRQ2fGJx1nTLk5mL2-hI5OpjOoLOJ6YOabQ2EIpEotEYrE4jA4fBEEOEL0-75UpA03j8QSIbilKwh2q4iJRoU3WgwSDoGCibBMVfoVAqUIwUiiPBgWNtFnVUQ_bcjuBC2056oAQXF0_bLFg6EO65vE-5_VqMRYAE_HAkZZNGXJcjcEBHvweCoIcTDnqQcEqFe4iMEkMD8HajCYjUorYGQsrrjAQoQWIopwKgUBWIea4bs47b4rKrQUqgTGJHgxGkAA7nCJExmRti8EiqCrvQtC0EihyIYcl4CCcqZ0auUBwtgpGiPhhEyZ0b4fghGTRHetCPsc6lcgA_AxWD_oB4p5uBXK8jZHziuMtx9NUzlAcoBCYPQ2BxK5qT2RqMaaaQsoebQ6qat-YSzrEeTJLYIE5ElhSxUEk5nGe0Qhg0aQvFsnRTnlOUDMMYxXCCszzICkJFW8Ox7EBfyVJ5gLVTMtzKvyqqNR0Hy-k-ZX_B1KrAt1YK9VKxh1nCiLIpQzZQJi2IgCwUj4bge6kJgg7jgII5CGBoiGCAmIqBA528uiq0wDKXLnXAUmwAAiqgnEkUga5IQ9QrnQcrjcQACgc_DXj9gMengEDRdCAMgIaX0g64Mg3WdIBbfAe4et9MXoCA61SPQmAANb0IcMBUgQB20sdXDIihQiJsSy0wou5LoIuWBVNSICJkIAAsLCDAA7CwoyDHWAACoRhDAUCEEhAimDAQgS4MACsLBC0TDgGw4QA&query=previewwindow%3Dtests%26file%3D%2Ffunction%2Fcurry%2Fvanilla.js\",\n  \"lodash/function/curryRight\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKMBXAdgYwC4QPboD0mqATqQJ4BKEA5gBbaFR4AmAhnPQHQBWCyEJgLYY6bEhCFCAAkbYADnETSWHLt2EBbQqzyY4hAMQly1OowA66CFoV5S2GcBmnKNBk4C-MsKTxaMgDkapz0QdbWwuhwTuwARpgyALwyABTsADQy8dmYAJQpAHwyANpZOXkAupFYBLGuZKQQMKwpjWYejBmJ-bUwAB72jnCaTRTtbi2saQDM-WkATAsAjH1EssklpSvZi9mzNejWg8PYo1oOMOyktHCTTdNLB6vr0sVluzL7Mof9Qw5ztx2FAoDc7g9yE8vj95tZ3ltPnsDkcQJkQBA4AAhCDoG4UJBgEFwGBedFoLC4AjEcZdJhucyebhwBQwTB8ASgaKicSSaINU5s0RtVLAawyDqURBI74ozLimSXUjXW7KGWwqry9ASkFg1XSnbI36a6xeWr8pyhLjtZUAR1QEGVaSC3GYbDCQXWFpkCjBuJtMHtjpgztdADd2DZQexPbVRLFnQygtk0oVEWLtTJBTg0lb6PluNg8ABRe0gtLZ4XrCWVtK-9i4gtF0uoct59ZedZojHY3H4wnE0nkjA4fBEBl0wgRqNgjlILkiMQSRBSWTYegwGQEKATVgQMBgGDKrCbvwBGTrzcMxUwddseGyWy-mBaJfsKnazFyPAAdxk4NQV9xHuWhb3uaJMHfMQoNYKJ6icCcLCcVIKSSdMFW9StWgAQVVdpUO4WB0FodcMPgyVpnaNJuBo8E4DTEoMwlCVlWwMhtTowixBI-gZCKVIsNYXC7gVZiZAAfl8EdqNo1VqzEmRpRk4FVWWD4plaZS6MWTQCEg7AMjk-SzUzVj2Io1pTXNciEjQ9IKlyVwGLKBzqmsmIEMeVpIXcJCegKf4zlGa9Ug0mZ5iWV4Hw-Q1ZWNQLAQuK46J8p5YSijYYphFEEpGYFozw0KvJmbLfjeTZtlKv50G7TEcTxSgBygEkyRAbgFFY3Aj1ITB5yERdeRXJiZEsEASS0CBRulIlmpgLUJVGuBcVoWAAEVUDwUQpovUhUDmhVRpufwfwABRuMQ4G2w6wzwCBYLRA6QHtTaYBO_wlCukAOvgI8wxgUarJq1qFHYTAAGt2FAjkCD67klz6vFX0kPMaU6JDu1YGBWXQTGsBaTkQDzSQABZuBWAB2bhFhWbsAAF4gSGAoEIXbxFsGBJEplYAFZuGJkAvEFwWgA&query=previewwindow%3Dtests%26file%3D%2Ffunction%2FcurryRight%2Fvanilla.js\",\n  \"lodash/function/debounce\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKMBXAdgYwC4QPboD0AJjAEZ4aYyFR7ECGcAFgHQBWCyImB2M6bEhCFCAAmbZsABziJRdRi1a8AtiTyY4hAMSkKVGAB10EVdLwAnbGOBj9lLDDEBfMWEt5VYgOSKmzD4mJqr0qLCsMAAeFtZwYgC8YgAUrGkMlgDmcACUiQB89uSO1KnpWbkmogVimMwwmADWYtj1LfDY8WBWYqGWzqTYDNBwJiAANCAQcABCEOgZAJ5IYAxQcDAuk2hYuAQkxYYHBk6scNINHFygvIICQog8BHA2YOjxScAmYmL-LIhifoAR1QEH6yR8rFo9ACPhy42-YmkUGG6ABwNB4MhhAAbgxTFAUXCEegXMF0OwOqxUBsAGIMRowAAqZhgljgyRy5NIcEwlggZBgEIchh84xSeQShS-6B-AHkyJScJFBPz4Mk3rlWN1LABRBh1ZLJADajMW4pFTgAupLpYifjy-QKhWbxZyajKfl7fjBXuh7V7BTqYPrDe6pbYA963okxJSXtr0Jyo64uf7Zd72i8IRAbCxKFBiLU1lAWm1LdQizGCNQxAwbK1nAIi3gwGXnCCIL6WqyxRKPSmfrcXkUTpXYxWhW9xQBGAAMC7Tg_cPWSsBsEFjc4A3GJNwAeMTznd7gDUp7ynsz3snxGSEDT15-ZPTT7jVIYxDxThZqjZs0WX8hWPGdHyfaILhwDV0ByVhsDwGYYAAYRLGBiCAjlQOXCCGmwaDYPgxCUMJNCAHVc2YZIAE4qLA70XCXDNvX4bMfFzMR83CItMBLdtRxKND3FlGtnHrPjmzEVs-M7btcD_PtwztJjM2HGxbwnQ4nGg2cFznRi3x1FJ1z3LddwPI8FzM89L2XB1NMre86KfeNsFYT9v2oID2RmQDWWominPo8k3xctyv3xTzWW83y_2SY89OwmJcPwuCEOQ1D0NZTDAq9HCoLeAi0uI2BiHI1p_JyhjgszFi8KMEAAHcKLrH1P3mTI93QHFNHrfB0HFdjOMLYtCT49TqycAa20bHs_3sPB4HQHwbGkJhRgmfsIyva9VP4wwiySSdtIshdxTsWA2vQTIAWwSxUGcKrXyfQy127TckhPczjysi9I2U69b0c5cX2XUL3Ii5kooAoD_No6rrzyvCCtSoiMowuKcp-RGUsI9KSNKijkgS_7U3hr1aohJrWhai7iHazrup4vZ-r3PNmALbjeJm8bZWwJra2SMSZsFTJ5lMK663QIshbaZscgU20_rfXb1MO-ypxZ-Kztaumrpuu6Hv057V2M96xE-sRD2-s9fu2p9AYfYGye9MHwp_KGfJhmcAFZF2d3KkvymCUbxkr0YAJkxsRseR3HirIwnibfGPg7jjKysogKU0elMKbYtmOZG0tufVqthKcMQqeYHX6bwaRmb3Nt2Iapgi8EkSFYHEmh2eNTS40scNZ007bBrvWWgN0mnoB0vOW3f2fldjzIb_aKvYXLDu-jwOkdToq0ayjHs6cx7nzTR6JimWZ5iWFY1g2LZwCoZnjgE3F8WgFEriQG4-HuYQVbq1jBqKgFoYAonNKPWm9M3CfAYl3H4xk5JsgAJLEERMZIaxAUFdTwIyaq_RsCoEsLKMobkKiKztlgnB3VGSxluvdMmEA2zJAAITIMsGgsQAAybhY9Mg2RJjsTAZCMjZBytQ3BdCkirHWMYZSL5vSYAupYIClA8IcLQUbH4miDocV9Go1AeFFIcXZlxGheDnC8PcFQURFCwEQLAi-EG6BQjEHCDASIMQrCdGAWkch4iahHX8WIyo6BL7TDmAsSwyxECyIfpMVg0hCG4DZJYTAP8nh3EEMIK89UNiqAgPVAE8SYAkh-Pk9qsAACKqA8D8GKRPe65SxD1QyJ4BqAAFDIAh1oAjad1CA6CJiInqiCepMBOmeFkI0-qyT4BshxMYEAJgXwgEfqtJoDBMieM4AQTJtx-A5O4AsP8wg_jMFfoYS-pALhSwEJgLs1wQAXOEAAFlYDOAA7KwcOM5L4AAEyAMEFFAQgd1BCsmED8n2rA3nrJcIilwQA&query=previewwindow%3Dtests%26file%3D%2Ffunction%2Fdebounce%2Fvanilla.js\",\n  \"lodash/function/delay\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKMBXAdgYwC4QPboD0AJjFAIYCehUex5cAFgHQBWCyImB2M62SEIUIACRtmwAHOImG16TZtwC2JPJjiEAxKQqUAOugjLJeAE7YRwEbqoiAviLBm8ykQHJ5DRu8OHldKiwzDAAHqYWcCIAvE7oMQB8NmRUABRg6AA0IgCMAAwF2Z7kvGbuAJSGwokimIwwmADWItj1LfDYUWDmIgFmMMnY5NBwhiCZIBBwAEIQ6ORmlEhg5FBwMPYTaFi4BCQp1LaUzHCSDWwcoNz8fAKIXARwlhlRscCGIiJeTIgi_QCOqAg_VS7mYNDo3gqmQ-IkkFDmvwBQJBYMIADdyEYoBRoYZ7H50KwOsxUOsAGLkRowAAqxhgZjgqUq6EMpDgmDMEAARjBQUd3NlmTV3vERAB5bnEnAhfhc-DpdBwcrMbpmACi5DqqVSAG1qZRskcALrlEWwz7szk8vkGoVm6JJUWfF1fGDPVli128tUwTXa4WOqwW11xGIiYlPVXoZkhz72Flx9pPVL6SaWJh4ILEEToPCWTCrKAtNpHGA57Y4fDxCBgEsDXDKAbECDEdDuSySBijcYiQNOpOWg6Klmhl1hM44EfMbB4aYwADCRfLdKbTLyo9DCcJY94KfcEAzjCzUBzhZx9eSenLTgwVYIIlrl8bAy7cHWxEFfYdA69oaOI47mOEYkuQxCYlgtL0oy0yUKufL5HkOSJn-roTg02DTrO85LjiK70kyyGDiI6FThkKrYYuy7EAA6oejCghQpQVEm25_mx8Ysmx4yTDMcwLEsiArGsGxbHeuxEEcGJYtAFAXEgVw8LcgjXE8V52LEirZC-ZjZMw-kLAA5sqNTrNg8FZph_ZxKk-nMEZyradBKEBMQQQwCE4TmJ04YZDUAEZNkiF5EUTEMix6A8VMszzIsyyrOsmwgMwkj9BIEAMmYmAKQ8Nz8IIzoiGm6zKBAaa_MJ6wwmKxVzIZsAAIqoPmMDlS0ZioDA1WfGmCwuAA7gACgsfA9r8vXongrZpt1RUgICLWDS40htWmqXwAy6KtSA-JjElXZNOQhkeewBA5dcvD5Zw8xNoI3yMPseg8aQZzoKQWAZZcID3YIAAszA5AA7MwABMOQ8QAAty5C8lAhAdfw9KCMDOQAKzML9ID2Nj2NAA&query=previewwindow%3Dtests%26file%3D%2Ffunction%2Fdelay%2Fvanilla.js\",\n  \"lodash/function/flip\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKMBXAdgYwC4QPboD0YUEADoVHgCYCGcAFgHQBWCyImB2M62SIQoQAEDbNjJxEQqnUZMuAW0LU8mOIQDEJcgB10ERWTwAnbMODCdZYQF8rJvIuEByWfQYv9-rujjnrMhhqYQBeK1IyAAoopjjaEwBzOABKMIA-YQTklO90RRpUWCYYAA9jMzgwiPIg6iiXWhcAGlcAIxbXTE6XahdcohFQzIBtXp7u1pcOqaaAXX0QZpAIOAAhCHQEgE8kMFooOBhbZbQsXAJiSKvyJjggzFZ2UF8ePgFff2Eyh54Q8LGfSmk3aPXmeU-5ncjGqJhgAEdUBA4Q0mJQaB5-j4CF8yFBaJtYQikSiXGiAG60AxQfFY9D6Hj-BrWTpRNLDCz6YTfcowHBRaEMFJMbB4ACiiIOUR-fL-A25Mv5eIJ6GFoolqClgoGtgGSxW602Oz2ByOJ3AGBw-CI1kIlOp-KeSBe3F4_EQnBxAUiYS5VktGT9sXiSVSgfQ3O5Z0wwaY2TgTDh5JgJiObIG2L83tqwWq1hicTjofZmXjGfyhWKP1M2Cq4UCwQaTSmMy6PT6AyEGWEgImPVbjRcC3Q-tWGy2Jl2iH2h2OyyYZDh4ggKZMmGdnr4boEwD9uhAR0UEH3iCsppgzT3B82iVgAEVUHgeCfhNgTKgL1eEo4AO4ABQSXg4BffdaHJPAIGofdLwjYR90RJ8YD_RxJBAkBF3gFNk33fRbEWc0yFoTAAGtaESGAngIDdXm3DgtkUGABEFG4yH1agYCCdB2KwFdnhAQUBAAFiYABGAB2JgACYRP1AABNpaDaGAoEId8-EMRiPQkkSAFYmEEkBbCMoygA&query=previewwindow%3Dtests%26file%3D%2Ffunction%2Fflip%2Fvanilla.js\",\n  \"lodash/function/negate\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKMBXAdgYwC4QPboD06MA5gIbYyFR4Am5cAFgHQBWCyImBV62SEIUIACJtmwAHOImG0GzFjwC2hOnkxxCAYhIUqAHXQRlkvACdsI4CL2UYIgL4iw5vMpEByeYyaejRjzocFYQcACiAG4w6CIAvLbxAHyJAKQiAEzxcQkADAHoyvSosCwwAB5mlnDxIgDaAIwANJktAMwtACwtAKwtAGwAuiyQUFTmABR2VBNhUTEAlAtGwsn1zSIdIj2DRiBNIGEAQhDo5OYAnkhg5FBwMI4HaFi4BMRk9u_6MCxwkjCYdicUBBPgCRDcAghEQVf44GB0WqNdq9XboQJQqw-Zi1cwwACOqAgeImnhYNHovk8yywmJEkig5FOuIJRJJZMIkXIxigjOpBSoIVJ0xgnhaEwWa2ARhEMMqAOwE2xTAWLGweHChNuE1hCoRNNlupwEwZTPQqvVmtQ2uVNMcNP2hzgJzOl2ut3uj3AGBw-CIIs53OgjKBSBBvBi4MhwSsIviMpcPuSCYmLDT51IcElcSSCdlAEJnphU-nzJmaRiYyI5tFYgk6ylYuksjk8gUinQSj9YRZsDUEsjWpsur0BsNRuMph8ZjXFjTVjn1ijtmjHcdTucrogbncHgcWJI8RIIDBzOZMGHo2DBNLYiIDCB7soIA_EC4PTAmgmH3BTqRYAAiqgeCGEgIjYOYqCft-IDnG4ADuAAK5wxHAr73rBkR4BAdAPl-d4PoSIEwIhbjSOhD6HvAp7RA-RiOHsXqSOQmAANbkKQPwcAQl6gpGl5nMoMCCMqXz2I6dAwP86CSVgJ7AiAyqCJ0LANAA7CwGQNI6AACABG5B6TAUCEJB_AmMJEIaQ0PQsJ0ICOI5jlAA&query=previewwindow%3Dtests%26file%3D%2Ffunction%2Fnegate%2Fvanilla.js\",\n  \"lodash/function/once\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKMBXAdgYwC4QPboD0BmMhUeAJgIZwAWAdAFYLIiYHYzrZIiGEABHWzYADnEQCKNegw4BbQpTyY4hAMQkYAHXQQFYvACdsg4IO2CAvoLDG8CwQHIZtOs716FVVLAYwAB5GpnCCALx26BEAfJZYMAAUYOgAlHoCsYKYdDCYANaC2LlF8NhhYCaCPsYwgpQw2NTQcHogADQgEHAAQhDo1MYAnkhg1FBwMNadaFi4BMQJi6QMcGJ5zKygHDzcvIjsBHBmKWGRwHqCgm70iIK1AI6oELWJzgzkVO7Oqe2XgmIoM10HdHs9Xu9CAA3aj6KBAn5_dDWLzoBpwTDGCAAIySzm0znagkSqSyF2iggA8timHlsAEeFj4Ml0HBUgxKsYAKLUHKJRIAbXyMCGRO0AF1SeE4uSrld0ZicUlhaLiVKZf85ddGlFUVqrrjOTAeXySWTNfqUhFBLTjhz0IlqFlqOkKVrrK6LVcuMc3hAzPQ8H5KNlxlAiiVZjh8NECFAhvFSIS1ea3fqdsd4vHKQlrdoWZ601rYGZaq0i3LOcSS4IINaAAwAblrggAPIIAIz1pu1gDUvdJsv1WrLefQ2YSiQgruHVxR6C9cqC6xwBYY2DwPRgAGEwzBKAAVAzMjsz2fLulrjdb3fw_cAdX9dES9bPw4vq7L7OvSVfi49FoARSQFAR0XS9P0gwjIgYwTFMMwYNGCzaNCsLQECmxINsnB7HwGZmFYkRWtK5j_DWmB7iGRHjJMZE6mWfjYP8tTYKgxjRIkDBcYMADmbKplqEBgMSACEFF3pQg6LgxUBmERDpcQwvFsou4mwFRRTGKguhpvOI6NGx0QyUxwF6PO3i-P4y4mOU1rEXE-YpK6YHdH0AzDKMNHwSADBiCxuAwMYxiYFhhy7DwfBDjoICTAoEDRXcsGTEiVzRXA_Q8bAACKqB4FwCWadpKWCNFgwOAA7gACoM3CtEgJUgNQUJ4BAlDRcV0VPHlMCVQ4EgFdFfnwIFUK6CAZltNMIBiLy-TUDxMCbAQoU7FwEVsAMCgwHwNx0Ms22dA06xotwmAQPAoW7XwAAsDAdgA7AwABMHZgQAAti1C4lAhBaTwx58I9HYAKwMNdIDWJDkNAA&query=previewwindow%3Dtests%26file%3D%2Ffunction%2Fonce%2Fvanilla.js\",\n  \"lodash/function/overArgs\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKMBXAdgYwC4QPboD0eAbjAE4CC5A5nIVHgCYCGcAFgHQBWCyImAthjpsSEIUIACdtmwAHOIkmNWHToIC2hJnkz0AxKQrU6AHXQRN8vOWxTgU41VpwpAXylhyeTVIDkqmzs_hYWaFi4BFK6qABGsEwAFOgAlA4WUlLkMNio5OhShQBUUgBMFu5h6BE4-IVwAI6oLDkp6cCZ2bn5hSVFldWC6HD2tVIAvE5kLnRJXbVRhUkAHgA0UgCeHV1ZOXkFUgDa61sAul3ua11HTS05G7EJMEwXadUwKzZ2cJyfLNZYABGSZeDCYJIATg2AGZUhZJJMAHzHAAcQI2ADY3hZPt9sL9_oCYGVQbUkkCAAwbACs8KI0gmKKOVOpUipbxAaxAEDgACEIOhWpskGAWFA4DAruBwUtiDNTPRnIrOHB5DBMDw-KBhsJROJhqMpHiNcImKDOoVjSsAfJgYg0RipNjrlaiXaSQ6WZS2RzXVV0BZDfYghxQTlmhA2v5OAxmMF_PTg1I7SxBeGYJHo7GSCxLFAoCxE9VhKMkv5la5_BskukmRk3V9TUlQ-xUpxsHgAKLNcVJE04F70rID7BJVOC9udnstKAt-Mcenuelcnn8wXC0XiyXSxb1eUmVyEXP5wtapA6oQiMSIAQEI2VuiTLpJMDoDZ4RR1pEvzh_1p0N-DZZFkyaaCw8jqkwiqggBvzgfISRJABGwQEBSSfnARwQGcUgAPxOIo2FnMhtDpA6AGpMOIH7L0XjoEkf6cAhUGKtRAbhLK9QxHg8SJO0wHdAcfRSKUFToBxNRcdEdytDAAmWnsPSHP0gYSUM95jOCoKPnA8xWnu0SrBs2yCUpwnHKcmxvFkVw3LJDw8XxLxvPSuJfLYBJ_DaxIglM5LQlIcIIoyzLoliOLoHinmEj5Hqkv54IUmydIhcixyshsHIWKuvICkK5AiogYoSlK3KcPI-y4BQ5CYBed6iNe4iKVIZggJKmgQG1DolZKrpZG1cCCjQsAAIqoHgwjdVI2DkKgMD9a1ICtD4ADuAAKckjNNbUsCQeAQEwbWLW1zSTTA60-IoO0gJV8AUGQbWDOgIDSvILCYAA1iwNAwFqBD1bqTX8EKmgwOIrYHrMCDckwMDqugcNYBA8D1a24gACycECADsnBlECq4AAJxCwcQwFAhBzaIVjg7eeNAjSnAY697hs-4QA&query=previewwindow%3Dtests%26file%3D%2Ffunction%2FoverArgs%2Fvanilla.js\",\n  \"lodash/function/partial\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKMBXAdgYwC4QPboD0ADgIYBOupUhUeAJqXABYB0AVgsiJgdjOmxIQhQgAJm2bMTiJRdRi1a8AtoXp5McQgGIylCNQA66CCuJ5KY4GP1UoYgL5iw5PCrEByBU2aeTJrzocNhiAObkMDChALxiABQRUbjoYQA0YuikKjAAlGIxAHxiAAYAJMBJ0RCpzhVZOY4lAVgEIWJwpACeABIwUHQAKngFthT2iZHRGZ7M_XSeuSYqDKiwrDAAHhaUcKOdvfN4w_GerjD0iyaiBcWzRy6RlyYgaSAQcABCNRRdSGDUOAwRxvNBYXAEEjjQw0Oww1hwYgwTAcLigIL8QTCILtLZInAXUb3AYjc7PdCBNqhHwsUaRACOqAgkVOrFoDF8V1awVCxCgpBqdJgjOZMFZhAAbqRTANSFyTPwQqc4dRPBl4vkitYTGIxHjkdh4jTmLlWNg8ABRRnUeL6gn0JboXV2w18gXoU3mq2oG3Gx2OR2vd5fH7kP6IAFQIEg8AYHD4IgqmhSmX81FIdF8ARCRA8KljAzUAo6hJgzAZViVihhOCawol-KV1hoShzcgAQXINbrJd1ZcbVa7cArlZb2Dbne7LRxoSqsQSc5q6Uy2Tyt1KFUXtTE9VXTWn-YOfRJw1GScmyRmcxJXJW9DWMA220s2D2cSPRxOZyeXJuWuJdCPBc_joEGHzfFkYb_ICwJvKwxCRFIEAwOQ5CYBmeaCNmwjACWRggECKgQPhiAuDBaR4QRS6wAAiqgeD8CRYjYOQqAwBRTpiPhFBuAA7gAChQAhwEx3ESngED0PhHG6vhjIMTA_FuDIokgAh8AoRKMD4SYjgvDGZCYAA1qQYSPpwBAYRi2HcA0MDCMaUKFlAQb0DASLoG5WDIWiIDGsIAAsrAAIwAOysAATMFQYAAIAEakHF_SEKxghmPZubhcFACsrABSAjiFYVQA&query=previewwindow%3Dtests%26file%3D%2Ffunction%2Fpartial%2Fvanilla.js\",\n  \"lodash/function/partialRight\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKMBXAdgYwC4QPboD0ADgIYBOupUAShAOYAW2hUeAJqXIwHQBWCZCEwFsMdNiQhChAATNsxOIhltO3HiIC2hdnkxxCAYjKUI1Ok2wAddBC3E8lWcFmmqtBs1kBfWWHI8LVkAcjUuRhDbWxF0OGxZenIYGASAXlkACiSU3HR6ABpZdFItGABKWTSAPlkAAwASYBzUiHy_JpKynzrorAJ4xOTUgDFk9iq3Cg9LZmzh7CKQgJh2EPLbLQ5UWB4YAA9HSjhJluwx1cyQxgh12xkq2uuIf3Go9BACkAg4ACE2igATyQYGocBgPi-aCwuAIJGm5k8VnhZgsXmwPDgxBgmH4glAsTEEiksUGB2xOFWk2er1W7xiAwS4W4k2SAEdUBBklceKwOBE7v04gliFBSG1WTAOVyYDzCAA3Uh2KBiwW2MTxK7uRGzbAhIqZSo1Fy2WSyck47CZZmMco8bB4ACiHOomQtlPYG3QZvdVtF4vQdodztQrptXp8Xs-3z-APIwMQoKg4Mh4AwOHwRG1aORiuVYrxSAJonEkkQwkZU1RSO8aVNWWhmCKPBbmFImEYqwAguR6HAjdV65kWzwKH2B_WzY3hy2x3Bm632532D3x31SQkzpN5rk2oViqUKo96k0znuOsAuhDeugGcKhrkLhMMtma1azksVmsvVt2DsYHshxONgJwZGcT5XDcgoPMaNJfu80Y_P8JTxiCYIQl8PDEMk2C4DA5DkJgRYVhIpZSMA9bWCA4JaBAVGIP46EFJR1F7rAACKqB4GI9GyNg5CoDAzHerIVEUIEADuAAKFDiHAvFifKeAQOwVHCWaVEctxMBSYESgKSA2HwPh8owFRtg-LYICpmQmAANakPQAECAQxGEmRQhXlINoojM6LRuwMDYuggVYBA8DETaUgACw8AAjAA7DwABMcXRgAAgARqQmUwFAhACRI9gwFISVxQArDw0XWT4tU-EAA&query=previewwindow%3Dtests%26file%3D%2Ffunction%2FpartialRight%2Fvanilla.js\",\n  \"lodash/function/rearg\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKMBXAdgYwC4QPboD0ATjAIbEDmhUeAJmXABYB0AVgsiJgdjOtiQhChAARNs2AA5xEI2g2YseAW0J08mOIQDEpCpQA66CCql5i2UcFH6qogL6iwxPCtEByBYyYfjxnnQ4KztKGDpRAF5bcioACjiyABpRACMUzABKKIA-UQBtZLSMgF0U_IAmFIAGFIBGEsz_dBV6VFgWGAAPc0s4KJiDcLiPVI8Uj0xxzzIPJqIxSLz8j1mJsYmpkuMQJJAIOAAhCHQKAE8kMDIoOBgHPbQsXAISWOpQljgpGEx2TlBAnwBEJAsFRN1vjhwgMVmtPBtPFtmqCrN5mANSABHVAQUgjFg0eg-OYBAhgqRQMgnDEwbG4mD4wgANzIJiglJJ6GMfGCI1C0zi2SW1mMonBPR-2DiaKYmRY2DwAFFsdc4hDJeF5mL1Tg4hSqeg5QrlahVTL5g55rt9kcTudLtdbvdwBgcPgiKFmazoJS_kgAbx-IJENwySE3lFRaI4o9MCkLHQYMQhTko3EWBmDHAUyL0GKxSjBlR-tEE0mWCoyFI4hA6F1cqIs_la11GlGxaRsKhiHnY-mM6Fs1GHMiw0WwhFoqEEkV0qIsg3Cik55gygUqqJaqIGvNjK06O0YJ0ehZsCXx8NRtNJtfZvMRIvVteETftuhrQdjqdiBdEFcbncewsFIna4EmxCYP6oYCEGQjAFGhggLcKgQIhiDOI6MBJAhSEnJQsAAIqoHgfBoaI2DEKgWE4RQrgAO4AAoUPwcBkYhZBMngtaIdheaiIh2IkTADGuDIbEgCB8BJkyMCIcYI7vs6UhkJgADWZBhH8BBQYCsFcKcKgwEIMqvAY1qJt86CJlgEDwFBMpCAALCwdQAOwsBUdTWgAAqkZCpDAUAkBguCGUI7l1AArCwjkgA48XxUAA&query=previewwindow%3Dtests%26file%3D%2Ffunction%2Frearg%2Fvanilla.js\",\n  \"lodash/function/unary\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKMBXAdgYwC4QPboD0GAhgE4CehUeAJiXABYB0AVgsiJgdjOtkhCFCAAkbZsABziJhNek2bcAtoVp5McQgGJSlADroIyyXjLYRwEXooiAviLBk8ykQHJ5DRm8OHldVFhmGAAPU3M4EQBeEQBtNwA2NwAadwAOFPcARgAGNwBdZmUSSQAKG1KAOVRlACMYMmZJcjgYAEl-AEpOw2FogD44hNS01Nz8wxBkkAg4ACEIdHIKJDASKFa7abQsXAJiJcoD5eY4SRhMNg5Qbn4-AUQuAjgLUPOcGFpooZGxnIn0IZbi8RJ4mN8yDAAI6oCCQ0puZjUOheNw9LDPCySKAkRYQ6Gw-GIwgANxIRigOLRvjuLwRNkypU6A0shhEIjeF2wpTBjE6zGweAAojD1qVOR9aOj2RLudjceh-YKRagxbz0XZ0VMZvNFstVutNtsMDh8EQbKTydAcVckDcePdBMCLDZvmB0CzyABzFnu0re9F-AJBN5mbCRGLxJKpNwZGO5ApFErlQ4UKo1eqNZpkVodbDdXqiKKDWLDESjETjSbTWYLVMGjYwLYgJqQiQQBpkTB2p53fiCYBskT6ECtZQQEeIRyGmDJIcjuCLL2wACKqDwvEnImwZFQs_nIHIzgA7gAFch8OBbkckEl4CC0Edzj3DkAwjcwU_OaTXkCSSGtGQJIwCOhh2JMzbNJgADWJBejAVwED2ty8P2nBLMoMCCLyxyUNqtAwOc6AEVgHbXCAvKCAALMwWQAOzMAATFk2oAAK1CQ9RQIQu78MYWGPAxWQAKzMFRIB2JJklAA&query=previewwindow%3Dtests%26file%3D%2Ffunction%2Funary%2Fvanilla.js\",\n  \"lodash/function/wrap\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKMBXAdgYwC4QPboD0A7gE4CGADoVHgCblwAWAdAFYLIiYHYzrYkIQoQAETbNkpxEI2g2YseAW0J08mOIQDEZKgB10EZZTylso4KL2VRAX1FhSeZaIDk8xkzeHDPdHAWcKjKAEyiALzWFJQAFKEANKKx5EkARkmYAJSRAHyWhqKipDDYqKToouSiANSiabWimIZ2Wb7oyvSosCwwAB6m5nCRosFhsQCMSaFtRGIR-QCshiAJIBBwAEIQ6OSkAJ5IYORQcDB2a2hYuAQkMXdULHCUMJjsnKD-fAJC_oGi_ReOBgdBGy3QfgI_08zBGJQAjqgICVYm4WDR6F43LM_hZKFByDs4TBEciYKj0QA3chGKAE7HtPiBVE2NxJWI5BYFSoAgavbCxGFMLIsbB4ACiiJOsUB_JBsyKspwsXxhPQIrFktQ0qFs1aKzWG22uwORxOZwu4AwOHwRBshGptIJ7yQn14_EEiG4UIsNkihWS1KgqBgSSu2TyAdiLBjewA5nBObkA0Vw7EgyGkjGWPHE-1caMQuEojZ4uzUvVMknuUUSmUKlVGg06s10PqIR0uj1AWZsMMomNQpNprMRHlRODVustjs9odEMdTuc1ixKHXcDBSKRMK7vQIPUJgAH9CAzsoICfEI5zaHj6ednHYABFVB4PiX0TYUiZu97ZzEAAFPZ-DgD8T3ISk8AgOgTwSO9ETfGAAOcaQwJANd4E3SkYBPFoVktShyEwABrcg4xgd4CF3L4Dy4XZlBgIQhQeSgpzoGAXnQdisAgeBdyFIQABYWAmAB2FhQgmKcAAE0nINIYCgQhvwEYxGK9cSJkWFhBJAOx9P0oA&query=previewwindow%3Dtests%26file%3D%2Ffunction%2Fwrap%2Fvanilla.js\",\n  \"lodash/lang/castArray\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQGNVwAuAggE6moCe2UA9gCYEAWAdAFYLIi63qEx8kIbNgAETQoQAOcRCLqM4rHgFts9WrjjYAxPiJkKlADroIKqbVKFRwUfpLkqogL6iwpWitEByBcx9TUxgAD0trOBZ0AFdvAF57AkcjAAoARgBKUxFROIA-UQBtNIBdIPRQ8MJI2gAjNlzEgydKFLtURFE01yz0HPyiux9UH07ulzL0YLCrapYiUkaHQyoU4drcH17-gsL1zcnpqsiYqCglpJXW06htsQHCm8OKmYiWaPR6GEgK-gvm1IfL4_GD0O65XZA74QX7PSqzSIwCyESj_ZKrcEPZ48dBEUSoFqNYoAGlEACZSQBmSbwt4EowAUQAjtFUFAICi0VcUvSqBlcnEEryTH17gVCKRojBTCBiSAIHAAEIwgmUJBgNlwGAuOVoLB4S4tA0AqjzKQwXDsTigHH8QSIbi8PGVC38P4JYCmUSiGIqTrFErEr2iOpsf3tMauQPBhb-_Y-aPob03f1PINJ0RQkH0f1ZmGgxPepFSFH-wv4lrM1ns0uiCVS9Muco4vH-JSNUgwFkQTtrFg0BgBXotmxSNAwjtd6I9mB97AANww0DQW3K_CIa2WLR8pJS_IGnozLtwhBSbaYGRYhFoVbZKWPbt6RbCrpSY9QMMv19vUDPg6UvQuL0srykqKqkGqiAalAWo6iAeo4FuRgLkuZyoFaSA2rwdqEEII5NOiqIJCkLCkQSmBwPuBQ8qQFGFAADCUogwkQGC4DAtBgKIVyiAA_BWdGMaInTkZR5S0nMvpci06SYrspTia8cyhtJqQRl0PTZGKgy-CMkYTIpxzzBKqmrPGclFPGcJKSc0RnKZ1x2bcWkQkUTyGQi7yfNCvwOSkea_BZhQBQWHlvMWnIJEhGIuVizZOjYwpEmkpIUqI1JHJ5wo_hyREEdywr7oKFZGLF4qStK6AgQqyroKq6qatqcosFInaSBAMDkLgmGOnwAi4Q6h7esYIBaioEAjZ00Faumw2jTCmCwAAitEtD8JNdYVbNogjfStAAO4AAoEgIcAbbt860BA9AjdtI0smtMCHZ4MjnSArXwJ187SiAphNlVcFSKguAANaoJgMBWrwPW2v1PV1SoMBCOexqESBXzmt56C4B11rwf-TBCAALCwaQAOwsGSaQgQAArUqC1DAUDYJKfDmEjDoU2kACsLBEyALiC4LQA&query=previewwindow%3Dtests%26file%3D%2Flang%2FcastArray%2Fvanilla.js\",\n  \"lodash/lang/conformsTo\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQGMD26Y-ATgLZwAq-2U-AJqnABYB0AVgsiAegC4x-SENmwACZnz4AHOIlF1GLVgTLZ6-XHGwBiXsXJV8AHXQQy00nzHAx-0hWpiAvmLAl8ZMQHJFTZt6mprxw1vgARuwwuNYAvDZiqIhiAIwANGLhyQBMLkHoMAAeliR8cKxwuIKoJBD4KWLx9obUABQRUTEZwKZimcnojQB8YoMj6abOAJSmosNifCQArjD5RSVlFVXoNXW5TYQGjvjtkdF83b39o_NjYtlpkzPoc7EjYKhQcKvoIGkgEDgACEIDsSABPJAfL4wZz_NBYPCHBxGJFEFHUCrSaIcLigXgCISIHiEUJidbnGD0Ro2K6Vaq1erJRYrR6DMT0sF7ZLQ75s5z5ELWPwsGkkGAARyWEHFrW8rFoDH83meQrE0jQoLFkulsvl2AAbhhoGgVfkBKE5c1jt4Mq0pvMeuyKTFWiLmFNWHx8ABRKWfVougT0Z59IOtDWoUGe71-pYB93PaamP4A4GgmqQxC82HwjA4a2oo1mKBoXFIfGEQl8YRqwtOeKndgZZawADKMD4DreVwA8mcYqwANYwcFwVqtmAdrusGAGmAQ1oj8HzSfTgDay4Auk3N6Ot1NnsFSWEB3EEklUhksvc8uhTOsrOVObt6jT6ycOudLuyb4M3jc4z8s8rwjCyPwPsUT5bAyezvsiLSfmeP59H-txiCMDxPLM4gATmKb_ICIJglmOZwiArDSOKUgQAuJC4BWJL8IINbEk6fTGCA3xkBAnE8p8fJXJxcCgpgsAAIpLPgAh8QsywwGyHEgDUHgAO4AAo1IIcCyZxqAGvgED0JxiliJxUrSTA6keLIukgFR8ALvOnGTCm5HSKguBDqgmAwLihCMQSLGMTsZAwMI7pokcRipvQMDYugcXoLgtF4iA7rCAALKwKQAOysNkKSpgAAuEqDhDAUDYMs_DmOFxL5SkACsrCZSAzgdR1QA&query=previewwindow%3Dtests%26file%3D%2Flang%2FconformsTo%2Fvanilla.js\",\n  \"lodash/lang/gt\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPSYC7ZQD2AJqnABYB0AVgsiAMZHp4ytIjbYAEFeeAA5xE3YmUpVmAW2wkijONgDE-ADroI0wUQBOeHsB74eAXx5hdRaTwDk48hVsaNMAB479cKpl0xUbLoAKhQYPAC8xngAFADMADQ8AIwAlBrcEQB8PHi6AK4wLujunnjeMACOeahQQUQRUXGJsWnoGeHZYDVwheiuHnplVLBwcCFhkfjRSc2t7Z3dvSDxIBBwAEIQ6Ki6AJ5IXVA9pitoWLgE-FRwgjCMtPSgzKzseJzPcAYld2wkDcAaHjGPwBGDBULoRA5fIweKAniVaq1IhQw49OHoIEjMYQ1GLDGmIofAwOSgNPxVCB-aK2KiEUiOWytYk8QRoLbkxFUmA0ukANww0DQTKKbE-NPwtkS0RSWUM8O-jBipIoKSoeCIAFEqjVoorfq0gfromzUFs1RrtUjoirWqZWstVhstjt9og0TATiAzjh8NgBZooGgHkgniw2BxEEwWJ8og1oqhEgAjWUdHioHjZJNFEqDby-fyBcaYyYxBLJOa8NO5Ao5gZeKiImp1BpTcstdJVhZHXr9UrebHF1sxGY8DttLsWRYaR1rTbbPYHRZeqiCPwCCBg3SMUPRl6RkAAzE8NQgHrSCCnvE9jFA09wLaYWAARTyRDYV-hBVvJ5AOysADuAAKOzsHAn6nqgfJEBAJCnj-p5VO-MBAVYwgQSAa7wGCfKFCAGiEugIBeoIqCMAA1qgmAwA8LC7s8EZvAw2zSDAnAqhcjokDAtzoNx6CMJujzegylCcAALFQSQAOxUAATEkjoAAJJqgSYwFA2D5KwWhsVGslJAArFQ4nEaY5mmEAA&query=previewwindow%3Dtests%26file%3D%2Flang%2Fgt%2Fvanilla.js\",\n  \"lodash/lang/gte\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPSYC4zZQD2AJqnABYB0AVgsiAMbHoFtIjbYAEleeAA5xE3EuSrUWAW2yliTONgDE-GAB10EaYOIAnPD2A81PAL48we4tJ4BycRUp3NmmAA9dBuNUx6YqAR6ACqUGDwAvCYEABQAzAA0PACMAJSa3JEAfDx4egCuGuhunvp4PjAAjvmoUMHEkdEw8Ulx6eiZETl5ha7oHl7l1LBwcKHhUWoxya3tnTlgtXBFIAkgEHAAQhDoqHoAnkiLUMtma2hYuARXMNRwgjBMdAygLGwwHIjMrHCGA48EUiNYCaHgmfyBGAhMLoRC5AowBKgnhVGp1YhwnqI5EjMYwuHHZZI9BmPpvX48RxURr-aoQfwxOzUIhkJx2drkwyCNA7Gmo-nNJnYABuGGgaHZfQIv0ZajsSRiqWyRmR_yYeBiVMoqWoeGIAFFqrUYmrAe0waaYtzUDsdXrDWjNayqO0zO1Vustjs9odEISYGcQBccGoRWKoGhnkhXqx2HhOJymo0YqgkgAjJVdHioHhZKJpvoDMo-PwBILjdCNKaJFJzXhZrGF0reaio2r1KuxGttDL17oIpuDHy4iud5ozHg9jp9yxLFZrDbbXYHI5zwPUQT-AQQKF6JjR77vT4gEGVnjqEDLaQQC8EufEsEXuA7TCwACK-WIBFv8MKD_PIB7NYADuAAKewfHAP4XqgwrEBApAXv-F7VF-MCgdYwjQSAm7wFCwoaCAmikugICBoIqBMAA1qgmC3PQrAHm8cYHrs0gwJwWo3B6pAwA86C8egTA7i8QbOpQnAACzUMkADs1AAEzJB6AACaaoGmMBQNgBRsNoHFfPJyQAKzUJJZFmJZZhAA&query=previewwindow%3Dtests%26file%3D%2Flang%2Fgte%2Fvanilla.js\",\n  \"lodash/lang/isArray\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgQQCdDUBPbKAewBNU4ALAOgCsFkQBjS9AFxl6Qhs2AAT0ePAA5xEwqrQaMuAW2zVKHONgDEeIiVIAddBGWTKhHiOAi9xMiIC-IsIUrKRAcnl16n48YwAB7mlnCMqPakIgC8tgRRABQA2gCMADQiAEyZAMwAugCUxsKxAHwiPIQArjAB6MGhPOHqygD6AEY0pG0c9NDUhPyx8fpkieoc1cr8PIxd1KRK_VCD_MXopTEVYKhQcHXogSEWzYxwVRBYI3YGiZ6oHRyeG1s7ewfGIOkgeABCV0ipCQu32MEcPzQWFwCQMMLGSzgkhgHBYbFAXF4s0EmIuIkaKL41BGwGMIhEkQMiEqNRg6TJIlanW6vRWa3Q1NBB3p6HJF0IV0wnI-dOMjnquKsPgYIyGAEdqhAhvdGBQaL4XsZJSJJGgrrKYAqlTAVdgAG4YaBoTVHLEXe63MieTKJQrlawMgkcHiJaX0QqMHiUACiCr2iS9RI25MjiV1qCuAaDoeq4b9G0cG2-vzgAPQQJBIohIChOEd5AtJigaDRSAx3D4AkQIEap3ClIccQRjHLKQy2TyRRKom2NNq9VbYUYTIWPT6AyGvK7UR7sPGk2ms3m3WWC_Ww_dXMOxya4X5gpG3d7DyeNreLhFXx-_0BhGBiCPxcYkiGEggMGIDg604BtsWbUleREQwQAOZQIGg4UwR5cloLgQVYAARWqSg-AQsdRUg6DKUoAB3AAFSJ-DgPCiLNSgIGoaDkKgkAFRwmAyLcaQaJAH94AAs06hAMUvmLSRUA4ABrVBMBgNFuGAzFGx4YD8xmQQ_XhKJs2oGBkXQXT0A4f90RLdUGEEAAWRhUgAdkYLJUmzAABDpHhgKBsBqXhTBgQR7NSABWRhLJARxwvCoA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisArray%2Fvanilla.js\",\n  \"lodash/lang/isBoolean\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgIQHtDYNspCATVOACwDoArBZEAY0PQBcZukRs2AAS0uXAA5xEgitTr0OAW2yVCbONgDEeIiRgYAOugiLxhAE5chwITuKl0QgL5Cw5woqEByWTVpejIxgADzNLOHoucwBXGCEAXlsCe310AAowVCg4GABKI0EEgD4hKNjA9BCwrgjM7LjEuz0MNPRoqCh89EL4krqcoxAAGhAdCHRUcwBPJH6YJxG0LFxk5u6mh3o4cRg2JhZQDm5eLn4juCsq3Z5KBOsjIVKYmEQn2KGH1yyc17mP9CcFXOVl8dDu5hgAEdohAIWkvPRyFQ_F4usChOI0ONwVCYXCEdgAG4YaBoVEVHgXeEbVJeIZCNK5Yr3RxCK5sLhpUG0XKRQgAUWhWTS7JuXUeorSmNQ415XAFQqgXORdC6Ti6w1GBHGkxmiDmCxASxwNLIxOMHVQ-yQh04PD4iHYnAuSV0Djuk0wzM9CXiiQAhP7PRUqhYapFnndTek5l0eiUyjAQ6Ew7Vvg1XSkWm0OnHhL0vvVBiMxhNprN04b6OIIWIIDBzOY2DanccHSBgJ8DCAcooIN3fun_o9u3BxphYABFaKEHgDt4wYdCbuTdwAdwACpNeHB5yvCYQIJRu0vu9DZzAN-5JHuQDX4A3CUmQEZAegQIbxKg2ABrVCYGB9k4FsjntU5WAmRQYH4bkVjdVJNUoGAdnQJD0DYesDiNFVaH4AAWegAEYAHZ6AAJkIzUAAEACNUBomAoGwGJuBMaDHVIwiAFZ6Dwj8nAEpwgA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisBoolean%2Fvanilla.js\",\n  \"lodash/lang/isDate\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgEVQBcZsoB7AE1TgAsA6AKwWRAGNz0SukRtsABLSJEADnET8K1OvQ4BbbJXJs42AMR5CJADroI80eQBORAcAFbiMAQF8BYY-XkCA5NJq1XevTAAeRqZw9ETGAK42ALyWBNYAFOgwAO4C2jBxAJQZevwCkQB8AqERPokBJkTBYKhQcFExaXGuALKcAgCCosbQAgBMAMx9AAwAjL2u2ei5BQ41dXogADQgeABCEOioxgCeSNW1MLbLaFi4sSRnafRwojBsTCygHFwwPIjsnHBm_rdsJJR5cx6ARFcIwRCgiKLYGzA4Q_Z1aHoWylZ5fAQeOiA4wwACOYQgOKa9DIVE8Ez0aLMojQG2xeIJRNcJIAbhhoGgKeg9CQvk0rCRXIsBJk8oVgDCfnciHFMbQMiFyABRfE1OJSv4wSiTEEamU01AbBVEZWqqCysl0Sa2SZLFZwdabHZ7OaHY4YHAC0hs_RQNAPJBPTjcIi8KkNayAgEzAEbL4YNgwchgVKRgBkaYEAEI8AA5VC5uLa0o_CrBYr1L0JZKpkiZSbTQoVkvlIL0BGV87pFptTrdKB9Qa9UbjBuCGYdhbLNYbLa7RAdo4gehdGAiCAwYzGNiBj4vN4gCXoEE6EB1eQQU_w11Ik9njaYWAARTC5F0SEhMFvAlPWycSQABS2V44CvH8QFQFlyAgShT2_U98TfGAAKccQwNPVc6mMFkYFPPQUXQEAl1EVA2AAa1QTAYAeThd2eENd02eQYF4OVLmsO1KBgW50C49A2A3R4QDlXgABZ6BGAB2ehehGO0AAEACNUEUmAoGwcIuAMFj3mkkYAFZ6FEojbFM2wgA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisDate%2Fvanilla.js\",\n  \"lodash/lang/isError\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgUQCdCB7Q7KEgE1TgAsA6AKwWRAGMT0AXGHpENmwACOt24AHOIiGUa9BpwC22KiXZxsAYjxFShADroISiWW7Dgw3cTLCAvsLCklwgORzadN0aMwAHmaE3HAMMLaEwgC81gQRABToMADuwnpk8QCUmUZC0QB8wtyEAK4wvkmB5qHoJNzpkTE2-vENOeh5UYVgqFBw5eggADQgeABCEOiohACeSD19MPYjaFi4cfrrDQxwEjDszKygnDx83AIncBYBe-y8VNGWRsLC4fqIRaUwQ8_CtfURD4Lfo_dD2CqXCyeeiPQgwACOJQgcPibgYFGoXjc7UhwgkaEmsIRSJRaOwADcMNA0NiKrwrqjmmQ3ENhFkCk90C8bvtuPFoXRMgxuCR8IjevEeXcYFR2tzArz4vjUJMhSKxSUJQL2vZ2sNRnAJlNZvNev1liBVjgmeRKcYoGhDkhjlxePxEBwuFdYg1Hm8Of7JlcMOwYCQwGkIhUbtUwhFHjbEilIy1srkRF1PmVo1VgjU6r6mhsMm10xzgQN9eNJtM5ogKxaGBI4eIIG92M7Pad3SBgL8DCB-koIAOgWbvv3B5NMLAAIolOrlJBZidc4QD6akZIABWmfDgo_XIFQ5JIECoA9BLwHiMX29IUkPA-b8HC5KXRnBgwtElQ7AA1qgmAwIcXCdicbrnGwUxKDAAgClsET6lQMB7OgKHoOwbZHJamL0AIAAsDAAIwAOwMAATMR-oAAIAEaoHRMBQNgpQ8CYcEeuRxEAKwMARID2EJQlAA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisError%2Fvanilla.js\",\n  \"lodash/lang/isFinite\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgMQnQgBcZsoB7AE1TgAsA6AKwWRAGNL0yekRs2AAT0SJAA5xEgqrQaMuAW2zVKHONgDEeQsTIAdYovGUATiSHAhOoqRhCAvkLCnKioQHJZdeh8OGYAA8TczhGIjJMGFMhAF5rAlsyAAoAZgBKQ0E4gD4hElMAVxh_dCCQkjCqAHdogCFKQvRqOITdO2SAOULFACNoxgBZAElOgH0ANQBBABkAVQBRTPRs2LyC4tLys0rw9Eg9e3ibQ-Th_aSAT2XVvLBUKDgS9ADgnbC4AqJMbr7o1pOHQ8qQ8N2Ea2cDyehhAABoQHg6kRUKZLkh7o8YA54WgsLhEod8e0yIw4OIYBwWGxQFweDA-IhONxPkJyhSyC14sBDEJrHSoqZEPkijBYTyhDV6o1mkKNqLxUQDnYhRinmL0LzPqZvr9-oLIZj1Q5SrSWd4GK1TDAAI6FCBW5IeRgUGg-UGGU0WcRoIiWm12h1O7AANww0DQ7pedM-jsBZA8sKEyXSuUs4rZHBIyXN9HSjBIlAWtoeyQzHOWvLLyW9qCIeYLRcKJZzywcyzhCLgSPQKLRiFVWJxGBwcfIoeIUDQVKQNO4vBI_G2oT2kX-8V1A1HaTBqblWzey8lpgaTU5Qg3pnCBI6F6Go0ms0WO4he6jS92iqSR3PPT1V-JMBnBcejXFk4J3FCzyvBUHxfFgF6tLeW7ApGtwGtC6AdoiyKouikHYiAjDiFaYgQNEpgcDOTJ0gyIDchqQj6CATyKBATEqpB6q8kxcDfLAACKhSUAYSDCsUXGMSAKKuNUAAKKL0nA7GSagwaUBA1BMRJTG2sJMCya4kjKUxxHwNEwYlCAhjGphBHiKgHAANaoFEVLcFRtLzlRPaKDA_A5kSX4dtQMDks09IcGR1IgDm_AACyMAAjAA7IwABMiUdgAAr0qD9FA2BFDwEC-fwqWJQArIwcUgA4dV1UAA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisFinite%2Fvanilla.js\",\n  \"lodash/lang/isInteger\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgSXQBcZMYAnbKAewBNU4ALAOgCsFkQBja4mYpCGzYABIyJEADnETCa9Jsx4BbbLWpc42AMR5CJMuQA66CMsnVyREcBF6-hkQF8RYctWUiA5PIaMvJiYwAB4WVnDMEA4UIgC8dgTR5AAUAMwAlCbCcQB8IkTkAK4wgeghYUQRNADuFABC1IXotHEJ-qQUyQByhcoARhTMALL4XQD6AGoAggAyAKoAopno2bF5YKhQcCXoQaGWlZHokKYkrfYGnYQnEEQAnsur65vbpeUHEXAFUZg9_THxC4dFJeVJeR6iNauF47EAAGhAeDqUVQ5DuSA2WxgTgRaCwuESl0oQMMzDgkhgXDYHFAPD4AkQ3F4XxE5UpJBa8WAJhEdiSiHyRRgcJ5Ihq9UazQFmO2IvQvKiNxI0phct5X3IPz-A3IKqxcqcpTpLN8TFa5BgAEdChALckvMwqHQ_OCTMbrJI0FFzVabXaHdgAG4YaBoV27Phfe0kiheOEiZLpXI2UVsrhEZKmxjpZhEagLa2bZJpjnLXkl5Ke1BRHN5guFItZ5ZOZbwxFwZHoVHoxAy7G4jA4GOUYOmKBoalIWm8EgMkDvcJHImtbWDYdpCHJgrFN77Rfi8gNJqckSr8iRQnA7q9HXDUaTWaLTdQvu7ioRRVRW4wFc3teXwxkmuL97mfZ4sTfD4yW-LAz1_f5z3XUFwyeaEIPQNskRRNEMRhHEQGYSQLQkCAKHILgpyZekiEEbl5REIwQG2ZQIEYvVZVFRi4B-WAAEVCmoEg2MFYo1QYkBUXcaoAAVUX4OBhMY1BA2oCBaEYsTGOtQSYGk9xpEUkAiPgChAxKEATENDD8MkVAuAAa1QMhqV4Si6VnGjOC7ZQYEELMCXaQw21oGAKWafguFImkQCzQQABZmAARgAdmYAAmRK2wAAT6VABigbAimIMxfMZVLEoAVmYOKQCcOq6qAA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisInteger%2Fvanilla.js\",\n  \"lodash/lang/isNaN\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgOVX2ygHsATVOACwDoArBZEAY1PQBcZOkRtsABNQ4cADnET8ylGrTYBbbOVIs42AMR5C-ADroI80aQBOHAcAFaiAgL4Cwx0vIEByaVWou9emAA8jpnC02gIAvJYERAAU2gCUevxhAHwCHMYArjDe6H4BHEH46fIARjDGIeFW-DFFpcYxRLHx6ImhKWmZ2bkm-bTp6OQwYGER2lH9g5A55M2tKWCoUHBZ6CAANCB4AEIQ6KjGAJ5IC0swNhtoWLiRxFW0cKIwLAxMoGyc3By873BmuU9ccgjYB6AQCbSIVIZGBrUHg2plCFQzKw9BgiZDSEnZaomzZH5mdw0EbGGAAR3SEFJURctBIFA8LmaBIEojQuxJ5Mp1Np2AAbhhoGgmdkuL8aVUXGsBFFYslzHD_iwOFEidRYrQOKQAKIUxZRJWA5pgw1RNmoXYarW69L6tXNGzNdabOA7PaHY6LZbnECXHBVfmCqBoF5IN7sLg8RAgbqBYLWcKFEplWhVBr4WaCNrIlY-fw9AoI8oJ-HJ4ypm41MvppoJLPtaFdfNxjHDRNFitjVu7GAzOvy7ErZ3bXb7I6IQc-2iiUkiCBlYwsMOsCOfXggtECHQgZbyCDbrFemFw7dwXaYWAARXSpC4B5zqLB2_2jgA7gAFfbcOD35980gQOQ26PluIAUreMDvo44i_iAM7wGUfJZCAeh4qsPqiKgLAANaoJgMAvOwy7vJGXzMHs8gwLwarXNozqDI8AzcCw86vL6DI0LwAAstAAIwAOy0AATLxzoAALFKgpRQNgGScAYVHRoJvEAKy0FxIA2FpWlAA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisNaN%2Fvanilla.js\",\n  \"lodash/lang/isNil\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgOWmygHsATVOACwDoArBZEAYxPQBcYOkRtsACKu3YAHOIj6kK1GqwC22MiWZxsAYjyEoAHXQQ5IkgCd2_YP03R-AX35gjJOfwDkUylWe7dMAB6GTcDToAK5QUABqqFD8ALwWBNAAFCFhAJS6fLEAfPzsRsEwXui-_uyBwehkMGCR0XGWUIkVVZDFZOnomTE5eQVFJcZlQRi1sfFaifio-B1dOWBRcIXoIAA0IHgAQhDoqEYAnkgLUEvW62hYuAlQV1o0cCIwzPSMoKwcXOw873CmJU-cMhjYC6fj8FIRKKIXL5GCrUH8ZrVWrQ3pwhG7dAouyLdHoaxFH6mNzUMZGGAAR2CEHJiWcNGI5Hczg6RP4IjQOzJlOptPp2AAbhhoGgWUVOL86Q1nKt-IlUtkzAj_sx2IkSVRUjR2CQAKJUqKJFWAjpg42JDmoHZanX64KGjUdawdNYbODbXYHI64s4gC44BqC4VhVAvJBvNicbiIFhsX7jKxxIV1HLJ2JxCH9PyDQIQ0b1a7JUJQWYCbowvrobzZgI0JE1KJjBpNSrVHYwdoZMs9WFZ0q5kaNgsTKYzLuK45LXSurY7PaHRCTmC-mgicnCCAwIxGZjh2MfaMgEHoMHaEBLOQQM_Qpfwk_8M9wHaYWAARWCJE414reNPID2DgAO4AAp7FwcDfmeqACiQEBkGed5_lSn4wMBDhiJBIBrvAW4CoUIC6ASKy-iIqDMAA1qgmAwC8bB7u8UZfEwuxyDAPAarc0CulUjytugzCbq8fpMtQPAACw0AAjAA7DQABMkmugAAgARqgKkwDc-QcPobExrJkkAKw0GJIDWOZ5lAA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisNil%2Fvanilla.js\",\n  \"lodash/lang/isNull\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgOQFcopsoB7AE1TgAsA6AKwWRAGNz0AXGbpEbNgAEtLlwAOcRIIrU69DgFtslcmzjYAxHiIkAOugiLx5AE5chwITuJQhAXyFhT5RUIDksmrXcGDMAA8Tczh6dFsANVQ7AF5rAlsACnCSAEoDQSEYgD4hLlNCGD90QOCuUMJ0ShgwKNj43ShEyurIEsp09Eycp2i4IvQQABoQPAAhCHRUUwBPJDA-mHsRtCxcBJJ1xvo4cRg2JhZQDm5eLn4TuAtS_Z5KLMsDISEUqDrEPIKYIaehFpr3r0oP0fuh7MVLhYvHQHqYYABHQgQOGJdz0MhUbzuTqQoTiNCTWEIpEotHYABuGGgaGxxR4V1RNhI7iGQkSqSyuWAvxubC4iWhtFS9C45AAoojooleXdOs8ZYl8ahJsLRRLCFLBZ17J1hqM4BMprN5otliBVjgmaRKYYSKhDkhjpweHxEOxOFcGrYHpTYrlfVkYnFXsVSmZymFItEHlbkrZOt1cvlCqGguGKlUAdG4rH_m0YB0MsIegtgQM9eNJtM5ohS_0zfRxHCxBAYKZTGxHe7Tq6QNz0M89CB-ooIEOPnXvr8h3BJphYABFQjkHjjz6FUGDkDTFwAdwACtNeHA10PUOTyBBKEPN0Ih4iVzB9y5JKeQE34G3yUUQAZwYMzXEVA2AAa1QTAYEOTguxOF1zlYKZFBgfhBS2Ww9WqPZM3QNhWyOc1MTofgABZ6AARgAdnoAAmMi9QAAQAI1QRiYFIApuCMZC3SosiAFZ6GIkB7BEkSgA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisNull%2Fvanilla.js\",\n  \"lodash/lang/isNumber\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgOQFcBbAIxgCdsoB7AE1TgAsA6AKwWRAGMb0AXGAKQhs2AARN-_AA5xEY2g2YtexbHRrc42AMR4iZSgB10EYjJoV-44OIMlyFcQF9xYCjWLiA5EsZMPqamMAAeltZwLOiOlOIAvPYEsRQAFADMAJSmYgkAfOL8FIQwwehhEfxRxBDoAGqoUCUJSYZOqW2ULACyAJL4APp1AIIAMgCqAKLZ6LnxBUUlZRVWVSy1kGb8AJ4tDkZpveibEDszcwvFpegh4atRcEW1mHvJB6k-6T7nEvPujXBriAADQgPAAIVqqAo2yQYABMBcoLQWFwbycaM6FBYcBkMG47E4oF4AiE_BEJMe4gq-MEdBawFM4nEMQOiEKV2BTPENXqjRK7MWMC56GZG1qp22gs53MeFGe7PhUEBIpcZUpNn8zBaFBgAEdCBBdR8WNR6AFvqYNeIZGhajr9YbjT5TQA3DDQNCWm6kx4ffZOHzA8SpTL5WzcmncfipLVMTIsfg0SYGxqpKN0mbMjOpW2oWoJpMpwhpuMzFwzEFguCQ9DQ2GIJWApEgFE4AOUbDusxQNCEpDEviCYSIHh8Kkd5yJVDhnZ4mhgcQz-Ir3yswPLO6RaIpV5YjI_WdXTeVaq1BpNGB7lIdFI9fpDMZTQ9_IUn-7rY4SnbX95HE5nDkvyXEsPorNucrPL-7SfN6Fz_MqQKghCUIwnCCItiwMi6tIECUBQ3ADmOpIjiAjKiuIxggICNRUYqCIisyVFwM8sAAIqEDQgh0RyJSMZRIDQp4ADuAAK0JCHAPFUagro0BAdBUfxVEGlxMCiZ4cjSSA2HwJQrqlCAphqugIAtjIqDcAA1qgmAwISfBESSw7klwdbEDAIhxpiKRVnQMB4ug_noNweFEq25rMCIAAsLAAIwAOwsAATHFVYAAKkKg5BQNgxQCOYnmjklcUAKwsNFZkuNVLhAA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisNumber%2Fvanilla.js\",\n  \"lodash/lang/isObject\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgeQCMArGAYwBdsoB7AE1TgAsA6YhZEMm9CmXpCGzYABEwoUADnETDaDZi24BbbHRpk42AMR4ipSgB10EZZJoAnCiOAi9JctYC-IsBZrKRAcnmMmX42MYAA9zKzgWGgdKEQBeOwJoigAKYCcASmNhOIA-EQoLAFcYQPQQsIoI1AsLVABPOIT9R2SAbQBGABoRACZugGYAXUz0bNi8guLS8stKljBC9Bj4-wMU5PTcmwys0XH8opL0INDZiPRCqChG1ZaLq5GxvLBUKDgjkE6QPAAhCHRqnUkC83jAnF80FhcIk1tDmpQWHBJOQ2BxQNxePwKIIMXBrOVHDA6I1gMYRCIomtEAdip0ySJqrU6tTJjA6ehyQslhQWYd2eT7lBqSD3uynKVcdZfMxGhYYABHQoQOXJLwsaj0PxeEaSkSSND_WUKpUqtXYABuGGgaG1pT4eNVt0oXm6Gy2pI5IgJlGS0qY6RYFBoAFFFa9kt6-HQRuTI8l9ah_gGg6HCuG_SMduhPt84H8ARYgYgRWCIRgcE6qJaTFdUKikOieHwBIguDw8U0ko1UFse_88RgyDAaGARPCKNNTuFIl2VjCWmlHnsJodJxUqjV6jd5z6Ot0-iIhkutqy12d5otlp21sk3ftF7sT6vjmUp3NBdvx8lBcf9iXjDmvz_ICwKvO84IgCwkhyhIEAwDUZANm2mItiAHrkoYIDvMoECYcKYFsvSmFwP8mCwAAioUNB8HhNKEZ6mGMjQADuAAK1T8HAtGMeaNAQHQmH8iImGKtRMCse40jcSA0HwPB5olCAxjitmEGSKgZAANaoJgMCojwSEYs22KcACygwIIfpwkkOZ0DAyLoHZSxwWiIB-oIAAsLDtAA7CwPTtDmAAChCoIQMBQNgRS8KYFmtn57QAKwsB5IBOOl6VAA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisObject%2Fvanilla.js\",\n  \"lodash/lang/isRegExp\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgJRkwFEAPAB2ygHsATVOACwDoArBZEAY2vQBcY_JCGzYABIz59ycRKJr0mzHgFtstalzjYAxHkIkKAHXQQV5agCc-Y4GP1Ey5MQF8xYS9RViA5AoaMPiYmMBRWfHDMlkShYgC89gSOFAAU2KgARlzYAJQmovEAfGJ8lgCuMMHooRbWkejUfAaxCQ6G5Ck-6VnYPnnoBXHFYKhQcJXoIAA0IHgAQhDoqJYAnkgjYzAuM2hYuEnt-wZOzHDkMFxsHKA8_IJ8wrdwNjUXArTxtiZiYtGYoYgSuUYFNvmIGk0YqRARtxqD0C4qk8bP4mJ9ogBHMoQaKdZhUOgBPomZFichoRbomBYnEwPHYABuGGgaGJ6BMAmenTaTh8UzEKRyRS-6B-ry4fBSqMYOWYfGoxCxoxS4ve_TFFDeKXJqEWsvlirKyul_Rc_WmszgCyWq3Wo3G2xAuxwPIojOZUDQVyQN14AiEiG4vGeiWOFE-1AyrGFkeji2eGC4MGoYDEYfIVRq4UifxaoeSHW62X6g2KpQqmbCdWYEOapE-ro6XUy2TZpfc9omFvmi2Wa0QsK2M2Y5GiUggMEsli4PqDdwDIGAYKMIHGKggK5hnfhPxXcEWmFgAEUyo1KkggRUd2IV8tPAB3AAKy0EcE3N5AqAZ1AgtBX15XLEz0fTwZHfFdR3gScGXPExEUmR1yFQLgAGtUH-K5eFnW5_QeTglhUGBhGlI4CwtWgYHOdAKPQLgJ2uJ1CSYYQABZmAARgAdmYAAmdiLQAAQyTIYCgbByn4MwiMDbj2IAVmYFiQBcFSVKAA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisRegExp%2Fvanilla.js\",\n  \"lodash/lang/isString\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgZQBcAnCLbKAewBNU4ALAOgCsFkQBjS9QmHpENmwACeoUIAHOIiFVaDRlwC22apQ5xsAYjxFSWADroISiZWKFhwYbpJlMwgL7CwxSkuEByOXXqejRjAAHmYWcIxwdljCALw2BFGYABSeqABGHJ4AlEZCsQB8wiQArjAB6MGhhOHolIR69rHxDVhJAIw56HkxhWCoUHBl6CAANCB4AEJkqMQAnkh9AzCOY2jktvo4G_YREjAcLGygXDx8hAInkcKV-7zUTcBGwsKRm4hFxKUjT8K19YnvRaDb7oRzlS6WHwMJrEGAAR2KEFhKUYFBovmyRghwgkaDIMPhiORnlRADcMNA0Jj0EZeJEUtssJ4RsIklkClYfjcOIQklD6FlGIRKABRBH9JLcu6dZ5SpK41BkQXCsXFCX8zqOTqjcZwKboGbzRBA5arDBbBKbbDk4xQNCHJDHbi8fiITjcK6MhxxVAcwizPaUMDCX0xMNeV72fw0iohczVCKJJpelLpTKdbqFEpDQJxsKMP4tb3NRLtDMiHoufqDIw6ybTOYLaumkCMCSw8QQGDEYgcR3u06ukCPdDPAwgQZKCDjwHNkFjif2WAARWKdTKSA-Xx-45mbgA7gAFGZ8OAz4S70mUCDUcfzi8gBHrw9uKTn8ft-Dd0kboxg4YrCAEioBwADWqCYDAhzcP2Jwuuc7AGkoMACPyuCWvYOrUDAezoNh6AcF2RwgPyAgACyMG0ADsjAAExtDqAACaTpDAUDYJ8PAmChbo0W0ACsjBkSAjiiaJQA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisString%2Fvanilla.js\",\n  \"lodash/lang/isUndefined\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgVXQBMZJ0YjsoB7I1OACwDoArBZEAY2vQBcY-SENmwACBr14AHOIhE06jJtwC22ItU5xsAYjyESZCgB10EFVOoAnXqOCj9xUhHJFRAX1Fgr1FaIDkCvQM_qamMAAeljZwTACuTmAAaqhQogC8DgSJLhQAFAmGuUQAlKYiGQB8orxWcTBh5FHWvLHocVBQKWmZjkWuee2dZegV6dVgqXAN6CAANCB4AEIuqFYAnkiTUNPuC2hYuNn9FEcGzq5McFIwnKzsoNx8ArxCT3C2kTec_G6ZwKZRKIhl1UogvFMYHNAaJCqRuuDavVoeh3I13rYgowMqIrDAAI5xCB4vL-JhUWjBfwjDGiKRoFw4vGE4kwUnkgBuGGgaGpjX4H1JfQuFH8c1EeRKVTsMK-t14eSxDBKTF41AAooTUnk5T8KCMgbqFfTUC4VWrNXFtUqRu4RvNFnAVug1ptENtdvsMDhhUZKFyzJ1UPckI8ePxBIguDwPllzn6cVyetUkxl0pk4X7Gl8WrFM90cb7igUcq4RmNqkiZuFmjEmCCC71jiKiIMOlBy2JxhCdjMHctVhstpC9iAmFI8ZIIDArFZOKHo89IyAAeggcYQNMVBAN-CPVCYRu4C5MLAAIpxaj8Xc1OoHteiDdrHwAdwACmsBHAb0-OdQIEQG4ouuICEleMBvj4Mg_iAE7wDOHINCAphorMo5SKgnAANaoJgMD3DwC5PBGrwcC6KgwEISpnKWFAOiQNxOOgnDTg8IBKkIAAsTAAIwAOxMAATDxDoAAIAEaoOJMBQNgdR8OYlFRgJPEAKxMJxIDuNp2lAA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisUndefined%2Fvanilla.js\",\n  \"lodash/lang/lt\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPRQC64D2AJqnABYB0AVgsiAMaHp4wtIjbYAE5eeABziIuUEmSpMAttmKEGcbAGJ8AHXQQpAwgCc83YN3zcAvtzA7CU7gHIxpCjfXqYAD2164lYjDCoArsYAvEZ4ABQAjAA03ADMAJTqXNxBAHzceDr-MM7obh54XjAAjv6oUCmhYbExCUk8aeblcDnoLu66hZRgaC2V-NUxEYnoyY1-UC3qIFEgEHAAQhDoqDoAnkgTLSazaFi4BPiUcAIwDDR0oEwsbHgc13D6-WesxJXA6tzcPn6BeIgZLIwKKfbglMpQAFbYGgnpkGBQ5ow9AmXIPfT2CSVHTgiA4sI2ShEBzkGwjdHcARoZbY3H4wnYABuGGgaDJuVYjwJ-BsMTC8RS6Q-6C-zwY4UxFHilDwhAAoqVymExa8RqL3C8wlTUMtpbKFRCwpLyCMTCMZnNFstVhtENCdiA9jh8EyWVA0BckFdmKx2IhGMxHqFKmFUDEAEYCxqobgAHm44dy-U6Xh-AWCVWicRGY3SmWySY6nko4PK_XCNWz9UFTUmrXaBS8cL6IQGleG1fGSOms3mSxW602SIdlAEOP4EBgOh0DC9AZufpAwq-qhALSkEFXiLrIJF3FXcGWmFgAEV_IRWFvAdldyuQKtLAB3AAKqzYcCvq9QjMIEGIq9vfcQFKC8YGfSwhE_EAx3gKdGRyEB1FRdAQAdARUAYABrVBMBgC5mDna5fTuegVikGAOGNA4LR8U50B8dAGEnS5HXECgOAAFkoCIAHZKAAJgiC0AAFw1QcMYCgbAshYTQKP9PiIgAVkoDjUJMDSTCAA&query=previewwindow%3Dtests%26file%3D%2Flang%2Flt%2Fvanilla.js\",\n  \"lodash/lang/lte\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPRQC4y4D2AJqnABYB0AVgsiAMZHoGtIjbYAEFeeABziIuUUuWrMAtthJFGcbAGJ8MADroIUgUQBOebsG6ruAX25hdRKdwDkYspVsaNMAB479cKiRhhUAK743AC8xgQAFACMADTcAMwAlBpcoQB83Hi6Aerorh56eN4wAI4BqFCh4TAR8XFJKTwhGVk5LujunkVUYGhwMFWqtXFRyeipzRYV_RogMSAQcABCEOiougCeSP5Q_abzaFi4BMcwVHACMIy09KDMrDDsiEwscAadVwQkVcAa3Ny-fxBPCITLZGAxP7cUrlKCg1oQqG9cgwUE7fqQ9Cmdr3N7GcSUKq6GEQYkRWxUYiOCi2Ma4gwCNCrIkkskU7AANww0DQtPaBDe5PwtjiEUS6UMUI-jDwEQcEkSVDwRAAomUKhFpV8xv8tRFGahVorlWrYXKCRQxqYxnMFstVustoh0TB9iBDjhVJzuVA0DckHcWGw8Bx6dUqhFUHEAEbiyaobgAHjC0fanUK3kBgWCYSGsQSYwmLXBaYKXioMIqg0idQLjQlLtLXW8yP61ZqtdG9cmjfQtsWKzWm2201d8yoAmJ_AgMF0ukYAZeDyeIF-6H-ahA_SkEE3aNHmI3W9WmFgAEUAkQCHuwTlD9xN-srAB3AAK60ecBvj45RAgJE3e9NzKK8YFfKwhG_EBJ3gWcOXUEANGxPs3QEVBGAAa1QTAzjoFhF3uYNFzWKQYA4eVKFOW1fEudBfHQRgZ1ud0LQ4AAWKgogAdioAAmKJbQAAWjVBoxgKBsGyVgtDI54eKiABWKg2JAUw1LUoA&query=previewwindow%3Dtests%26file%3D%2Flang%2Flte%2Fvanilla.js\",\n  \"lodash/math/add\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAtgQwC4AsD0aAm-OUA9vmnFgHQBWCyIAxiQHYYxtIg44AEWGDAAc4iHqXKUqzFDnwlGcHAGIC-ADosIKISQBOGXsF5reAX15g9JFLwDkEiljubNKMgFdYVGAA9dBnC8ALwmhAAUAGwANLwALACUmjwhAHy8AIwADJog0SAQcABCECxoegCeSGBoUHAwZvno2HiErfhUcEIwjLT0oMxsHBhcg3CGft2M7PghmTksmmOGjpRzejAAjh4QG-F2VMRkTnZJLMu8QlBopetbO3sHOABuaFpQ16euQ-P7anaxcIJNJGTS8XiTHoYcKrLAJKgYEgAUW2tXCkOmMHwZ3BGOhVxuLHhiJRHjRsLOZjOeQKxVK5SqiBqdQaTUwuDULze0GufSQA1Y7E4iCYrHGYVmoXCaFiACNgcF0mheABqXiy77ufBeGA-fz6DBBUJqKKxRLJPiK-a5fKFEplSrVWr1RogKhCDaCCAwPR6Rj80VDYUgYBg3jqED1FAQCOISzOmDRMMRuClADmsAAih4SOxY7wMHoPInkyBytYAO4ABXKHDg-YjaGeJAgGjype2uZgVesIgbIA98B9zxgEc0ZlyrqEaEYAGs0GndXRWAHBkKRgwyigYFxYe0afgYN0WIfzt7-iBYVw4lQMgB2KgAJgyNIAArK0LKYFAcEW2NodxFB8MgAVioOIQDMKCoKAA&query=previewwindow%3Dtests%26file%3D%2Fmath%2Fadd%2Fvanilla.js\",\n  \"lodash/math/ceil\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAtgQwC4AsD0BjGaHKAewBM04sA6AKwWRDxIDsMY2kQccACLDBgAOcRD1IUq1ZihxkSeODgDEBaAB0WEFEJIAnDL2C81UXgF9eYPSRS8A5BMpZ7mzTAAeug3GmEzALwm_gAUACzUAAyRAGwAlJo8vAEAfLwArG4snt4YvkJ6MHgQcBCsycHQITFRkWEANLwATAksSam8NZEAjFk5-nnU2QDmAAqFxaXlQabVdZGNALQtiXwdMd3RmiD1ICUAQhAsaHoAnkhgaFBwMOa76Nj4_k_Q1HBCRXQMoMxsHBhcX5wQw5IrsMgVYCaXiVKCIDL1aG8ApFEplFjwrrdREsGEjcaoqYYzqbBaacxZIGGJxUCqFACOAFcIIUQvZqMRyM57K0qcioGgjnSYEyWTA2RyAG5oLRQAU8rLsYFs0z2RohOLJNJQ3G8UF4DAhGlYOLUDAkACiTKuIX14NaMLtISEAqOpvNVsZNuNrXMrR2ezgh2OZwuVxudxAD1wphw0tlAq-SB-rHYnEQTFYwNhFRCLEZKEaKMm6M1HR1ML5KHIEEgMD0FU2vAAVM3kRM0awkYUMIy9LiALKYGizfN2NvVsi1iD1zV8SfT-vkvpeAa-UwVIfYPxVCLReKrLUZFe5fIdokVWZdOqNFZtNZpLEntdDGBjc_oy-hGLzJZ39qPqS2y7AcRwnOciCXNcty7NQKKCDOeh6HgyaZn86YgBWvDqCANwoBAOHwlBNw4jCOGlCwwywAAioyJDsIRvAYHojIwKR2EgCcNgAO6jCcHBwIxOFoJKJAQGQOHsThTL0TA4wkCIQkgCiNx6JKMA4cuLAgJGQhoHgADWaDDDAXysKhvxpgCjDHCgMBcMaLxQAGZAwB8LCuSwxTwKhxpcBE3QAOzUE03QBgAAgARmgkUwFAOAsWw2j2RmwXdOk1BhDp5g5eYQA&query=previewwindow%3Dtests%26file%3D%2Fmath%2Fceil%2Fvanilla.js\",\n  \"lodash/math/divide\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAtgQwC4AsD0ATCANwjxhygHs804sA6AKwWRAGMKA7DGLpEHHAAIsGDAAc4iAZWq067FPgqs4OAMQFipADocIKMRQBOGQcEGaSMQQF9BYIxRSCA5DJpYXu3SioBXWDoYAA9DEzhBAF4LIisACgA2ABpBABYASl0BKIA-QQBGOgBWXRAkkAg4ACEIDjQjAE8kMDQoOBgbcvRsfFjSXq0YOjgxGFZGZlB2Lh4MPmm4UxDR1m48KILi7w4F03daDaMYAEc_CCO4lzpyKg8XTJ3ORcExKDRaw5Ozi6ucQjQ9FA3vdttxFpdLKQXCk4ulcmZdIJBMsxhg4vssOk6BgKABRU6tOIo1YwPAPJHEtGvd4cLE4_F-QkYh42B5lCrVWr1JqIFptDpdTC4SFkf6At4TJBTTjcXiINhPUwijZxNApABGcMieTQgiE6u2vjwASGy2MGAi0RFiRSGSyQm1mxKHHZlRqdUazVa7U6IDoYiOoggMCMRlYUoVMzlIGAiME2hA7RQEATiHs3pgSTjCbgtQA5rAAIp-CjcVOCDBGPyZ7MgeqOADuAAV6jw4OWE2hCBQSAmsxwkQnTqWYE3HBIOyAA_AQ4QYAndDZSr6xGhWABrNB5oZMTgR6ayuYsOooGB8DEDKzs0ijDikHbByYgDF8VJ0fIAdjoACZ8uyAALqmg6owFAOBVlw-hnvKX75EUdCpCANjIchQA&query=previewwindow%3Dtests%26file%3D%2Fmath%2Fdivide%2Fvanilla.js\",\n  \"lodash/math/floor\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAtgQwC4AsD0YoD2BATjoQCZpxYB0AVgsiAMYEB2GMHSIOOABFgwYADnER8KVWqxQ5yBZnBwBifEWIAdNhBQiSGfsH7qS_AL4niBFPwDkU6ne3aYAD33EMcGqeL8AXhNCEgAKABYaAAYogDYASm0-QIA-fnCXNndPbxoRYhhmCDgIdkDgjVCo6PDYgBp-ACZEtmSAtOqojLZXDwMfLIBzAAUCopKyoL8IuKiGgFpmpIF29Jio7RA6kGKAIQg2NGIATyQwNCg4GHNt9Gw8ENI_GjgRQvpGUFYOLgweb7ghmyhU45HKwG0_AqJEQ6TqkP4-UKxVKbFhnXC8LYUKGo2REzRaxiWPMmQBhkcWHKBQAjgBXCAFUJ2GhkAiUJwtcmIqBoA7UmD0xkwZmsgBuaB0UF5dha2k4gOZfjsDVC8VSRgRwOYGFClPiNAwBAAovSLqFtaCWlDLaERLyDgajaa6eb9dpzC0tjs4PtDiczhcrjcQHdcH4cBKpbyPkgvuxONxECx2IDof4gqE2HSUA0keNUerVhDsfxuSh2RBIDAM_wAIxRfgAKibiLGKPYCIKGDpxGxAFlMLRptnbK2K-QqxAa-qBBOpzWPZlsv1fI9yoPsGvKpEYgllhrur0cj58x3sVNHlUavUmi02h0asu-l4BjARu2CeVpuFZgslq0KxpL-MSbNsewHEcpyIOclzXNseTdhg07EMQzBximPxJiAJZQpoIBXCgED4bCsFXFieEEQcgywAAinSBCcCR_AYMQdIwBR_D4Uc1gAO7DEcXBwMx3FigQEDkPhnH4fSjEwKMBBiCJIBIlcxBijA-FLmwIAhiIaDMAA1mggwwB87AYd8iZ_EwhwoDAPCUg8GjeuQMBvGwblsEU8AYZSPCRHWADsNCNHW3oAAIAEZoFFMBQDgbEcLoDnJiFdYAKw0OEunmHl5hAA&query=previewwindow%3Dtests%26file%3D%2Fmath%2Ffloor%2Fvanilla.js\",\n  \"lodash/math/max\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAtgQwC4AsD06AeOUA9gCZpxYB0AVgsiAMbEB2GMbSIOOABFhgwAHOIh4lylKsxQ5SxRnBwBiAgB0WEFEOIAnDL2C8CvAL68wu4il4ByCRSy2NGmPh364VEwF5jafAAKAG0AFgAaXgAmSIAOSIA2AF0ASg0eXh8APl5YlxY3DwwvAFcWUhhIAtJM_yDg1PS-bN4yiqqYUg0QcJAIOAAhCBY0XQBPJDA0KDgYU170bDwA5fwqOCEYRlp6UGY2DgwufbgDQq32Gr9gDV46xFzw29byyuHOp5ZTfJODB0paroYABHEoQIGBWxUIhkRy2NIsX68IRQNDDQEgsEQqE4ABuaE0UFR8Py7FOkIItkigRSmRyNxYd3OjAwgX-WBSVAwxAAoqDpoFmZcEUz3BdAii0SxOdy-SUBeyEaYET0-oNhqMJogpjM5gtMLgCHiCdBUTskHtWOxOIgmKxTnVaiwSig4HTDM8IGBeIFna6qLAWABzbC0oEYEq6RkAWQN3gCgSoSb9cCV-UKemK8fwtQIIQi0TiiUaLAyLTyLFc7kzpVeHSudRCJbLOTab2q3V6_SGI3Gk2ms3mICoQnDGAgMF0ukYFrtBxtIAZdzUIFmKAgK4eOtmn2Xq-GQdgAEUSsR2JveBhdCUYLveCvRlYAO4ABVGHDgF4fuOIEC6PWeFdQTPGAXysEQvxAUd4EnXEYBXDRvhYEAhyENBGAAazQIMYB2VhZ32a0jgYEYUBgLh2VWVUKk2V5EQnXYQHZLhQioABGAB2KgojY1UAAEACM0AEmAoBwa82C0cjbS4tiAFYqFCFDTBU0wgA&query=previewwindow%3Dtests%26file%3D%2Fmath%2Fmax%2Fvanilla.js\",\n  \"lodash/math/maxBy\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAtgQwC4AsD06AeAQgJ45QD2AJmnFgHQBWCyIAxuQHYYxdIg44ABFgwYADnEQCK1WnXYoclcqzg4AxARIAdDhBRjyAJwyDggrcUEBfQWCPkUggOQyaWZ7t3sOcU-QAjBhhWDDhBAF5BAG1zDkRBAEYbABozQXjBACYbAF0vDhQqAFdYOhh8QxNwqMsACkDg0Lg08kiAPkFyOg4ASl0BDvTnDmcEnOtdEBSQCDhCCA40I2IkMDQoOBhrGfRsPDQiUks6ODEQxmZQH25eRDZOP0EK89CYSkj0zImCnye3WifIwwACOxQgwLqzjoZCo7mc_Q4f1MYigaEWQNB4Mh0JwADc0HooGiEQVuH4oZZnGk6r0hsBdIJnpUQhg6gCsL06BhyABRMEbOovVnvRFM4WhOqo9F9bl8gVQdlw2iI6yI6azeaLZarRDrTbbXaYXCWfGE6Boy5Ia6cW4YPjIiyHEifOrLIxpMDFJF0iKdBkcJmOgifACyxroBDqdBj7sjaDEdS9PrFgmBGGKRkDccgHEodQg3Ccfrs3tYBaLvoitUOqt-j38QVZNRicQSyR2X3GeQKRUopRg5UqxjCn3qjWbrSG3T6AyEJfMIzG2RsUxmcwWSxWaw2Wx2IDoYnTGAgMCMRlY1oeXB49vuAaZ2hAWxQECfCX1WxSjMET7giwAc1gABFYpyG4d9BAwIxihgb9A1_EB3XIAB3AAFZYeDgSCnzQPFyAgSgn3gx8QDBcCYDQhwJBwkAj3gM88RgJ9dEmDgQH3MQ0FYABrNAAMHJhOCvG5byvJYUBgPgOQOI4NUoGBzjzHhWFPK4QA5PgABY6ESAB2OgskSDUAAEAjQAIYCgHAYK4fQpPuAzEgAVjoLSOOsTzrCAA&query=previewwindow%3Dtests%26file%3D%2Fmath%2FmaxBy%2Fvanilla.js\",\n  \"lodash/math/mean\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAtgQwC4AsD0KZoB2OUA9gCZpxYB0AVgsiAMamEYztIg44AEWDBgAOcRLzKVqNVihzlSzODgDE-IgB1CEFMNIAnDH2B91hPgF8-YfaRR8A5JKpYHWrSgoBXWDRgAPPUM4PgBeUwJCAAoAbQAWABo-ACYkgA4kgDYAXQBKLV4wgD4-AFYtEASQCDgAIQhCNH0ATyQwNCg4GAsq9Gw8SIGiGjhhGGZ6RlBWdk4Mbhm4IwCx5g5yMLL3QkWjZ2pN_RgARy8II6iHGhIKFwd8nbYlvmEoNAbDk7OLq5wANyI0De922HCWlzMDiSUVyxWMWj4fBW4wwUX2WFyNAwpAAoqcOlFkWsYOQHoiiajXu9CJjsXivAT0Q8LA9KtU6g0mq1EO1Ot1ephcGZ_oCoG9JkhpmwOFxECwnkYzJsmvo4SqaEdyF5mDAolE0MxmElCF4ULDQiUDcw-ABqPgmlBJAAMsP46tghAA5thtp4tb4VgYMCFwmZYokUuksnkCvwLVtCGyavVGi02h0uj0QDRhEchBAYPp9MxJfLZrKQMAEXwNCAuigILXENYMzAEtXa3AGp7YABFLykDhNvgYfReNsdkAq0gAdwACk1OHBh7W0H9SBByLX2-YayBToOYHPbKIVyBc_BC38YLWtBYKlnhAaANZoT0wSZsUszGXzJiNfBuHRIZEyqcgYDGQhwJ2AsphAdFuDiGgAEYAHYaGSZC2QAAQAIzQXCYCgHAx3YHQYG4dDkNKGg4hACwGIYoA&query=previewwindow%3Dtests%26file%3D%2Fmath%2Fmean%2Fvanilla.js\",\n  \"lodash/math/meanBy\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAtgQwC4AsD0KZoB2AQgJ45QD2AJmnFgHQBWCyIAxpYRjN0iDhwACLBgwAHOIkFVa9BpxQ5qldnBwBifETIAdQhBTjKAJwxDgQ7SVJCAvkLAnKKIQHJZdLG_37OhOHNKACMmGHYMOCEAXiEAbUtCRCEAFnsAGgshJKEAJgysnIAOAsTkgDZ7AF1fQhQaAFdYBhgAD2MzKNjrMgAKELCIuEzKGIA-IUoGQgBKfUFxoQBWfRB0kAg4YghCNBNSJDA0KDgYO3X0bDwCG2udUgY4cXDmVlB_Hj5EDi5AoTbnhEYNQYstav4_p56KCTDAAI4NCCw3puBgUGheNxzQgQ8ziKBoHYw-GI5GonAANyI0AJWNqPECKJ6pDcmV6M0WwH0Qn-7XCGF6UKwMwYGEoAFEEcdegD-cDsTzZRFevjCbNRRKpVBBRj6Ni7Ni1hstjs9gdEEcTmcLphcMzKdSoATXkh3lxPhh-LirDcyKDensTJkwA0cRzomNuUJAwxYdQGuwYL0A-x2JkIDwUOGJmhU0IANSOUPsXoZmBZzIABg5whjsEIAHNsODfkFQvyuvEyqlStlkvlzoVkiVB93KnYaoR9PV480AaZIqDmf120MRosprN5sII2DCEbNttdvtDsdTucQAxxLCxBAYCYTOxXT9uLxPd8uYQeboQKcUBAf2SS1TnSKMfzgHYG1gABFBpKB4QChAwEwGhgUCvyEH9A0oAB3AAFPZeDgRCsIpSgIGoH90O_EAEXgmA8OcSQSJAa94HvCkYB_fQ7FWC9xFzABrNAGxgV4uGfD432fXZ8H4IU7hsI1qBgZ5CBUnE7zeEAhX4FIGAARgAdgYXIDKNAABYI0GCGAoBwFDuEMGB-BMgylgYFIQDsHyfKAA&query=previewwindow%3Dtests%26file%3D%2Fmath%2FmeanBy%2Fvanilla.js\",\n  \"lodash/math/min\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAtgQwC4AsD0KIB2OUA9gCZpxYB0AVgsiAMYkEYxtIg44AEWGDAAc4iHqQpVqLFDjIkmcHAGJ8BADoEIKISQBOGXsF5reAX15g9JFLwDkEyljubNMAB66DcaqYC8JoQAFADaACwANLwATFEAHFEAbAC6AJSaPLx-AHwxrgQeXhg-AK4EZDCQBWRZgQShaRl8ObxlFVUwZJogESAQcABChGh6AJ5IYGhQcDBmvejYeIRLBNRwQjBMdAygLGwcGFx7cIaFm-w1AcCavHWIMRE3reWVhJ2PBGb5x4aOVLV6GAARxKEEBQTs1GI5CcdnSBB-vCEUDQhABwNB4MhOAAbmgtFAUXD8uwThC1HYokFUllctcCLczkwMEE_lhUtQMCQAKIgqZBJkXeGMzznILI1EEDlc3klfls-FmeE9PqDYZjCZTGZzEALXBqXH46Ao7ZIXasdicRDMVgnOq1AglFBwWlGJ4QMC8IKO53UWAEADm2BpgIwJT0DIAspgaGogtQEz64Ir8oV9MVfGiAnHwlFYrwErwUvDMi1oqnPOnSi8Opc6g0S81cm1XtVur1-kMCCNxohJtNZr1qEJQxgIDA9HomGabfsrSB6bd1CAZvhl_d-zMPkuV4QA7AAIolEjsde8DB6Eowbe8ZcjawAdwACiMOHAz3ecSQIF0ek9lyCJ4wE-1giB-IAjvAE44jAy6aF8BAgDqQhoEwADWaABjA2ysDOeyWocjDdigMBcGyKwqhUGwvAi447CAbJcGE1AAIwAOzUNELEqgAAgARmgfEwFAOCXmw2ikdaHEsQArNQYRIWYSlmEAA&query=previewwindow%3Dtests%26file%3D%2Fmath%2Fmin%2Fvanilla.js\",\n  \"lodash/math/minBy\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAtgQwC4AsD0KIB2AQgJ45QD2AJmnFgHQBWCyIAxhQRjF0iDjgAEWDBgAOcRAMo069DihxUKbODgDE-YiQA6BCCjEUAThkHBBW0oIC-gsMYopBAchm0sLvXo4E4ZigAjRhg2DDhBAF5BAG0LAkRBAEZbABpzQQTBACZbAF1vAhRqAFdYehgADyNTCOirEgAKIJCwuHSKKIA-QQp6AgBKPQFujJcCF0SUmz0QVJAIOCJCNGMSJDA0KDgYG3n0bDxCUiPtejgxUKYWUF9uXkR2Tn9BKsuwmCoojKzpwt8Xu46N9jDAAI4lCCgxouejkageFxDAgAsxiKBoQgg8GQ6GwnAANzQ-igGKRhW4_hhcBKKFILnSjQGo2AekEr2qoQwjSBWAG9AwFAAohCto03lzPsj2RKwo10ZjBgLhaKoDyEXRkTZkXMFksVmsNlsdnsQAdcA1CcToBjrkhbpx7hg-KjLMcSN9GqtjOkwCUUczIj1WQR2a6tN8ALKYBhaRr0BPe-joMSNP0B6WCUEYErGUNJyAEKiNCDcZxB-z-tglsuByL1Qha_7PALBLl1WLxKZpH6JXI2AoEPTFKhlGAVaomcLfBrNNttDqjPqDYZCCsWcaTZK2WbzRbLAirdaITbbXbzehibMYCAwYzGNj2p5cHjOx4h9k6EA7fBfxKnnZUjZQQvzgQgAHNYAARRKChuD_QQMGMEoYCA0MQJAb0KAAdwABVWHg4AQr80AJCgICoL80M_EAITgmBcMcCRiJAK94DvAkYC_PQZgIEBTTENA2AAazQcDx2YTgnzuV8n0PFAYD4XlTlIXUqBgS4ix4NhbxuEBeT4AAWegkgAdnobIkl1AABQI0ECGAoBwZCuAMRTHnMpIAFZ6EM_ibACmwgA&query=previewwindow%3Dtests%26file%3D%2Fmath%2FminBy%2Fvanilla.js\",\n  \"lodash/math/multiply\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAtgQwC4AsD0KCuUGEADlAJ45QD2AJmnFgHQBWCyIAxtQHYYx8kIHDgAEWDBhJxEImvUZNuKHLWqc4OAMQEipCgB0eEFCWoAnDKOCjdxMuVEBfUWHPUUogOTyGWL0ZGKHSEMEwwAB5mlnCiALy2hPYUABQAbAA0ogAsAJRGIvEAfKIATNlGIBkgEHAAQhA8aObkSGBoUHAwTtXo2HhJ-pR2Q0xwJDCcrOyg3HwCGEJzcFaRE5z8tPFlFTxGy1a-jNvmMACO-BCnKV5MVHR-Xvk8B6JkaI0n55fXtzgAbmhjFAoGgnoF5isbiMHF4silcsVrEZRKI1pMMCkjlhckwMNQAKIXDopdEbGC0Z6osmY96NXH4on4EnY55OZ5VGr1RrNVqIdqdbq9TC4GEUAFA6Cg6ZIWa8fiCRBcXgrRJ6BzbFJoLIAI0RcRKaFEACpRDqIcFaKFwlELBhYgkxeR0lk8gUxAadpVqrUGk0Wm0Ol0eiAmCRTpIIDBzOZOLLlfNFSBgCjRAYQF0UBB04hXEGYBlU-m4I0AOawACK-Go_Bzogw5nwBaLIGa7gA7gAFZoCOB19Nof7UCC0dOFnio9MXGswTvuaT9kDh-DR_4wdNGJyVEMkNCcADWaFLYTYvHjcwViw4TRQMCE2IG6oonNoMAmPFfLyjMxA2KE2SYABGAB2JhSkAzkAAEdTQHUYCgHBGz4Ew7yVUDAIAViYbIQCcPC8KAA&query=previewwindow%3Dtests%26file%3D%2Fmath%2Fmultiply%2Fvanilla.js\",\n  \"lodash/math/round\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAtgQwC4AsD0AnAewFcA7AExygLLTiwDoArBZEAYwJIxi6RBxwACLBgwAHOIgFUadehxQ4yBNnBwBiQqTIAdEhBRiCeDIOCCt5QQF9BYQikEByGbSxO9emAA8jJuPSWZIIAvBbE5AAUACz0AAxxAGwAlHoCoQB8gtGeJD5-GAFieDBsEHAQnKHh2jHxSQA0ggBMqSTpIVmxcQCMufnGhfR5AOYACiVlFVVhQTFJcU0AtK1pQp3ZPQl6IA0g5QBCECRoeACeSGBoUHAw1nvo2PgRFEH0cGKlTCygHFw8GD4fzgpnypW4wTCwD0ghq5EQ2QaMMExVK5UqJAR3R6SJIsNGEzR00xmwSuOsuWBplcdGqJQAjkQICVIk56JRqG4nG0qSioGhjnSYIzmTBWeyAG5ofRQfnc3LcEGsoJOJqRZKZMzIsFsDCRGlYZL0DAEACijOukR1ELasOtkTE_OORpN5qIloNbWsbV2-zgRxO50u11u9xAj1wQRwUpl_O-SF-nG4vEQ7E4ILhkMEkRIRBQTVRUwxGo20Lxgl5KGoEEgMDw1S2ggAVE2UZN0ZxkSUMEQ8HiALKYBhzXOOVtVsg1iB1jVCCdTut6CkkLy-QYBILVQfYQIvOoJFJrTU5Fd5Nf-eiFjt42Z77qNFptDpdeJ9U8DC8E9vEul3hbLVZ2nWLotjiHY9kOY5TguRArhuO49kvbsMGnPA8DYBM03-FMQDLWEdBAW4UAgAiETg25cXwwjjhGWAAEUiAIbhSMEDA8CIGBKMEAjTkIAB3MZTh4OAWJ4iUCAgXRdmRAjGSYmAJgICRRJAVFbjwCUYAIpcdjDMQ0DYABrNARhgb5OEwv5k0BVgThQGA-ANZ5tF9MgYE-cgeDKeBMINPhYh6AB2ehmh6X0AAEACM0EimAoHwUgUPsvhgp6ABWehohAawcpyoA&query=previewwindow%3Dtests%26file%3D%2Fmath%2Fround%2Fvanilla.js\",\n  \"lodash/math/subtract\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAtgQwC4AsD0cCuARhgE5oDGGOUA9gCZpxYB0AVgsiOTQHYYx8kIHDgAEWDBgAOcRCNoMmzbihx0a5ODgDEBYmUoAdHhBRSaJDKOCi9pClYC-osCRopRAcgWMsn48Yo9PiwzDAAHuaWcKIAvLZE9pQAFABsADSiACwAlMYicQB8ogBMxiDpIBBwAEIQPGgkAJ5IYGhQcDCOlejYeIkGVHaDzHBSMORsHKDcfAIYQrNwVhHjlDB0caUBPEtWPkxbJDAAjvgQx8mezNT0vp55u7zLolJQaPVHp-eX1zgAbmgTFB3g8dvxlldhg5PJlkjkitZjKJRKsJhhkgcsDlmBgaABRM7tZJo9Z0R4o0kYt4fHg4vGE_DErGPRyPCpVWr1RotRBtDpdHqYXDQygAoHQd5TJAzXj8QSILjPKyiqzxZJoTKEBGxYpoUQAWlEhB2QToIRgYUiFgwMXiqrSmVy-TEuu2PA51TqDWarXanW6IGYUmOkggMBIJHIMqVcwVIGAyNEhhAnRQEBTiBc_pg6STKbg9QA5rAAIr4Gj8TOiUj4XP5kCNNwAdwACo0BHBqym0P8aBA6Cm8zwUSmzpWYK23DJuyAQ_AI_8YCnjI5yoGpBQANZoIuW9i8GOzeULTgNFAwIRY_r6BwcugwcY8B-7cPTEBYoRZZgARgA7MwJQ_hyAAChBoIQMBQDgJD4HwpiXoqAE_gArMwWQgI4WFYUAA&query=previewwindow%3Dtests%26file%3D%2Fmath%2Fsubtract%2Fvanilla.js\",\n  \"lodash/math/sum\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAtgQwC4AsD0cCuKOUA9gCZpxYB0AVgsiAMYkB2GM7SIOOABFgwYADnES9SFKtRZEyJJnBwBiAigA6rCCmEkAThj7A-avgF8-YPSRR8A5JMpY7mzSnL5Y1GAA9dBuD4AXhNCAAoAbQAWABo-ACY4gA44gDYAXQBKTV5ggD4EgAZNEBiQCDgAIQhWND0ATyQwNCg4GDMy9Gw8Qh6UajhhGCY6BlAWdk4Mbgm4Q18hpg4yYKLXVlnDRypVvRgAR3wIPbC7amJyJztsjbY5vmEoNBrdg6OTs5wANzQtKCfrusOHNTmo7HEwpl8kZNHw-AthhgwtssJlqBgSABRQ4tMIIpYwMg3OH4pGPZ6sNEY7H4XEom5mG6lcpVGp1RqIZqtdqdTC4NTfX7QJ6jJDjNgcLiIEDuMieGDePz6DCBELROKJPgpPgZah7OVMGBhMJoJhMOKsQhQoIFYCwvimph8ADUIUtGlYcL2GHwek9js0HT4hRuuRta1YzIq1VqDSaLTaHRA1GE3owEBgej0TDFzAlU24ds9fHUIDaKAgpcQlgTMBi9tLcBqAHNYABFfAkDhVvgYPT4OsNkB1awAdwACnVOHAe6W0F8SBAyKX68XS4cuzBx9ZRLOQKn4JmvjBS4GSknhKaANZoZsK-hsXMTSXTRi1FAwbgovrMsgwIasH-GwZmMIAotwUTUAAjAA7NQ8RQcyAACABGaAoTAUA4P27DaJ-0pwVBACs1BRCAZgURRQA&query=previewwindow%3Dtests%26file%3D%2Fmath%2Fsum%2Fvanilla.js\",\n  \"lodash/math/sumBy\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAtgQwC4AsD0cCuKAQgJ45QD2AJmnFgHQBWCyIAxhQHYYzdIg4cAAiwYMABziJBlGnXocUOKhTZwcAYgLESAHU4QU4igCcMQ4EO2khAXyFgTFFEIDks2llf79HTnHMKACNGGDYMOCEAXiEAbUtORCEAFjsAGgshRKEAJnTM7IAOfISkgDY7AF0fThRqfFh6GAAPYzNImOsSAApg0PC4DIpogD4hCnpOAEp9QVHcgAZ9EDSQCDgiCE40ExIkMDQoOBhbVfRsPEJSS516OHEwphZQPx4-RHYuAKEWh_CYKjRRY1PzfDx0IEmGAAR3wECh3Vc9HI1E8rhmnFB5nEUDQW0hMLhCKROAAbmgDFBceiajwAoiuq4Mt0pvNgPohD9WmEMN1wVgpvQMBQAKKww7dX48gEYzlS8LdHF46ZC0XiqB81F0DG2DErNYbLY7PaIA5HE5nTC4LpkinQXFPJAvLhvDD8LFWK4kIHdHYmDJgfCY1lRMZ--hQqj4Ngwbq-thsDIQHgoENhhNCADUDiDbG6yZgqYyCwxvi-gRCPI6cVKKRKWSSeVOBSSxWbtYqtmqnH0dSjjV-pgiQK6vUrAyG8wm01mwlDwM4-vWm22u32h2OpxA9HEULEEBgJhMbCdn24vDdH3ZnE5uhAxxQEDvSTNxzSHKEd7gWwA5rAAIr4BQPDPkIGAmPgMDvjen4gH6FAAO4AAo7LwcCgXeaCkhQEBUHe0G3iAsLATASFOJIGEgLu8CHqSMB3votjLFu4hoGwADWaA_jATxcKerwXqe2woDA_D8jcpD6lQMAPJw0mYgezwgPy_DJPQACMADs9A5Op-oAAJBGgQQwFAOAQdwhiiR82nqQArPQyQgLYLkuUAA&query=previewwindow%3Dtests%26file%3D%2Fmath%2FsumBy%2Fvanilla.js\",\n  \"lodash/number/clamp\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAdgVwLYCMYCcD0AxlAIYYAO-UA9gCYlwAWAdAFYLIiHUoAuMfJCHz4ABI169ycRCJr0mzbhny1qhOPgDExMuQA6KCBWq5eo4KN0VRAX1Fhc1DKIDk8ho1eHDMAB7kprxwzCjUAPLkvBA8JFAAgrgA5qIAvFakFAAUALQAjAAMADSiOQCsAJSGImkAfKWFPij-gWYhNADueGkZermFJeUlldViqfXlTS1BIYwQSYzd6dbkWQOlZcNVKDXjomWGIEUgEHAAQhAoJLgAnkhgcXAwtsfo2HhEmZQrzHDkMIQ2BxQNw-AJeEJQXBzC0AfxaD1gIZRKIwpForEEslEA1isjxPNFrgcZt8Z08DihoZbE0oeYPEwergYABHNAQZlZVzMKh0TyubZ00TkUiXJms9mc7n4ABuJCMUFIAqa_GhXJWrhKWQqdQs-NhhF4WQZjAqzF41AAomy4lkDfDtij7VkRSRLmaLda0LaTdtbNsjidzpdrndEA8oE8XiA3jgCCtZfLoKQgUgQTx-IJEFweNDejZ0lk3iUViU5gs8Drxvjy0TRAB-UQAWRIvBYGEuWRbbeYGBIfiLmBLXwqZcJldEOO77c7xfz5G2vgCM1CESiMSuWJSyy-_WKG22uwmjRQS9awWY5NwPRWe8Gm32h7GEwOp-ay7azFrS3na33Q0fUZdVfQNTguK5bnuR5nmOZhyGZSQIDwXBCDTHMwSzEAkRQFF9BAJ4OzwnEIyeIp8TwuBLiSWAAEU0GofgiNEXhcDQGAyJw0Q8OuJwOgABWuAQ4CY7iZWoCBaDwjjcJANkGJgPinGkESQHg-A8BlGA8OpQ5o3IEhCAAaxIJIYCBHg0NBTMIU4K4MBgIQTU-PRA1oGB_hQNyUEIJDgRAE0hAAFmYPIAHZmAAJjyQMAAEsBIHAoHwVi-GMBzs3CvIymYQKQFsfL8qAA&query=previewwindow%3Dtests%26file%3D%2Fnumber%2Fclamp%2Fvanilla.js\",\n  \"lodash/number/inRange\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAdgVwLYCMYCcD0EKASgIYoDmM-UA9gCalwAWAdAFYLIgDGtKAFxiCkIfPgAEzAQIAOcROLqMWrPhnz1aPOPgDERMpRgAdFBAyzauAROATD5KhIC-EsLloYJAcmVNmHzMzGAAPKxs4VjDSS1gARgkAXgcSJxgACgBmABoJACY8gBYASjNxZIA-CQFcNFMUEPDrASiYuJh85NSjKgyivIAOMpQKpOra-uCUMIjW6NDY2Vgs7sdjfrz8kbHqsFIoOAamubbFjqK1tI3Cgp3JcfcDo-nZlrOl2ABWK97M-NYt225QeEzqxxmzUiC0-MAAbL90hkvoDivcqk9DhC3tD2ssYAB2REbAC0uQkJNuJLh6MekwaIByIAgcAAQkRSLgAJ5IfZYlxM9DYPCEa5UUV_VhwWQwHgcLigPiCYQCURKuC2WayoT0brAMwSCR4hKIGrgnIGo3nfH5U30i0oQ3GmBZU18o4Op3W2BFN3PGCeq2wr5282W51wv1YwPOgmh-oOlzTdW2fwsbq4GAARzQEEzGR8rBoDACPhGKYky1IRAz2dz-cL-AAbuRoFBSGXpkINQX1lQfHkMiUMfrHVaZTwBBk08wSqwBLQAKI5g4ZLWTmD0EZeidTqtEOcL5doVczkYuEaM5lsjnc3n-gUgIU4Ah96gt8xQdvypCK_hCEREF4fgNR6dJugyIU8lwdIAGUBE5ARoPSRcUF1FIAAZh3GS0Mhg4x4MQiQAB4JCFCQADIKLIzASIkfCqFQrcJAAHxYiQ8JQtC6PIqiaO8UiGJgQibBGE53hhDpEhSN9si2NEQQxelXiheZnS6GSxUyAYJGGRS6XBFTTkk_FVk0v5NjufS9n9IyJOdS5zKRIFaRsrE7Nxb0YB-JyNgBFzrLNKZGkhYyI2JPoUVuUpAvdbFVI-DoiV8voyTySl0ppQLlJQK8WXZFBOR5RA4sfVhZEzGQIDwXAeF_YDlUAkBR0NEwQCODAIDaqMPUtNq4CIChYAARTQWghG6oKAz6kBOU8AB3AAFTlhDgSa2tIJtaAgeg2sDNqc3GmBFs8eR1pACr4DwJtTBAMwk1yx9ZFIHgAGtSCoeV-HqpUANVbhCowGBRBnCV0ivegYBlNDhB4aqFRAGdRCKVh4gJQF4ivAABLBSBwKB8DqQQLGBoD0fiFEihAFwaZpoA&query=previewwindow%3Dtests%26file%3D%2Fnumber%2FinRange%2Fvanilla.js\",\n  \"lodash/object/assign\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKA9gIwFYwMYBcD0AhnHBAOYB2-UKAJsQBYB0GCyI2KFuM3SI-fAAIGuXAAc4iQTXpxmnALb5aKbHHwBiYqUoAdChEXiUAJ1xDgQneQpCAvkLCmUioQHJZjdwYNgArhR4EFxCAGIoKAAUAJSWBkJCuAwQcEyEQgC8QgCMBva-FAFBuCF2AEKEprHxdkkpadhZQgDM-YURKEziLrgouACe4jBMaM0ATAaVpt29_UMjtM0ALIWKdP6wTDAAHibmcM02lFFWhIhCAAwOADRCFDAA7uGRsXcPz9OxMQaCWQB8lg8hHcFxyd3c2FBrQcBhANxAqXKEAoVQGSDAhCgcBg9gR6CweCIJFsxN0FCYcGG2BYbFAnG4vFw_AZcAsu2pPCW2TOYLu2AuLVhFAMrIsXnkzVMMAAjv4INKou4mNQ6N4fkEuGyhOIoIQUVLZfLFcr8AA3QiGKB69wagw8NlK44Udx3GqZQHABJCDk4XBRCUMGJMPoAUTlWKivrwMFoGsS0f9uv1FGDYYjUADavkGvsGvhiLgyNRpnRiEx2Nx-MwfrJpItVr1tKQ9K4PD4iHAgWCoU6NS9dWSqXSzTyFAKIqK3dKoS-cQHiSHjWabXHHUis3682GowmUyqm76gx33KEq0n61omxGHLMuEOPOsF0udyYb4-L2iMVf76eQjnwp_B6QLuCCfIeFCgrCgWSIomiGJYjieIgLMMBiBAMCmKY2AthwbZMvwC5CHoIA4ooEAkRcFY4jc3okaQFBkLAACK_j9DAlFJKY_gwLRdQkVULiPAAClUvBwJxAlmigEC0CRfGJCRcrscJLiSJJIA9PAmFmhxIDtBQIDIeIhDYAA1oQZAjKwXC4Qy7bMuwqKKDA_CBnWlAFrQMDDBQ3lBBhdIgIG_DLEwOQAOxMOMOQFgAAmghBoDAUD4Nx3BGK5nZRTkACsTDLEZ9jFfYQA&query=previewwindow%3Dtests%26file%3D%2Fobject%2Fassign%2Fvanilla.js\",\n  \"lodash/object/create\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKA9gIwFYwMYBcD02ATjAIa4z5QoAmpcAFgHQYLIjYoB2FPSI-fAAIGuXAAc4iQdTqMmnALb4aKbHHwBiYmQoAdLhEXiURXEOBCd5GEIC-QsERSKhAcln0GbgwbABXLjwIbiEAZQZScRgACgBKCwMhIVwGCDgmAA8hAF4hAAYklLSMgE9cgoM7Xy4AoNwQriEAYQgibFh4xKbwyOiFUigoGNT0uKqa1vbYJnFnXBRcUuiK6woYiKiYWfnF5ZgAGm7kzi44XCJ_PFNEFraOw6rxrgNT86t72AquGAB3O-msWeMEyJjMGWwn1seUhgKEEDOuFIQRgKDAAIeBkEuQAfClLjAaiCwbgMowtqsofDEcjsKj0ZtoljhDk8Rd_ISuCADiB0gAhBGkIilJBgQZwGB2HnoLB4QgkGzy3TbODRbAsNigU68XD8N7mYk4Cg0CrAIqwh63dmPHrk6JWgkHCYvILcd6eRgVEgAR38bVibiYVFoXjcz31QnEUFICK9MF9_pigfwADdkdBo2GahRzkm1jA3EcuqzjkJDXgYh6GHEmAsAKK-wYxcvG57JFsxKMxrg1-uN4ZV552Z7c3lwAVcIUixBiqASqUgGVGpWKtOGIakDVILXcHX8OrBUKMoGl0YZbJ5Qo9M9McqX51-QKHppTB5dM09Y8DIYjEpDyZQjsix7CseQAPKYEaTD0HAEAAOZcDEEGyrgCgKusX5zMBSzRHERwficbrstcRC3K-sBOlww41BGFpfHkPz_ORQIGMSpikgoVIwlSCLnLS9IYrAzK4viHJEqC7Fkn00IfHCvFIiiaK9FswkltaBijvygrCqK4qSjyOwwGIEAwEQ7Tbhwu4wHwiAgARQh6CAEqKBAjm3LOEqUckjmwVwcGwAAiv4iyEkgok2t5IBCs4vwAApCtZcBuQ5UUpigEA0I5Xkpb6IWxc4kjJY5czwKZKahc6IALuIpDYAA1qQcHbKw3AWdq1m6uwk6KDA_BViuFCjjQMDRFww1BCZmogFW_AACxMAAjAA7EwABMC2jgAAmgpBoDAUD4JcPBGL1tkrQtACsTCzVVdh3XYQA&query=previewwindow%3Dtests%26file%3D%2Fobject%2Fcreate%2Fvanilla.js\",\n  \"lodash/object/defaults\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKA9gIwFYwMYBcD0AJjGAIYCuUuc-UKhpcAFgHQYLIjYoB2uMfJCHz4ABE1y4ADnEQi6DZi24BbIimw0AxMTKVqAHR4QVUlACdco4KN0UqcUQF9RYcyhWiA5AsZMvRkYq9JQwLDAAHmaWjgC8tiT21AAUNqSIogCMzgA01qJoGQBMufnpogDMzgCURiKi9bEAfPlepF4ZmXleaB2iJU5GIDkgEHAAQhA8pOYAnkhkUHAwTiPoWHhEifo0djsscFI4bByg3HwCuELncFaRR3gwhKLxaZ15hf3OgTw3Vr7MF6icwwACO5AgIOSXhYtHofi8tV-vFuoikUFIUyBIPBkJg0NhADdSMYoBjET9-LdoXsHF48slqi8WsAjKJRPccLhkgCmNUWLgUABRcGkKDJTmPQhI9mS7nozE8fmCkXkMU8-HMJFOJHDUYTKYzeaIRbLVYgdZcrZ6Bz4YmkjEnJBnXj8QSILgoqy06hA5IsAMzADmcCZzTZomDcBYIMJMHMy0ZMae5Gw-OSpGw2Dy6zDLVSogDLEz2cLAfWNTywB1P2ChFC4SiFl98R9cAL5Wyq3ynwGVcjGSqNZ49UaLO87Xe3l6xW-PD1Y0m0zmCzFZpGLCkIMkEHj5mwzs9F3dIFZPHZBhAyxUEEvGVNMByEcvcCmQdgAEVyCh-HfRLhzHIR9nxAGZ3AAdwABRmAQ4D_S9SEJFAIEIS8n3PURL3BH8YEg9wZHgkAt3geM40vIxBnnc0pEzABrUggzCdheEPc43SuThphUGAhF5a0kgQEZiCOHhiF-XdThAXkhAAFhYTIAHYWCKTI9QAATQUg0BgKB8EAvgTB4j0lMyABWFgZJAJxrOsoA&query=previewwindow%3Dtests%26file%3D%2Fobject%2Fdefaults%2Fvanilla.js\",\n  \"lodash/object/get\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKA9gIwFYwMYBcD0A5jAVCgCYCGcAFgHQYLIjYoB2uMHSI--ABDVy4ADnER8yVWnVYBbfORTY4-AMTFcAHTYQ5IlACdc_YP038AvvzCGUc_gHIp1Go507WbOCbh6RsADymDgmALym_JSIkWgxAExWVp7sPvzyATAAHsFYePwRZtH8ANpmaJSGMWbYMQDMSZYAuslsXmlglFBwAJ65oQWRxWwArlBQADT8cfwjbOQwkGww5FO1_AAMrTrZBsZwdH76sAAKlLg0g5oAFEeZ_XhTjpR0aI4AlDp8BQB8_PE7LJ7XAHDKwLJnC5XEjXMHZB64J6UEobJqvSqyD5fARhP51QHA0H2TIQ840ACChkMlB60NwsOJ4IRUxKz0cTw27KcFUMXMc2EcTU-bG-uP-BKMIMO_lgABFFpQxuFzDC7kEQo8nC8eZingtOkqsSKcX9HPrFVBcO5lkDJUTjtl5QbLXSGQ6chrEVr0YZdU5zYbhaK_v6FYaJfs6J1ujAAMLUGCuuEevJe0bjIMm_izeaLCDLcgRqXpqDxuCJiI3aO9ZlavkBy1G4PZktFg5zfX5lZlisq-nVvqep5vPVhxuZ37Zjt5gttugALxgdh7roHtf59bHVonYv4i7sOhAExAEDgACF85UekhqzBLMf0KmiCRn7hDiIcAwmKAvJxuIgWFSExdlCFZBmAHRszVGBIRoBIJkg9JGWyWD6gQths2TWDKWpHo0MQ6CnQtXAYjNLd2UQ5MiKVUiGytdDs1vHsYmnJYVgY_gS2YzixkmRD9xQbiNg41iu3IbiyOdeidEsDw2iA_gXFoQZDBgABHEYIFU65HDofAlLcYV2hMAJKHzFT1M07TdPwAA3ShdHGSgjR0TgfB0zQuWud5JwgjD-BAvBrgM946FwFAAFENK6a5As4chhWzOLrlM_NQvCqKRhikKZOFI8T3PS9DGvRBb3vEBH1CV87Ic6AoBeRgkB_dg_1wHhjL7QZrkfKYRDJKZ9QANS6EYYB8sU_Ozb4AEkwH4PqoVPTiUBMTsC34Ix-AgEwaGoGwunLfh7KgUbEIgObrgAQgWmgfNU3ARkMDDRNnfzvljGgcAAay2uabq2uB-B8Qx80IDbDCiKkaTofgACUYGILJ-BiLg4EexMLnOfgAHdEyUZadsoWzE10xwonmaZqWwL6SAORDvnhxGAqBeqxJiIRRHEPhVMR315HwABWAAODANi-yiFJunCaUGaWejoU85ZSskfIAfnmslkY1i46Dkc5sBoa58GuEoAD0SjoLQtCaIUAGoiES_hvgAMXzcgjpGmAJe8ExVLRl0IilqH5dU8gRmwGBrkQ7MUtU2zcimGmenGv4RDj3J-AAMkz-b08wEok6aDjs0fRDHZmuawBQDsPZOxMlpesD7sejC6Nr0aAG4NouJdsdPRNm6e_ge_br3_MHjC_aVAowgiRv3fVobPa1qfLRkuSOughFwKiappgSRoUh9pD3W3wpd9KcpKj39YGmsZpWg6tdPR34ZeKmGZ57WGItlktg52grBV0W8hzejeDuP4AIbSElkMhUkUJKwwmTOuZEqIfSYggfwfE0C7SwPdNhYOSY4G1lZM5DkfIeR8gFEKbEk4oG7FwYRLcwCZQwBQeggUo4pJNizJJYi1oGGRioswxB9JkGgOeBwzc3DMGhiknOJiCYiGn1ASWWR885xcSUaI64z9UxImkfw2RrYcGRnniuHRejQjDkMYGWhu4NGmKlAJCxfZdEHUHPopwnC5FGPsSGASh5jyngvGwK8N4Dp3mPHQNOJBcAQCXIYbATVAIcC4G1ACk1-BaBAOWOQEAckxFvBxHJfg2CEFgAARRGCtL2SBh6GFGiUkAlQ7DYzOKpbwhTsktNsigCAhYjyIRyRpWpJw7BiG6Tk2J5ZDDExyevNgIByp9WppQYgX52ApN_OklJYS5AwB4AZV8-UFgflzG0BJ34QAGR4AAFjoAARgAOx0HiI8_KAABCoaAYBQHwI0jgehDkAVeY8gWdA7nLMsDCywQA&query=previewwindow%3Dtests%26file%3D%2Fobject%2Fget%2Fvanilla.js\",\n  \"lodash/object/has\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKA9gIwFYwMYBcD0AFgIZz5QoAmphAdBgsiNigHa4ztIj74AEhXLgAOcRLwrU4dFgFt8lFNjIBiEnAA6rCLOEoATrj7ABpPgF8-YfSll8A5JJr2tWlqzhH0WPHwC8xnzEiIFoxPohAEwWFq6sMAAeeoZwtHA6wrD-pnAAFN44uAA0DsT2AJRavP4AfHy4-gCuMHGJybip8Z4wlNnq-ZiFJfbEtGH6FVX8fnUNza1JBh204frEAJ59pAM-xXwA2iP2w-P2ALqVrNUz9U0trFptS6myEHDprADmW3kFeCWHMrDbDnS7XOpgYhQOD3EBFEBvABCEFY4XWSEh0Jg5nhfwI6iIpDSwhw9EYoHcHC4iGYbE8fDahR62WAWj4fHSulgITmMCKbL4XQ4lB5d35rHZqw2oua4vZr3eKM-IUxMPF5ji7npTmk2X0MAAjo0IPrcvZaOQqM5LlqjJliCi9YbjabzfgAG7EbRQKBlS5aDieM3qY58XLlWrGAWMvC5HWEcq0XAoACiRqhuRjwsu7KzuXtKMTybTjQz8cu5kucIRcGRqP06MQquxuMGeEJZE93t9ZKQFLYVNw3FtOWyOxKwmIuATkdZEr41QASjBPokGUlfSieiFBCIxLx9auEvpaHJ8ABWAAcGAADABrAUjyfTgCC-jWmwCb4_tDe342-ZTjOAD8fDPoQfAhOBtCyFO2CELk-C5PsAB6-y0BoGhnBcADU-CfP6876rgjT6BKACE5Hgf-6y0PqlCNNgMC5Pm-rugA8pgJR3jA6wRjcwhsZxGB8AAZKJYFCZg-w8esZwlN4FaanSXhtkYAQmMEoThFEMQag88SLCkaQZFkAT9Hiwx-lMka8gs7SdPAwo_DsQylGM4STFc0yzHc9nPCs74bC5lkHEcJyeRcNk3HZBlPMZCofN85nbKFgKhvYIJRd5kbNlo1ZIiiaIYlCMI4iAtCCTAQgQDA77YH2tLsJwQ40nO7IaCAMKvJ1KqlXyAqdUlsAAIqNCgHC9bcsqDSAqwoAA7gACuEnCaEgfCdcQ7ooBAlCdXKm0gEaE0wEtNiiFNnVVTC-jui0IBaPpIDlZO2B3sQq5kmwjWUi1jWorIMDcPGHbVpQMAkqwEOsNgtXkiA8bcAALLQACMADstCRGj1YAAJhGgMBQPgTTsDowM0ljaPnrQyMveYjPmEAA&query=previewwindow%3Dtests%26file%3D%2Fobject%2Fhas%2Fvanilla.js\",\n  \"lodash/object/invert\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKA9gIwFYwMYBcD0EAdgG4wBOBUKAJgIZwAWAdBgsiNikbjD0iHz4ABI1y4ADnERDq9Jsy4BbfDRTY4-AMTEylADpEISiSkrDgw3RVzCAvsLDkUS4QHI5DRm8OGuROFt0LDxhAF4LYTpEYQBGABphNBiAJkTsGNj7XyIlWgBXWGYYAA9TSjhwq1IbAApgnFwASkMhcIA-SLdYtxi3bDdEtxTe9zQ3bKIQeJAIOAAhYjpyAE8kMDooOBg7GYa8QhrKQ71cZjgJHFZ2UH9efkRObkDhUsu8GBoqy27R_sH3CM-uNJn5nrZPEwquQYABHfIQGG1NzMfCQ7wtIj-F4SKB0YjQuEIpEo_AkOhGKB4tyYwy8QLI6yUAG1JodCyGYSvMqNWroprMXAoACi8M2tTejU-mK5krwtVx-KIAqFovy4v5hjsmOmswWS1W602212IH2BCZBHJlLx1yQt2491wAmxQUwjW-UUyiWSwjSwgycVBuQKRTeZlwlQiAHl3XhijxyBB4PU481mDCaPlsDBapzhLU6NhsIkANoAaxgK0S5Kg-RgAF02WFOrVgPmucwu0WSx3hKXa_WGzFK9X89r4vngHZDLSiG0W10en0BkMgWMJjOpjM5osiMs1ogNlsdjNmBIYeJk-RyNh7U8eHxnY920QufoQNslBAPzFj9tJzfYQPzgYgAHNYAARXyFBeF_YRcHIetAPfEBlmcAB3AAFZY-DgeCPzoEgUAgGgPxQ4CQHhWCYCw5wpAIkAL3gCgyA_LVDBAU0JCLcs6DAmBrm4e87ife99yUGABHRE4bF1GgYEuIgFKxZMbhAdEBAAFmYWIAHZmBSWJdQAATQOg0BgKB8CQnhjCkx4DNiABWZgtK4uxPLsIA&query=previewwindow%3Dtests%26file%3D%2Fobject%2Finvert%2Fvanilla.js\",\n  \"lodash/object/keys\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKA9gIwFYwMYBcD0A1jAJ5z5QoAmAhnABYB0GCyI2KAdrjN0iPnwACerlwAHOIkGVaDRhwC2-KimzkAxMTIAdThEXiUAJ1xDgQ7XCEBfIWGMpFQgOSy69F3r1gArpzwILiEAMRQUAAoASnM9ISFcegg4RhohAF4hAEY4hKSUtAyhACY9G29OMJRGcUdcFFwScRgFIoBmCpgADyNTFIhOOFwaAJgiqwjOGAB3UPDoqL1BDIA-IQBtFxoXABpXNBcAXSEIiB5jGlwgziETKhhjIWShTgahAHNfGgvuGBgqRacPTdXq4FJDYwDd7jUhwCIuJIuQHLdJrTYABl2riyRz0IB2IGSACEBt8SEgwDQoHAYDYCegsHgiLDmWRGHBmthmKxQBxfnxEOwuEMhCCcDwqEVgLkBkMRtgYIgNlssS4DocdrkIVClRjVTiNWUKnyRe4GEVjDAAI6-CCW-GMCjUDxIvQmsziKA0AYW622-0uR0ANxG0C9rqBvyG8Nlw1GWOiq1iNyEyzgJiunGhdDyYzOD0u11uxnuj2erzMn2-Ix4_1yYrwETNTFj8pa6dMC0Y9QAojaqREGxLGK3RoD4kOIp7vZwR4M4wr2Rmu73-1Am875KOFYCbIC9Dxoy5tVmEzFUcmJz1xRu5EwT-8ot2UH2vuuh_92bhIVnx6Lr4204DF-P6Ps-r4Ds2IFQrugL4oScAkpwZIUlSNJ0iADLiqy5AhvoUBetySC8lwPACuA_iBMEVSJtKKaJMkqRFDk9H5IwhSZKUnDlJGVQ1HUDRNC02DtJ0PQZv085tkUADymDiowExTLMNFRMiwgXps2x7GqRwnPmFxXMEdwPE81gVh8Xw_LWAJiaC4LflCsnyXgimwvCiLqUmeo6QaeIEsSpLGOSiCUtStIEvxMBiBADzGNgxFCvyuD8HR8Q6CANKKBAGVKmFNKaimGVwFCsAAIq-A0MC5Qkxi-DAhXpSA3yONMAAK3y8HANUZTQQYoBAVAZY1QgZTaVVtY4kg9SAtTwA8QbVSARqcCAGHiDQ2CEDQ7wtCwXCJXyZEpWwyGKDA_DNjh8H3M0nD3AEsU8iAzb8AALIwWQAOyMMUWTwQAAmgNBoDAUD4HV3AGBdgo_VkACsjBvWtNiozYQA&query=previewwindow%3Dtests%26file%3D%2Fobject%2Fkeys%2Fvanilla.js\",\n  \"lodash/object/mapKeys\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKA9gIwFYwMYBcD0AtgIYAOA0jAJ5z5QoAmxcAFgHQYLIjYoB2uGAKQh8-AAQtcuUnERj6TVm16F8DFNloBiEhWpwAOnwiFSKAE65xwcXso1xAX3FgLKQuIDki5iy_GxoSMAK6wbDAAHuZWcOIAvHZkDnAAFLbEiOIAjAA04mhZAEzO-akAbsRQITD5ANbUAJQJAHziDVTiANTildUwjcZirTbexNleWXneaEWT4iVOxiC5IBBwAEIQfMQWVEhgVXAwTqvoWHhEyQZX-jRscKQ4HFygvAJCuCLvcNZRT3gYAwEqNxlN8rNis5AnwftZfKwQRYYABHEIQZGpLxsOiMPxeQaw_i_cSkKDEbZI1HozHY_CVExQckEmGCX5Y-wGLxlZrxNrAYzicT_HC4VIIliNNi4FAAUTRVVSIsBDEJQuVYrJFL4Upl8pCiolhKchJWa02212-0Qhygx1OIHOotuKXpxEZ5JeSDe_EEwkQPGJ1k5jkSqXO-T0TwsvJagvEAHlMKKIgILBB4OHMFLkQwQtgYKl40LUsRsNh8gBtDr5Po1AC6sfE6WLQvEbA7ZYrraFlajMAsFSqNXqTXrWTrtVbJtyreASz4QsJQVC4X-llwcUSIbSGXBBShp2bk9HVCbHW6vWHAyGEj5oy843m0y8s3mi2Wq3WWx2ewORxOVY2FIZFpAzCwLGwb1Aw-f0QAFRdxEMEBjkICBkKyW1jlnRDkLgbYAHNYAARRCFBBAw8RcAsEd42Q3Z3AAdwABV2IQjCQJCQGIcoUAgBhkJwoVkLRciYGY9xZEo5CQPgAdyhgZDjAXEAHVIMs6mIAiYBefhoPeP0vm4HZCBgEQJRdAwzQYGAnj4GzYQzV4QAlEQABY2GyAB2NgimyM0AAE0GINAYCgfAaIEUwzIDHzsgAVjYNzVKcVKnCAA&query=previewwindow%3Dtests%26file%3D%2Fobject%2FmapKeys%2Fvanilla.js\",\n  \"lodash/object/omit\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKA9gIwFYwMYBcD0KAthAVCgCYCGcAFgHQYLIjYoB2uMnSI--AAlq5cABziJ-5anXpsi-Cimxx8AYmKkAOuwhFRKAE64BwAZpMBfAWEPEBAcmk1aDnTrbs4J9FjwCAXlMBKkQBAEYAGgE0MIcAJgdo7DCAZgFLd3YiSgBXWHoYAA8DYzhA8xJcAApfHFxogG0HKiTHbAcAXQBKHX5AgD5ghzQHOMSMnRBIkAg4ACEIdipDAE8kMCooOBhLGbq8Qiqj0no4URxGZlBPLh5EVg5vAWKLvBgKCrNYxwnM9g8TxMzjoFUMMAAjrkIODqg56PgQa5euxPM9RFAqEswZDobD4fgAG5UXRQTEOFE6LjeOEWNrVbqDUw6AQvEr1apI7r0XAoACiUK21Ve9Q-KNZIrw1QxWPY3N5AtyQq5OksKOmswWSxW60Qm22u32mHqJwIxNJmKuSBuHDuuF4aJ8VQqtUw0VEdnEjICQ2ALPMmC-AnoId8k3YrI9KHE9DARj5VGwtGlnqZFBgsC4AYwjSjoh6_vBuFyhgjvlVgK8PmN_iCZlCEWiPwSbRSAnS_x0OQo-RghRKRlw5SCFldfgaAmarWiDg6BfY_R9w1G4wc4Y1c0WyzWGy2Oz2IHoHpgIggMEMhmw1senG49oefojAi0IB2JBfYX1O0i_pfcCWADmsAAIq5CgXAfgIuCGLkMA_k-L4rHYADuAAKKzcHAkGIYSKAQBQL7wayL5QuBMCoZ6WFIM-IDHjshiEjAL4VuwIAHqIiYANZUABfZMBw163He17LEQMC8EipoaumFzsOmqJntcIBIrwAAs9DhAA7PQ8ThBqAACaBUGgGb4DBnB6OJDzaeEACs9CqWxljOZYQA&query=previewwindow%3Dtests%26file%3D%2Fobject%2Fomit%2Fvanilla.js\",\n  \"lodash/object/omitBy\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKA9gIwFYwMYBcD0KAthLgEICe-UKAJgIZwAWAdBgsiNigHa4x8kIfPgAETXLgAOcRCJoNmLbkXy0U2OPgDExUpQA6PCESkoATrlHBRe8hQA0oiHAByAVyJoY50QF9RMHNiUQByBUYmUKMjbh44K3QsPFEAXmtRekRRAEYnNGzQgCZQp2xsgGZ_GJ4iOndYFhgADzNLODTbEnsACiScXCcXDy8fAEojETSAPgzQtFDCkuqeEAcQFzIIHnpzCiQweig4GD91_rxCbsor_QoWOCkcNg5QOP5BRC5eBNEWp7wMFonRsBTCyz8NTivwizE65hgAEd3BAET1QixqHRIqEJjxoVYpFB6Nt4UiUWiMfgAG70YxQYm4mr8BLouyUUqiHpjGbWIyiP6tAY9WFMMYsXAoACiyKOPX-AyBeIFCrwPSJJJ44slMvcctFeL8eLWGzgWx2ewORxOZxAFwI7KotPpxJeSDevA-uCEBOcbk83l86XovNwFCeKDAmTSqXSoR4AZ80R4sR-iWuFE6fUwZSYOAA1jzUrNgPzbJgQaIWNWkisBQB5TADJp8cwQeDZjDisAWKX0bBMHo9ADa-ZgjlEtKg7hgAF0i7MBwWelOZzyAGTr0S0GCwfjljCj8fzssI3Ducw8A9GSEp_Fpg8DStZXL5Jac8qiKq3ox1WgNGAmlaCxcA6dJHU7AYhn9UZzDxKZizmBZ3xWE1Nm2XZ9kQQ5jlOdYWCkM9cHbcxzGwd1vj4ARvS-Usr1EAwQBOEhGOyHCTgcMtGLgbYAHNYAARXcFB-FY0RcHMGdOPoxjdmCAB3AAFXYBDgMTZOpFAIFoRjpIFRjkREmBFOCGR1JAQj4B8akYEYm8jBAW0pH7fN6F4wD2F4Cj3moiidiIGAhFFW57BNHcnh4Hd8XbV4QFFIQABYWByAB2FgihyE0AAE0HobwoHwSS-BMQKvjSnIAFYWASxy_DqvwgA&query=previewwindow%3Dtests%26file%3D%2Fobject%2FomitBy%2Fvanilla.js\",\n  \"lodash/object/pick\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKA9gIwFYwMYBcD0ADhNgNb5QoAmAhnABYB0GCyI2KAdrjN0iPnwACerlyE4iQZVoNGHALb4qKbHHwBiYmQA6nCAsIoATriHAh20kIC-QsMZQKhAchl16LvXo6c4Z9Cw8IQBecz0hIRpEIQBGABoIoTQYgCZEzkjsGIBmDJtvTgVqAFdYRhgADyNTOFDLElIACkCcXHihAG0XGhcOl2wXAF0ASj1BUIA-c2i4juyhHILOEHiQCDgAIQhOGmMATyQwGig4GBs11rwiRpuyRjhCHGZWUF8ePkR2Ln8hKqe8DAqPVgElZgkkgs8nplj4fmZ3Ax6sYYABHEoQFFNFyMCjUDwuMacXy_QhQGg7ZFojFYnH4ABuNH0UHJhMKPH82KsfSETRGU3CmT-1TaTUR9BGjFwKAAouiTk1_m0gUTIkq8E0yRTOJLpXKSgrxUSbETVustjs9odEMdTudLpg2ndyIzmeSXkg3lwPrh-CSAo7gmFQULwRlIikhOlIbl8oV_eYovNbPUrrhCsUqGUYBVqiZcHVg0mhNhbONhCFpsAwyXcsszRttrsDkcTmcLiBGIQUWIIDBjMZsJ7vtxeL6viHIjoQGcFBBpzFbWdw0Jp3AdgBzWAARRKKB4C6EuGMJRgK-ne0cAHcAAp7XhwQ8X-koCBUafnkDo_cwG-OCRPiA3bwP29IwNOMJ6CAHaEDQZA0BuOYsFww7vGOw67AoMD8OKzpmlQMBPJwBHEn2rwgOK_AACyMLEADsjCpLEZoAAJoDQaAwFA-AntwBjYV8DGxAArIwVHQTYkk2EAA&query=previewwindow%3Dtests%26file%3D%2Fobject%2Fpick%2Fvanilla.js\",\n  \"lodash/object/set\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKA9gIwFYwMYBcD0cMBUKAJgIZwAWAdBgsiNigHa4ztIj74AE1XLgAOcRL1KUatFgFt8ZFNjj4AxEVwAdVhFnCUAJ1x9gfDXwC-fMAZSy-AcklVqD7dpas4x9Fjx8AXhM-CkQ-AG1TNAoDMNNsMIBmS0sAXUt3L2IACl8cXAAaRwpwgAZU2miDGQcigBYASm0YAA99IzhabwMIVgBzQL48vFoS8sqYmW1eQIA-PjrMjVzMfKLwhxbax1LthwBPPYAvB1SigFYm1lb23E6Ygwp9weHcWhayiv3aI-n-APm520IAKIAgcAAQr0YvskGAKFAiBZQa9CMQ0W84MIcPRGKBPBwuIhmGxvHwbvkYGRBsBtHwzLgev0wnUCnSQgZHvswuc2awLJlPGTnDRBgYYABHACuEHF2QctHwItcVyFxmEUAovTFkplcoV-AAbhQdFBNQ4rtoON55RpttkGnMTOyKXhssqGrRcCgAKLShHZV0cMhXelB7IarWsT3ev1SgMe7QWK4gsGQ6EGWGIeGImDIkCojRGk3QTW4pD4tiE3DcNVmYiDFYYIrCCi4ahFY1QKUwR0A52sekzABKMD6rXJbU1vSpYUEIjEvHF45a1Tk-HOAA4MKUANbsuut9sAQU5T0Gp65tHBl6eEbb1EdAH4-EfqHwwm_aLI29hqNl8GycIAD1wloTRNFSVIGgAanwPpLUHV8H1vb5xTIKVsBgbJsgobBsCKXcYH2IoID7eZaSQ-kIDAPhcPw8IiP2dIAlYvgpVYMgYEga4QxCBimJYkwBSovgaLoiBAjYt9UNoWB-nbPgAFo-AARkdPDsEY4ihK7Ht2XpcVcClAxB007TmPZZEhkwK4RI8UkfFWfwglMUIIiiGI4j4BI-GSKwLHSeyslwJs1mKT4JjXbZGmaNpDDuLpGV6AYgleUZIqqKZWBmftFlYbRlledZNj2XYigOY5TguK4bgS-4z2eNLnLeD5xm-X4cv-QFgVBcEoVYGE4QRJFQVoYQjNwCAYE5bAKxJdhOBrYlKPpTQQCIWQIHWsIcyIPk1o2lLYAARSlFAOB2vhGR7A6-HWh4UAAdwABRiTg4Cuh7DRQCAyHWu71ulC6YBe2xRC-kAJvgGbDRgdak2BfNW2wXcKHHXE2HmgklvmwbZBgbhlQxVMuOxTjOGwaa8RAZVuDqWhVIAdloAAmVTUwAAWiNAYCgfADA4qaCe4FnVPOWg6hACwZZloA&query=previewwindow%3Dtests%26file%3D%2Fobject%2Fset%2Fvanilla.js\",\n  \"lodash/object/unset\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKA9gIwFYwMYBcD0ArgHZwwFQoAmAhnABYB0GCyI2KxuMXSI--AAT1cuAA5xEAyrQaMOAW3xUU2OPgDEJMrgA6xCArEoATrkHBB28oIC-gsCZQLBAchl16r_fo6lz6Fh4ggC8FoI0iIIA2pZoNCZRlthRAOwANIJUUQBsdnYAunY-xNa4ABSBOLiZrjTRAAwFjPEm8q4AlPoK1ISwjDAAHsZmcKGCVXj6AqEAfOF1rlGxbq1LC1Trefa2RbYA3Pog6SAQcABCEMQJAJ5IYDRQZLYnkwRlRKTkjHBiOMysUB-bi8RDsThwcxDP54GBUcaWSIxOIJJJZXL5XbFYi-CHmDwMcYmGAAR0IEGJ5VcjHwBK8XWIfkhgjEUBoVyJpPJlOp-AAbjQDFA2Z0StxIVSyq5MuUOnMLPpBIJodVynSOoxcCgAKJkx7lFWwqgMpWGiqs9nEDVa3WEfXq_S2BnHU4XK63e6PZ6vTDVT46fmC6BsgFIIGcEG4PhM8xlcaVTCZMQ0XD0OUhebARWCGYAJRgAHMhsrhmyrnCoiJxJIBMSi4M2op8ABWAAcGAaAGtszGWSn6ABBEwmGg3cZDkc3RhnCej8rJ1NygD8fdTgiiC6YChT2Ho5Xw5WiAD1ooxdLoCgUOgBqfAFhnZzezqfEqiEbAwcrlGjYbCZTswDcmQQOmmbZkqEBgII5QQKEIRhE-w6jowsDEAWa4ALSCAAjHKVAwLA3ARL-0QATcBTgYIxK4IQJjEMR2CkYBFH0XYmSBAyti4v4Ey-sEYSIssKKJOEKSCBk6KCNshTYvoZQJkENRuPUTQtAk7QMj0b79NCpi4GMYRvNMQgZgsNDrCsrhrGiribBiOx7IcxAumclzXCYdyIA8TwwC8ICMGI1G4BAMDDtgYbglwPBRmCWasboIBkAoEAJVE3lkOk2YJXAVwFrAACKhAoNwqWCLgJiEDAmXxSACROAA7gACgkPBwKVCU0HyKAQFQCXVUqCVksVMCNU4EjtSAgXwKFfIwAljpHH5ybYJ2NBFgCnARcC0URdcCgwHwdL-uQLr4X8xD4YyIWAiAdJ8AALIw2GpIwABM2EugAAvEaAEfgFVcIYB1gi92HNow90gLY0PQ0AA&query=previewwindow%3Dtests%26file%3D%2Fobject%2Funset%2Fvanilla.js\",\n  \"lodash/object/values\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKA9gIwFYwMYBcD0AbgIZQCu8-UKAJsXABYB0GCyI2KAdrjD0iHz4ABA1y4ADnERDqdRk04BbfDRTY4-AMQly8ADpcISiSgBOuYcGG6KcYQF9hYMyiXCA5HPoMPhw5xccJboWHjCALxWhsLCAAyI0VyxscSJAIwANDEpaIkATNnJKdiJAMxFsQ6VwumJwDmxNIkALDWxMIkArO3OiQBsNdWGDv5cSrRksEwwAB6mFvZRtvAAFKE4uACUhkKRAHzCANrAabWZwnnChcKlwmXVVs3CbcKdwj19wv0OALqGIEyIAgcAAQhAuMQzABPJBgUhwGDVEAbPBEUh2dF6OBMOASHAsNigQK8fiIDjcYJveabGA0SLHHINYqpDK9K6FRq3cpDGrMlLCZ5tLnvHpcsADXmGf5cAKUyzeRgMswwACOZAgKtWHiYVFoPg8Oy4gSpEigxAhyrVGq1OvRRig5sNY14wW1KzgHguqy2BySHRpeFWioYWyYuBQAFF1aRVnN8Xg6UaAwncKszRauGGI9GyLGQ0aHEbAcCwRCobDEPCoIjkaiCB77dBzYSkMTuKTcAITSFMJsGfz4vUuWcslyOb07hUcsNinV_Skhb1Rb0Jd8pVxRrLxpNpvHzLglsIAPJ9vBMD3rM_bXYiCKHE6ji4T7n3R7AJdvboXNc_GUlkFwUhGE4QRJEgSYCQVXECAYDMMxsDbCkeD4LtyUHfQQERJQIEwxJq0RGpMLgCEAHNYAARTIFBeDw4RcDMCgiJAKFXAAdwABShPg4DozDiEIFAIBoTDmPVGiYA41wpD4kAoPgODCBgTCRgBZEJGIbAAGtiFImBCW4JCSVQpDISUGABBDLE7BLGgYHxLg7ONWCiRAEMBBaJh0gAdiYfJ0hLAABNBiDQGAoHwRieGMCzyV89IuiYFoQAcVLUqAA&query=previewwindow%3Dtests%26file%3D%2Fobject%2Fvalues%2Fvanilla.js\",\n  \"lodash/string/capitalize\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKOAXAThAdgcwPQDGAhgA4SpFQQBeMeUA9gCZFwAWAdAFYLIgEMsqGEKQg8eAARtUqEnEQTGLdhwEBbPEwYE4eAMTEyFKrQA6WCOpIN0qScElHylGjEkBfSWHQN1kgHJlVjYAiwt1ZgBXWA4YAA8bOzhJAF4nUhdTGAAKAIAxACUAUQARAIBKCwk0gD5A_PQYJjCsEAAaEAg4ACFsInQATyQwSjgYD060TFxCTJM3OeNXWg44EhgCbl5QASERVDE9tEkEjYJhJjSGppbwrGP7YPZrpoBHKIgmvI56ZhDKhZHpISFAiNhXjAPl9cgFfgA3IiWKBgwFYCzCNB5ZwLWgBdqSHIVOoOCySU6JTaoHLPNgVDioBjFD6UHJnKnNKpYcnsi45UHgrD0xnMqKs2lcjxcjpdXr9IYjMYTKYYbD4HErOiI5Fg7ZIXaCYSiRD8QQnDXZa7TOpkyQAAwAJMBpmo2AMAILUgAMwoYAFUSBt0ABhVi5CoeJ0uuBUAi5ACMvoAMgwAO4wENhokeO33SJMGIwOKJWyoFLpC1uPJFMpomqpeoFW6tGXdPpYAbDRCjKDjSYgDgkJqyCAZ9AEfWm_bGkDAW1mEDjdQQBeIbxK9rzxdq2AARSiDGEq8kGCiME33MkC4GvlTAAUBiI4Mfr_CGBAmAuL-SFx9DzA718eQXxAId4AzeEYAXCwPAsEB-xIIgCAAayIHAix4QRJz2I1Dj4Dt1BgMRaSWLI3BlJgYA2LBKIeUcdhAWkxAAFg4eMAHYOAAJnjGUAAEACMiAEmAoDwdAoiEKwiJNTj4wAVg4Zj4I8VSPCAA&query=previewwindow%3Dtests%26file%3D%2Fstring%2Fcapitalize%2Fvanilla.js\",\n  \"lodash/string/endsWith\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKOAXAThAdgcwPQxYAmcA6hKgBZ5QD2RAhnJQHQBWCyIAxrVqoVRIQePAAJKqVAAc4iUXUbMWvALZ4itbnDwBiQiXJUAOlgirptdKjHAxBshUpiAvmLDpaqsQHJFTSh9TU1V6AFdYFhgAD0trODEAXntiRyoACh9pbBheLBgfABpfPIKASlNRJIA-MQwwmFMQQpAIOAAhbAZ0AE8kMAYoOBgXFrRMXAJUo2oHGZY4aVz2TlA8gX5hPLR7WNyBIiS69AbgrG2bf2Yj9BgARzCIW8yWGnoAnwrzvh3pKAZsDd7o9nj5XgA3BhmKD_T5nARoTJzJxFMTpMo1WymMS7JbcVDpK6UMosVC0ACiD0G6RieIOXxxtP26T-AKwJLJlLC1KJXxcX2arQ6XV6_UGw1GIHG2HwyKoeEh0P-KyQaz4GyEiBAoSIERgUViVlQCWSWRypTBcsomQtXyqiVq9UaWEFbU6WG6fUQAyGIxaLGktykEBg6HQ3FVPHVgmEwGxYmMUpgqggicQ7nFMEK8cTcBlsAAimFaAI08cGtmsDjE91PAB3AAK3UIcDLNfBtAgRETlerIAeJZgDc8sjbIED8FD4MaIFMLiakukDG4AGsGDh9Rw-JH1jGuB7VDBhESpoYnIKiDAlsRCNwQ6sQEThAAWFgARgA7CwAExvwUAAQAIwYQCYCgPATn4cwjy1L83wAVhYZ8QBcVDUKAA&query=previewwindow%3Dtests%26file%3D%2Fstring%2FendsWith%2Fvanilla.js\",\n  \"lodash/string/escape\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKOAXAThAdgcwPTwDGAhgA4x5QD2AJsXABYB0AVgsiIVVqjD0iDx4ABA1SpScREOp1GTLgFs8NKoTh4AxETIwAOlgiLSVdKmHBhO8sIC-wsOiqLhAcln0GrgwcW0ArrBMMAAeJmZwwgC8VnAk5AAUro4wNAA0wgBGxOhYMACeGQBkwuSZmbBwrgCUBkLRAHxuKelZOXmFwkXExgDcpTDlld5YIGkgEHAAQtg5-UhgxFBwMLbjaJi4BHG62_EwTHDkhKzsoFw8fKgCF2hWYTCEvDTRzeipGdm5BcU9pP1lCrwEYGW7mDyMV7vACO_gg7ySTEotE8NVB3DupCgxGwUJgsPhMEReAAbsRDFBsWisAZeGgktYYK4Mglqo0LAZhPdjqgEhCGNUmKgqABRWFLBKhHmpWpYLlSx68rE4rCC4Vi_wS_my2yysYTaazdDzRCLZardYYbD4Rmk8nQbGnJDnbi8fiITgY8yM14bdnATnCMHCRRkV4BuVctxFVyIaN_XrMwNc1wAHlj0agqETaWTbgaGdcRRw2aTkZTehAhaKsKopdz5eEle8SGjmgAzABOHOB2yB96ofy5YQbJjvZWEIl4ADaRVTDWbAF08DgMi4ok1Q6Rp4pFzqfFg_DRAgcpaZUJEYoyki1Pu0fl0BkNgbL6hu3h82t9Ot0-k-gVUBj6pMMxYHMCxLCsawgEwpADqgEAwOg6CEM6nqXO6IARlylYrIoECVnGZorA2OEgHA1qwAAiv4db6K2GD-DApFNiAOROAA7gACjkfBwIRrHECSVAQDQlYsZWta8FxTiSAJlZwfASEkvRBh9qM0GkMQhAANbEDgBxsNwaEXG61wcGBigwAI_J7Lo-o0DA5BYI5WCEIhZwgPyAgACxMAAjAA7EwABM_n6gAAtkmQwFAeDoP4PBGNZHrBf5ACsTA-SAti5blQA&query=previewwindow%3Dtests%26file%3D%2Fstring%2Fescape%2Fvanilla.js\",\n  \"lodash/string/lowerFirst\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKOAXAThAdgcwPRQD2A7jOgGITpoGEAmAhnABYB0AVgsiAMaFaoYApCDx4ABM1SoADnERiijFqz4BbPHUI84eAMRFSFKmgA6WCGpmF0qccHGGylanYC-4sOkJrxAciUmZj9zcxgAD2tbOFYsGzUGKHEAXkcSZxNUAAo_cnQYOj8ASnMxFIA-fy8CkKwwyJtUGMSoAGEGORS0oxc0HPIAJQBRABFi0olkyr8wYbHzEAAaEAg4ACFsBnQATyQwRLgYN2W0TFxaHsyLjNdWOBkYHg4uUD4BIVQRN7RxCIeeQR0LrAczicRxdAJKCIKr5QqLUHiFrtOQwmZzPwIrBuUJYb52QIsLr5ACOAFcqDAcqxaMpgiU8fwfjIoAxsMSYOTKdS8AA3BgWKCs8Z1d59ALpYyuTHiLJFCr2RF_R7ZQnMIqsVCEIbkxJZZUAgoMsEG7IstlYDVanVkvVqhluBlLFbrTY7PYHI4nDDYfBOKU0fmC1nPJCvfiCYSIXhMgmS3p2VKnBUAAwAJMBTqpmFsAILZAAMVsIABlJe1DnK3Bms3AoBAeFSAIxFNwp3F_RoxCFQrr-hP9OEispTWE1DsNaKsZEdOB9-OZfoYhkj6azUa1Z2rDZYLa7RD7KCHY4gVgyfLSCBkdA8MMx95RkAgrBg0wgQ5qCBvmGHw5Y1_vr6sAAIpkoQgjfuIGBkjA_7iG-WzeMQAAKWxCHAkEIbyhAQHQb5wW-5LgTAyHeHImEgOe8BkLyMBvuYOJYCAJ4yAwPAANYMDgMDPPwd5vJGnzcLuagwCIarXAGnzLHQMAPFgsl4leLwgGqIgACysE2ADsrAAExNs6AACABGDAmTAUB4OgZICJYYnRrpTYAKysOpzFuJ5bhAA&query=previewwindow%3Dtests%26file%3D%2Fstring%2FlowerFirst%2Fvanilla.js\",\n  \"lodash/string/pad\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKOAXAThAdgcwPQAOAhgCZ5QD2JRcAFgHQBWCyIAxhVqjF0iHngAEtVKgJxEAytTr0OAWzwkKbOHgDExEgB0sEeQQrpUg4IK2CAvoLDoK8wQHJpNWo926YAD0PG49EhgwIgBXKFQABVISbBxBAF5zUgAKRyIAIzZHABpBAA4ASl0BQRL4gD4nQUEMtmqnYrxPHyNUfzYQtHsokhjcBKSSVNqc_NzHAH0AWkcirBKyysmp2umJ93mmrG9fNvosCgBRLwwiHr64xK1hzNGAZjmFoQqnEd0QbJAIOAAhbCJ0ABPJDBKBwGCWT5oTC4QikOEkehwAgwNhMFigDhcHioPhYtCCHao7gkAbAXTVQLBMKRaKxRBVGqZeo5CmCDpdeTnelOaarKbrbJsg7HU7c3AMtK3IVYSweLD4kwuOgDdAwACOIQgatS9HIVFcs10ivMUCI2FVGq1OsceoAbkQ9FAzUasLpuGhUlpRskCglKuSsNUiWxUMllbQCvRUEdNUQoMkQyS5sGfMTkgQzdgozHDnGExG5pY5h8vr9_kCQfHwZCQNDYgi8A6nWb0UhMZxuLxEOxOASLIlktDclpchyY_I_S9A9UTQQ1T0BgBZIioBhgShGZIZ0iCKaCaH0WC4Nd-oQAJj9AGoDxgjzwcGu2WrUCF0EHD1oAMqoAFh-cwD0Y6dBOUZaIcWBDKO7IgfYRbyjsrT-FSoThOKlyDDcWS5IUjSlM8SzVLULKNM0uztLBXJ0v0VwpFK2FjLyMyPEIixMfy6ykdsLR-PsRwnOgZzURh1z0fcLH4f6ry3O8nzfH8WAAsCiCgjWnz0ABogQDA6DoGw7a9ti3YgDOgjaHWMDyBA5kMqpMAytU5lwLEsAAIohBQ3A2YIGAhPZbLmQCdgAO5RGqWBwN5gV2hQEA6B8AUgJqnmAXY4hRSAAHgugdowOZuhylgIC1sQbAANZEDgMDopwBlYl2uKsIp8gwHwEYIqWgQopBPBsNpGIgBGfAACz0AAjAA7PQ55jaWAAC6QZDAUB4OgIRcPorU9lNY0AKz0MNxWWMdlhAA&query=previewwindow%3Dtests%26file%3D%2Fstring%2Fpad%2Fvanilla.js\",\n  \"lodash/string/padEnd\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKOAXAThAdgcwPQAOAhgCYCiWJeUA9iUXABYB0AVgsiAMY1aox8kIPHgAEjVKgJxEI2vSbMeAWzwkaXOHgDExcpQA6WCMoI10qUcFF6KJUQF9RYdDWWiA5PIaMPRozAAHmYWcMwkMGBEAK5QqAAKpCTYOKIAvDakdgAUHkQARlweADSiAGwAlEYi6QB8ngVcos1-WAHB5qhhXNFobokkybjpmfokuY0l5aUeAPoAtB5VWDVp9XmFC7Ot7SFdzFg0ZIEYRANDqRm2lBOFUwDMy6vrk0YgxSAQcABC2EToAE8kFEoHAYA4PmhMLhCFlKLCxsw4AQYFw2BxQDw-AJUEIsWhREEUVx-PYMsAjM0IlFYgkkilEA1Cs1PMVKaIen1lOcGUyuFsSuzDsdTjzcIyNkU2VgHP4sPjLN4mCN0DAAI7RCCq3LMah0HxLIwKmxQIjYFXqzXajy6gBuRGMUFNhra2LQuWuJCm2QqdSs7KJqNQ2SVjAqzFQRw1RCg2UDJJgJGWzXjwYIpuw4cjZGjsdDywcy3enx-f0BwJjYIhIChKQRdjw9sdpvRSExvH4gkQICJnTC1JicTFlz5Ns92Uq1TEaz5LJ2WF7oSUvUj3PpwwykrHcPGZRmCxdzz5Arli_2wpO6DO65HW-Y48eU79W7eHy-vyw_yBiBBVY-99VSQIBgdB0C4NtuA7HEhApLBmgMGsYGUCAEMZX8YGleCaxSWAAEVohofhUNEDBogw9kEP-VwAHdElVLA4GIyjbRoCASAQzDRAQjVCJgeJXGkJiQAIVUwXQW0YAQoxZSwEBq2ILgAGsiBwGB0V4CCsU7XFOE_ZQYCEUN60oYsIhRSgBC4YCMRAUMhAAFmYABGAB2ZgACYnOLAABfIChgKA8HQaI-BMAzuzcpyAFZmHsuSHAShwgA&query=previewwindow%3Dtests%26file%3D%2Fstring%2FpadEnd%2Fvanilla.js\",\n  \"lodash/string/padStart\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKOAXAThAdgcwPQAOAhgCYDKqR6qeUA9iUXABYB0AVgsiAMZ1aoYApCDx4ABM1SoCcRGPqMWrPgFs8JOjzh4AxMXKVqAHSwRVBOtXHBxBilVTiAvuLDo6q8QHJFTZt6mpjAAHpbUcKwkMGBEAK5QqAAKpCTYOOIAvHakDtQAFN5EAEY83gA04gBsAJSmYlkAfD7irSVlQVih4aiRPHFonikkabhZOYaOhe0V1ZXeAPoAtN51WA2ZzYtLCzOd3Va9rFh0AKIhGETDoxnZ9kao06WzAMxrG1t7WCDlIBBwACFsFQAJ5IWJQOAwZy_NCYXCEXIPRGTaisOAEGA8DhcUB8ARCVAifFocTdLGCEjjYCmVrRWIJZKpdKIFptZ7lWnifqDVTXFk-Za7Dlck7nS783CsooirDOTokpx-FjjdAwACOcQgasKrFoDH8q1MirsUCI2FVGq1Ou8eoAbkQzFAzUasKZBGhCvdHLN8jUmjYueSeI9lcwaqxUGdNUQoPlg5S1q0E_kCGbsBGo6cY3Gw2tnGsfn9AcD0GDEBCoTCQHD0ii8jQHU6zTikHj-IJhIgQAcIlEYvFEpLbj4ZqxvQVavUJJs2eIvsEwoc-gMo3zmWNsjKyuOkVMqvNlq6PoKdguuku-2KLugrhuR9vbRPHm9pwHH6Yi_8gVhQeDY1Wvzjmq0gQDA6DoDwba8B2hIiDSWCtMYNYwKoEDIaylYwJyiHiMhcDpLAACKcR0IIGHiBgcTYVyyFUB4ADuKRqlgcAUXRdp0BAJDIThSEgJqZEwEkHiyOxIAEGqULoHaMDIaY8rfNWxA8AA1kQOAwDi_DQfinZEtwv6qDAIhhvWDxFtEmJYNEWA8GBuIgGGIgACysAAjAA7KwABM7lFgAAsUJQwFAeDoHEAjmCZ3bee5ACsrAuSAzipalQA&query=previewwindow%3Dtests%26file%3D%2Fstring%2FpadStart%2Fvanilla.js\",\n  \"lodash/string/parseInt\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKOAXAThAdgcwPQAOAhunDAJJap5QD2AJkXABYB0AVgsiAMa1UwqSEHjwACZqlQE4iUXUYtWfALZ56tHnDwBiYqQpUAOlggqCtdKjHAx-spWsBfMWHS0VYgOQKmzLyYmMAAeFlZwrHBmBLBiALx2JA5UABReAAwAHF4AlCai8QB8YpmBWCFhqBEqRATxYgDaXgBsXgA03lnt3gCM6V4Auqw1BCn2hqh5WAVxxQ3NHZkdfQMmIG0gEHAAQtgkAJ5IYERQZE4baJi4hEkTNwaOkQQwPBxcoHwCQoi8_GhiFReqBg9HqwBMYjEUXMsEQJTaELEIzh80Wy3SAwRWCcZU-_18LHq6BgAEcAK4QYlpVg0Bh-XImPHWGJEbBE0kUqleGkANyIpigUCIDKwJmBaDS40c3RSOSKNkRgJ4qBSBOYOVYqFoAFFyScUkrgfQppDDWMhdgNVrdWT9Wqpk4putNjs9uhDohjqcYOcQJdsPgpVQ8HyBUK3kgPvxgd8QBVLFVItFYgkgyqMtl0VMZsVSqLyqEE9VavUmq0Ohnul4-oNhrUUhB5WmG1ns-JZo0FvCxCs1hstrssAcjiczhtWARiVIIDB0OgeJHfl9UMJwVhIUY_TAVBBN3CvWQsRu_QHYABFMm0YF7sQYMkwI9iTckdwAdwACiRBHAb8-ebQIHoTdH03ckrxgd93BkX8QEneBZx5GBNxMHEsBAX1iB4ABrIgcBgN5-EXT4YxXbghxUGBhDVe5khXDZ6BgZ4sAYrAeBnd4QDVYQABZWB6AB2VgACYemdAABAAjIgJJgKA8HQMkqDMSifkEnoAFZWG49CnF0pwgA&query=previewwindow%3Dtests%26file%3D%2Fstring%2FparseInt%2Fvanilla.js\",\n  \"lodash/string/repeat\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKOAXAThAdgcwPTowAOMAhqnlAPYAmpcAFgHQBWCyIAxlVqjL0hB48AAgapUROImHU6jJtwC2eGlU5w8AYkIlyAHSwQlRKulQjgI3WQsBfEWHRUlIgORz6DN4cMwAHqbmcIoMpOgiALzWxLYAFG4AVG4ANCIAzACUhsJRAHzuiUU-WH6BZqghaJi4UTF6qAmkAEacqSIATNlYuZEFbi2cgyVlQZVMAF4wznU25E2t7QAM3b39JSApIBBwAELY4QCeSGCkUHAwdlvV2PhzFPdMcCScrOyg3Lz8qIKfaCIBF58Gh1KycMLoRCFYppG64KEDVrDNJTZwItwiOy-LB_CyeRizGAARwArhBCAkmJRaF43N1cSIiFBSNhCaTyTBKXgAG6kIxQZl07F8NAJe7tOKZfKWQwiAGBGCcRr4hiZJioKgAUVJZzigMVwO6cv1SriTJZWDVGu1JN1Ku6dm6m22ewO6GOiFO50u1wwtwIsXIPL50GZbyQHx4fAEiBAgIqIXB4TqSTcTHucSyOVEfWhyWx8eCTz9tWiiLa6cDjS62el5eGBfKRdRVBTw0rDTiK1rubcGy2O32WCOJzOFyuICYREIEgg03QnAjXCj30EwFlIn0IAuSggW6hXouKQ3W7gt1gAEUSVQ-PuRBgSTBj1g5Vvws4AO4ABXC_Dgd7fbkqAgGgt2fV8QFJG8YC_ZwpAAkBp3gaZuRgLdDCxLAQAnIhSE4ABrUgcBgN4eCXT5ox-DhhyUGBBBVAMGmdGhYiwFicTnd4QBVQQABYmAARgAdiYDoBOdAABZoWhgKACBJXhjDo2MRIEgBWJheOwuwdLsIA&query=previewwindow%3Dtests%26file%3D%2Fstring%2Frepeat%2Fvanilla.js\",\n  \"lodash/string/replace\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKOAXAThAdgcwPTowAOUAhgMYx5QD2AJqXABYB0AVgsiOTVqjHyQg8eAARNUqInEQjaDZix4BbPHRrk4eAMSESFGAB0sEZURrpUo4KL1lKogL6iw6GstEByeYyafjxsr0AK6wLDAAHuaWcKIAvLbE9jAAFJ4AEhCiAGKEdJ4ANF65MPlFngBCpOhYMACengCUxiLxAHxemaJVNfX-WCAFIBBwFdjVdUhgpFBwMI5DaJi4BEkGq_qULHBEMOTsnKA8fAKoQsdoopG75Px08Z1ZPbUNAVgXVj7MD4QAjsEQQhpFjUei-JrGD6ifTYH4wf6A1KeEEAN1IJigZAhWGM_DQaTsBkKohSjXa1mMoiuUT2qBSXyYjRYqBoAFF_jMUtdaaVmlgqdzbikYVgmSz2cFOQy-Y4-YNhqNxuhJohprN5osMNh8ITKHg0RiyAckEdePxBIhuLxLrqYA8UksinAiugyXEOksWLaHS6-YEQmFrhZULEEt6MlkSmVinliZVqi9sa13Y9ugm-sZ5SMxlgJlMZnMFiAWERCJIIDB0OhyCarScLSBgJTRIYQHNlBBW4gXAWYAVm624NrYABFYI0fhd0QYYJ9gcgapuADuAAVqgI4FPW6QUTQIHRW_3-S2QP8JzAV25pFuQKX4JWUUYQMZHJmi0QKABrUg4GAHXi1sc5pnFwubKDAQgMhsyTynQxACHB7wVocIAMkIAAsLAAIwAOwsAATFh8oAAIAEakKRMBQAQwR8KYEGWnhWEAKwsOhICOJxnFAA&query=previewwindow%3Dtests%26file%3D%2Fstring%2Freplace%2Fvanilla.js\",\n  \"lodash/string/split\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKOAXAThAdgcwPRwAOUEqeUA9gCYCGcAFgHQBWCyIAxhVqjD0iDx4ABPVSpCcREMq0GjLgFs8VChzh4AxERKoAOlgiLCFdKmHBhO0sIC-wsOgqLhAcll16rgwZgAPEzM4RhooKGEAXitiUgAKVxoAWgAjRI5XABo3RNcASgMhSIA-YQBtBMy3ZMrXdIBdHyx_QNRg5gBXNAAVAHcKSOjdeKTU9KzXHKyAJnysQoiS8poa6oasXwDTVsYcdBpCehhFeAHrVHiwCgpAXg3ACx3AWAI7x8BzHcfAMx2avIKRBbLXMBqFEBNSeoNe1w-axAGRAEDgACFsDR0ABPJBgUJwGC2GFoTC4AgxMhnRhEGAcFhsUBcHh8VACGloYTNcm8KgDYAGYTCUJQRB_ZbjarjeoZLnCDrdPr8pYrVx1MVYbm7faHY5SP4A8ZA7Ugh5g97yxW2AyM8weBgDdAwACO7Qg1vijHI1E8XywZuExBo2CttvtjtczoAbjRDGFlrMDLw0PEzpVYrlihZxSyOOcLfRcoxUBQAKJ20KxNNs2bckuxb3YbO5gvtIuZ2a2WbQ2EIpGo9GY7G4jDYfBnPCh8NQGiUpDU7i8fiIEDNLbBXkDBIpNJBs7xHKzeaLCpCmr1RrzoIsTqoXr9KIr0brombvKkkgcGCxAAM023P13gqq8sahQAdUOJVUEOQYbDhYROhgdkelIehhFAmBmWMVAUSsGBCGRGhc3QLIAAMAGU-1wbQiXwnksHZfCAH1SXI75hDgsJRBoYNkKQ4QqAgMAwBga0eGEZIYHoNiIFMRBvkY2j6N0Ci4NAlDCDQqwSJwHk4B5DCsL2XDEJoABrE5oPQRJCH458IHY9kOFEvZ034uBGNiFUDiOZCOCgM9HKTMN2XaQwuCoDy7JoBz0E02IgswihsFaJM4v6MKuAC1AAG4pLmEQiLUsi5KY-ClJUvF-w0rSsR0nDTC4igTiwChzFQQyOLVYREsY5KKFSyjYOgcJrVQdp0CVErcHA8xknQgBVLoADFEgARgANmEaKAtIOAsh6egIFsgqWOCvEKBRRjOLgIanBwHDkKwh1gkywouiS4NYvZUDILhc6YAIgBJHgoEYQiYBwY5aXQCiAEEAAUftWrqoHZYSoKxKgHpEKHYDoZD6t4RDRPMCDNJx4QURgcxzsIFoYLapVZodGBLj8DYWmCVy1ROKIIfQPYUUYRxnFiJoemEP7UABoGQbpfjE1JYHQfOf4rlBfVwQ-XJs0UfZYnFWJLCxSXBObZN9flgxP2TcotTcHVrb1R4VcNKEYThREsGRNFEAxKAsRxEBGEIAbUAgfj0A4CdOCnOkBE5JVhD0EAsUUCB4_5L2sUVbl47gftYAARXaBqYBTxD0Hab7xXj5EnB6KHkT4JykDjkA2Ne-OM6bu1C6hpxJGL-OA_gfj2PjgwTSwEBfawjgDJoHAYEpbhw5pad6XYN3jgETNCV0VtgvMqi-A4YOqRATMBAAFkYBaAHZGCmBbWwAAWSGhhKgPBS54IwYAEW-FoAVkYOfCethQG2CAA&query=previewwindow%3Dtests%26file%3D%2Fstring%2Fsplit%2Fvanilla.js\",\n  \"lodash/string/startsWith\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKOAXAThAdgcwPRoCG6qcA6hKgBZ5QD2AJoXFQHQBWCyIAxnVqhgCkIPHgAEVVKgAOcRGPpMWrPgFs8DOjzh4AxERLlKVADpYIamXRLjg4w6QrVxAX3Fh0dNeIDkS5ipfc3M1RgBXWFYYAA9rI3EAXgdUYicTAApfAClCADdCAGUeTBlUXwAaP1yC3wBKczEkgD5xDHCYcxAKkAg4ACFsYgBPJDBCKDgYVx60TFwCVKNnGkdjalY4GRgeDi5QPgEhVBFDtHFY7Z5BBiS29A6QrDPUcQCWO_QYAEdwiC-sqxaIxAvVzC9xDIoIRsJ8fn8Ab4gQULFBoWCsOZBGgsmsVpVxBk6i07OZxBc4jtUBl3lQ6qxUHQAKK_CYZS5UmAMBpYckc64ZKEwrD0xks8Js2k81w87q9AZDdCjRDjSbTWYYbD4PEmPAo6DQvZIA78QTCRAgMIMSIwaJxGykO45fJFEoQMpInXULI1QgYpqJVrtTpYOV9QZYEZjCZTGYgVgyL7SCAwdDoHjG3im44iYBk8SmEBTNQQQuIDwxmAVfOFuBa2AARXCdEEZfuHWrvILIGIXgA7gAFYhCOBtwv5OgQBiFzvkwu_FswAdeORjkCJ-CpvKdEDmVxdOMyQg8ADWhBwts4_EzhzNJ24kbUMBEtMWaXWVDlDBg2yw3-eKb7CAtIiAALKwACMADsrAAEwQXKAACABGhDITAUB4A8AiWM-FowRBACsrCgSArjkeRQA&query=previewwindow%3Dtests%26file%3D%2Fstring%2FstartsWith%2Fvanilla.js\",\n  \"lodash/string/toLower\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKOAXAThAdgcwPSoD2AMoQO4zp5SEAmAhnABYB0AVgsiAMaFaox-SEHjwACJqlQAHOIlE0GzFrwC2eWoW5w8AYiKkK6ADpYIq6YXSoxwMQfKUxAXzFh0hVWIDkixk29TUxgAD0trOBYlJjEAXnsSR3QACm8AWjSAMUJCNIAhenQM7wBKU1E4gD4fDLActIAjQuKgrFDw1EjaGDB6AFcoG3iHI1S6wgL0UvLxWOrvcaap1varTpY-rG70OF50GDiEw0pUgH1TzIB5S9O8gEEAJXPprAq5n3Px06Xn0xAAGhAEDgeWwhQAnkhelA4DBnIC0JhcAREkYUcd0Cw4NIYNx2JxQLx-IJUMIiWgxO1cQJaIdgKYxGJoogamlxo1mmlvP8GUyev1BiyFjkltzeZttrsrDAhZ8ct9Cs8eVhnK1yTY_MxDvsAI59CD7VIsah0fwvdViaRQejYbUwPUGmBGvAAN3oZig1pepgEaFSI0o3LEyRKVVsvKp3FQyU1TBKLCIAFE9fQoMlIzSylhGRnklabVh40mU2nY1nnFmAUCQWD0JDENDYfCQIjsPgA1Q3R7rfikIS-AIhIgeHwKR3Doiw4iE6jKABhRhOrPBMJrLr-Q4d1K1epLYpZt7zHe5PdclariJRfkDIZHJJjHKTF6HnyLQqBLArjqRCWUKX7TdZxSbw5UIBV0GeA9ZnmUDwN-LAq2BUEsAhKFUybQEWGkfYpAgSh0G4PsR2JIcQHpbMxGMFsYFUCAqJZRsYGVRkqLgNtYAART6QgBHo-x0D6JjeSowoPDIAAFQpBDgPiRJdQgIFoKjmMokA9R4mBxI8WRZJAbD4EoF0YCo0xVQQ5tpHobgAGt6BwGB8T4IiiUHUkuBQ1QYGEWN0SSKtuhxLZBG4PCCRAWNhAAFhYABGAB2FgACYYqrAABJoGhgKA8AE_hzC84cEpigBWFhIpAZxKsqoA&query=previewwindow%3Dtests%26file%3D%2Fstring%2FtoLower%2Fvanilla.js\",\n  \"lodash/string/toUpper\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKOAXAThAdgcwPSoD2AqgA6kzp5SEAmAhnABYB0AVgsiAMaFaox-SEHjwACJqlSk4iUTQbMWvALZ5ahbnDwBiImQroAOlggrShdKjHAx-8pTEBfMWHSEVYgOQLGTLyYmMAAeFlZwLCH05rAAjGIAvHYkDugAFF4AtJlghISZAEb06NleAJQmookAfN7ZAGIA8o2ZAEIAggBKpYFYIWGoEVExMABMickGlBm5hK3F5ZXiCbVeTY0dnQFYQaGWg5HB0aSwAMwT9oYZAPrXs9dF6LeLWFUr3rfr15vPJiAANCAIHBWthigBPJBgehQOAwJyAtCYXAEFKGVFTdAsOAUbjsTigXj8QSoYREtBifowbgCWgTYAmMSUo4jWKIOqZdZtLqlf6M5nHWCjdlrZqbLx8rBM4YnGCnEWfZrfLrPSVOXrk6y-ZgTdAwACOAFcIHqMixqHQ_C9NWITvRsLqDcbTV5zQA3eimKBQegvEwCNAZS6UCViNJlGo2flUmlpbVMMosIgAUSNMLSMdpFSlzNxqDSduwiZTaagcctzGzTmzAKBILB6EhiGhsPhiIw2HwwaoHq9PvxSEJfAEQkQPD4FO7EyRkaRSbRlAAwowYOHev19kMWbL4kluxlsrNCsVStm3qsGs1ud1MttdgMt4KxhcF-kvLN5ugXufvOtxeu9nCQ4n3OPdXxuO48geYpnjPZZVkVRplU6X4sFrYFQSwCEoRhOEERAFhSD1KQIEodBuEHcdiVHEAGRzIwQDhFQIAY9kWzhSUmQYuBO1gABFQ1CAEVi7HQQ0YE4sQGOKdwAHcAAVikEOAROkt1CAgWgGMkhijSEmB5PcGRVJAIj4EoN0YAYkx1TQ_DSHobgAGt6BwGB8T4SiiRHUkuCwlQYGEeMMVSWtaBgCgsHCrBuFIgkQHjYQABYWFiAB2FhRliWsAAEigKGAoDwMT-DMQKxwy2IAFYWCSkAnAahqgA&query=previewwindow%3Dtests%26file%3D%2Fstring%2FtoUpper%2Fvanilla.js\",\n  \"lodash/string/trim\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKOAXAThAdgcwPQYQC2eUA9gCYCGcAFgHQBWCyIAxmVqjF0iHngAEtVKgAOcRAPLU69DiQpk2cPAGJCRADpZiYsulSDggzYIC-gsOjJFBAchk1a9nTpgAPfYbj04e2EEAXlNMIgAKe0EqACM2BwBKHQFggD4HWLZXLHcvA1RfNgBXNFtg0OJIgFoAfSrM2qr7ABoHOvskrBSg9PtM7NzvAvoiKjFygG0osDIyB1aomKp0BwBdEbHwzU7u9KmZshaHJfR7VZ0QZpAIOAAhbGWATyQwKig4GHMrtExcAjD_sQ_GIYGwmCxQBwuDxUHwoWhBJ4QWxuBRysAdIJBP4iGJYIgMnEWpjBMVSkQCX0ic0SaMxAT9rMjvYTmcaVhzG4sPCjE46OV0DAAI5FCCCyL0UiUZwdHQ8wR4qjYAXC0Xi-ySgBuVF0UCgVFlOWhaEimiO4QSaWMJKRoNQ4T5tAS9FQZAAoiK3uFbSiYBROliffbFdhna6PUUvY7OuZOpdrncHuhnohXu9Pt9CH9NHhtbr9eCkJDONxeIh-EIAEowHCeRFefXYP0EkTiSQCQW1jzoeS2PAAFk1ADZGDg5ZwEWYQuEfq14iFXFol3AOmkST96ILFWwYOEsDAAO6Cas4N1ecIAAwAeuEJgASYBscyrABUCXC9BfAH53_fH8-3zvC8EgWO8ACZDUGfJfBxPEYHKKJMgcF0wgtZIhB6Qksi5JFoPkEpXTsEJNGqOoGnaBZ2h2DDen6HC8h8DZxhCKYrFmeYHEEE41iYmcrRIuAEmoq1GUOBZWXOLB4xue4sCeF43g-L4QHoMRBVECAYHQdA2CLdgSxhPgMSwLEtBAD4iAgMyCTTD52VM8zsBwWAAEUijIbhrNCIoYHswQzOWGwDwABWWHg4C8gLNTICAKDMvyzJFDyYGCmwJEikA1PgLTNRgMydE5KTlLEKg2AAayoWtwU4PSoVLWFWDkogYD4R1ASIeMKBgEEsC67lNIhEBHT4ft6AARgAdnoMCxvjAABJYYhgKA8HQIouGIFryymsaAFZ6H7EBzGO46gA&query=previewwindow%3Dtests%26file%3D%2Fstring%2Ftrim%2Fvanilla.js\",\n  \"lodash/string/trimEnd\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKOAXAThAdgcwPQYQC2AolgCZ5QD25AhnABYB0AVgsiAMbVaox8kIPHgAEjVKgAOcRCJr0mzHkTzlqXOHgDEhUhQA6WYlOrpUo4KL1lyogL6iw6akVEByBQ0bujRmAAepuZwzHAmsKIAvNaY-uQAFO6idABGXB4AlEYi0QB8Hinpvlj-QWaooVwArmiu0bHEtkkAtAD6LWlc7S3uADQeHe7ZWLlRBe49XSUgfSAQcABC2HToAJ5IYHRQcDD2c2iYuARxtidNFGFSMFxsHKA8fAKoQo9oooHXXPx2McBGolE4SIUlgiEK0z6ANENTqRHBkw6kKM9j8WDeFi8TAa6BgAEdqhBcUlmFRaN5hkYMaJQXRsDj8YTie5SQA3OjGKBQOiU0pPNBJGwUfqiBKZfKWaGfG6oBJYljA0EwTLMVDUEgE7YJaXfGDkMIRZVSoIyhK07AGkGwFVqjXVLXyy1KkaAnWy81YJ2wACCUFQNvVmqgcvJSkV1pRIyM_AF7iFdkAyAQAAoA7hBUIwYbU1W4uIxVnRdeg4CKxRL_lhXSbviHFCxYTmA3atW69cps64XR9q-7uRaG53VYH7cHHQOiCN7CNZvMlit1pttrt9iBDth8PG8OzOdy7kgHrx-IJEMIxAAlGA4QLdj168ESaSyES4q8BdDKVx4AAsrIAbBBqipXh3njBoEkOAYMhiXwDFgktxXGaFDmYXFaS4GAEiwGAU1EC8cBIIIEgAAwAPQSZgACoAH5MgSABtAASYAuHsABdCjMgYojMgGdwGIARl5MpgkqL0YAaZIug8VVTgoMUcjEcYIWKNFPgqUJwxgX0LBieMkiKDJeTGCYDJKYT1PbOEGj0xFOnSHoRXcIYRmMjwphUrAZwWZYsFWDZEC2HY9jmZgpFxSQIBgdB0C4fduEPZ4hArQEDFXGAiAgVLwUC3YoUrURUvCXBYAARWqah-Cy2JqhgPKUpAVYXBTAAFVYBDgKrUroVlqAgchUrqgqQAJCqYGalwZE6kAwvgKLWRgVKUSMEAVykQsAGs6CvO5eDix4jxeThfKIGAhHlc54hncgYGuCgBC4SL7hAeUhC_Zh-IAdmYAAmfiZwAAVSNIYCgPB0GqPhiFOk8vv4gBWZgvxW-wUfsIA&query=previewwindow%3Dtests%26file%3D%2Fstring%2FtrimEnd%2Fvanilla.js\",\n  \"lodash/string/trimStart\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKOAXAThAdgcwPQYQC2AyqgIbqp5QD2AJuXABYB0AVgsiAMa1aoYApCDx4ABM1SoADnERi6jFqz5E89Wjzh4AxIVIUqAHSzEZtKuODiDZSqnEBfcWHS0i4gORKmzL6amMAAeFlRwrHDmsOIAvLaYhg4AFF7i5ABGPN4AlKZicQB83pnZAVhBoZaoETwArmgecQnE9lSpALQA-h2l3R1eADTePV55WAWxxV59o6YggyAQcABC2JQAnkhg5FBwME6LaJi4BIlt1HZGqJEyMDwcXKB8AkKoIi9o4iF3PIL0zWApnE4iiRBksEQJSy3kGwPE9UaRChMyy_SGpicgSwn0cvhYzXQMAAjnUIETUqwaAw_GNTLjxBDyNhCSSyRSvFSAG7kMxQKDkOkVV5oVJXBxDcTJHJFazwn73VDJfFsMEQmA5VioWgAUVJu2SCr-MHokWiGvloUVySZ2DN4Ngmu1erqBpV9vV4xBRqVtqwHtgAEEoKgnbr9VBlTSVGrHZjxqZBKKvOKrIBkAgABQB3CCoZgIhrazw8ZiUcjG9BwSXS2VArDeq1_KPKNiIothl0Gn0m1SFjxe76N30Cu1t_ta8OuyPusdEcZOcYLJardboLaIHZ7A5HQinVPUHl8gWPJDPfiCYSIUQSABKMBwIUHfpNUKksnkYiJD-C6FUHjwAAsXIAGzsAA7PS_BfPuzTJMcwzZPEATGChVYylM8LHKwRJMjwMDJFgMBZuId44DqoTJAABgAeskADaAAkwA8E4AC6ABUOTJKwnEMZROTDF4DEAExCpUYQ1AGMDNGkpTeFq5zXNK-QSFM0JlNiPzVBEsYwMGjjxPuqTpDCQqTNMcnlOJ2m9kizRGV4_SzAMgmjOM5nqei8yLMsaxYJs2y7PshwgKwMhEtIEAwOg6A8KevDnm8Ih1iCxggPsRAQGlUKbvscL1uIaVRLgsAAIp1LQgjZQkdQwPlqUgJQ7hZgACpQQhwNVaXkFytAQPQaX1YVICkpVMAte4chdSA4XwNFXIwGlmLzCFMjlgA1uQD6PPw8UvBe7zcP5RAwCIKpnK01xLvQMB3FgN04lFTwgCqIgAawACMYGsMJH1LgAAhkmQwFAeDoHUAjEKdV7fR9ACsrAASATgoyjQA&query=previewwindow%3Dtests%26file%3D%2Fstring%2FtrimStart%2Fvanilla.js\",\n  \"lodash/string/upperFirst\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKOAXAThAdgcwPQCuADkTOgGITpp5QD2AJgIZwAWAdAFYLIgDGdLKhhCkIPHgAErVKiJxEE-szbsBAWzwM6fOHgDExUhSpoAOlgjqiddKknBJRspWr2AvpLDo66yQHJlFlZ_CwsYAA8bOzh2egB3MgBhFhhJAF4nEhdTVAAKf28YBn8ASgsJDIA-APJ0YtCscKjbVFjndBS4NMyO1zQC8gAlAFEAETKKqXSa_2HxxpAAGhAIOAAhbCZ0AE8kMCYobvcVtExcQmyTN0vjftR2OFI-Lh5QASERVDEPtElI57CBgZBwWSSSBLJVKIWr1EpLMFZYxdGAwuajCYIrDuMJYX72IJsEH1ACOBCoMAK7FojGCkzxgj-RCgTGwxJgZIpVLwADcmJYoCz6RZhAN_H1cv4lpI8qVqqCsOCATA-PlCaxSuxUHQRmTDnllariuVFf8oir8szWVhNdrdQR9eqTe4TctVhstrt9odjqcMNh8BKbnyBSzXkh3oJhKJEPxGfYg39Mmd5QADAAkwDOalY2wAgvkAAy2ugAVSuKNl7kz2bgUAgfEpAEZSu5U7iAa1YpDOqkQYn8oU4fTKjNYQ0Oy0YuwOij-1d7oMMSPprN5hMLG61pssNs9ogDkcYCcQOwiPVZBAyOg-BG458YyBgIizCBuuoIK-YYfuljwa-4ADWAAEUCDoYQv0kDACBgP9JFfbYfHiAAFbYRDgSCEJ5OgIAYV84NfMlwJgZCfHkTCQHPeAyB5GBXwsHEsBAE8iCYPgAGsmBwGBXkEO8Pmjb5eF3dQYDEdVbhyNw3QYGBSCwWS8SvN4QHVMQABZ2CbAB2dgACYmzdAABAAjJgTJgKA8HQAghCsMTY10psAFZ2HU5j3E89wgA&query=previewwindow%3Dtests%26file%3D%2Fstring%2FupperFirst%2Fvanilla.js\",\n  \"lodash/util/attempt\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKArgF2gegIZrTAWwAc1MoB7AE2zgAsA6AKwWRAGNyA7fbpETTAAJaeInEQCK1OvQ4FMlcmziYAxLnzE0AHU4Ri5AE5pBwQRsIlBAX0FhD5AoIDkUmrWe7dMAB5EjaHD0cChsbPBwggC85niWaAAUEJrRAHyCyYTBRFDJCc7OAJQANC5waIYQnADmRboCaYIA2togcK2lrTognSCGHYKtEAOtnCMg1a0Aul6cvv7GQWDY0CiGMNGxmiRJKVHpmQTZuYkFJYIAjIX1QvvNACoAnkQwAKKGDoaIGZrHyRmRTjkEzYOwoThsDBcGacHogCBwABCVWwhkeSGWUDgMGsxRA6CwFi0ODiWmyMDYTBYoA43BgvEQ7C45UE8wp-Eom2AukEghCYQi3yazjgzlKzjQYpchilzggss4stqU2KPLsKygaxg3zmAHdBE8Xu9PvlDn8TAjBECQWCIVDFSVdNZZrSWW46Jt1gBHFAQdb5ehkKjuOoQ5kmHIrTiemA-v0wAOYABu2D0UCg2FDunw5XyRJIUoShUa3OjrL87IS7tohXoaHIrx92CgCTZkJglGuZbbiUjVVr9cbKGbVeDdC71i7cIRyM4qPRiEx2Nx-IwUBJ21IKbTGapSBpXB4aD4rpBpKsMQSYHBbFK9HvqOqcGLd1LvIqj1Mat56zQa2j14Qgk970I-z5qrYbC4GwtCCK2xZvrygi_v-rIQU6szzAEQT8uEcCRDE-aJIcjRmnAOR5Gc4rlJUNShg0dwtG04zdL0_Q9IM8LjGMHGtJMIAwt4fjYfQyyrOsmxEbshCkb85EnPkRSlFcNyNE0hpvB8RjfGRFEWoCwLmLakIQNCujTkiKJohizbLni9BEL-GAwB8bD7kydIMiAiGtNiBDDEg6pYjAqplr5VTVLAACKKDAjArTfBUKAhWqrSog4uoAAqovS7SBWlSbkBAlAdKlIA-nFmUOGICWcY58AuUm8UgBhsIrkQ2BsAA1tg1QwFSXDubSR7uXOBAwHw1YbvEcKUDALycHNEIQPA7nVnwAAs9AXAA7PQABMFxwgAAgARtgp0wOuhjghg418HtFwAKz0BtIDWB9H1AA&query=previewwindow%3Dtests%26file%3D%2Futil%2Fattempt%2Fvanilla.js\",\n  \"lodash/util/cond\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKArgF2gegMYHsB2AJplLoQIZwAWAdAFYLIh75oytIiaYAEVaaAA5xE3UhWo08AW0yFc2OJgDELQgB18EaYNwAnND2A81AGhMEw-6XHMs4acq3MQ4AORTSARjD3np5GjYVPDmDiheACp6KDA8AL48YHq40jwA5OKUVOmamgBu5HpJKPjYPAC8FkQAFADamjw8dQFBIXA1xunk6Yg8AIwJAJR2BA5OaDXprcHwPACC6UMAuqaNzSxWejadGV69PK4e3r7Do_jjrFMz7TwAQkur63XhUTEw55eT6fi4PDePNb4ZZDPL4GAAD10BjgNBu8HmlRKZV23QO_XM6X2fQATMNNNxKgA-DLwuALXL4TSQ6FoWFku5IsClbConp9AAMmOxA3x-EJFRJ00Cs3JDzBNP0dJovwAsiKqEyWWyDul-uluaqcek-QKhb9_grKZp7IZpCgoBh5noAOYAYQIhAgGAISLU9WeNQh5gAnkNiTwITwST7zF7ff7BYGeABaHg-ngAKh4OKe-CadRqkZJaHeYe98ez8djgbTIIlUKlsMg-Rgsog-BQcAAWr4_lVzZaINb7Y7nRACDUuTwAKyg_m8KM1BNxiGRipVGojksc-dVEcV2mwtAAd1w9cbcAA8uC7j7InukZ2rbaHUR-4OceZ-uO9TwvSWE8m8Wv33i4ziv4cpuVY0Lu-4Nk2F7tv8Fo3r294uvgNRPimr6TiS04lnOlQLn-JaAbhVTAfgICmCArh3A2RQ-kgYDkFAcAwPE5HoFgag4I6NBwIIMDYPQjCgCwbAcIgzBjIYNJ8WwhBIsA6xkvMfTCm0cyLECTQMspZL3Bq6xygqykGgCGlJBAtYHk2rYpH0I6meBlnHqe557py9l7o50FuZo8RgqaPBZNQSJ6DAACOKAQCFUw0CQZDZEsJoSTwghQOQDbBWFEVRekMWFFoUCpQlVKsPA3xqBq75FvJ6Y8FJ2CTIFVBDGBuAAKLhQxNR1TJ45NN1NQpWl-DNWgbUdVANSNeO8TjmRFFwFR-A0XRDFMSxIBsVAnFEJgeXQKlAlIEJBAiWgnD-WolTrIIaV6OSgrrDUNDPc6MDSFV6xNFs77-XUgghU62CBB8STAjwuBgMlt1wP61VNPDhyQwNAMQEDbBPS9bDvbDn0IzwIVoCgejpmAyHPTQr3vbjTS-TVNPrLTBRFMi5RVO6DQ1XUEABhANDkERAxhkWKmihSaYZtzUa814AvHD4eg1NLIyVQGIu3A84vNFmAa5rEQuq8ZRpluO1KVjCcIKgiSool07KC3sBx4jNBIYaSlvkosIHmwy1usrbBzDli6K6q7atzOKxWSubBltL7KrKeqmrKdqIcG38AJ-Ul17drefZIW6joepz4aFgGQYhvmEZl5-SYpprmZFrrIMl36AYzqWQLlpHZvSjWdaQS2bZXnBOcIU6SFDuYY4uwGWGzr-S4rr-G7d1uYEeQPJ4wGe0HD12PZ3uPA7IahL4z1OQZxl-aECyhBFAV70oOQPu8diPB958fKHmIB5-Ye3OEFyLn_DfIBPASJzUotRPQtFED0UYsxciNB_owAEBAXwehsBHXEiVUSIA4Y8HUCAJi0gIBEL6PApipkiFwAbDaWAABFFAuA2DkJ4E3ahIAigpB3AABSKOwOAbCiHkHyLgCAGgyLrCIeFFhMBeEpGEMIkAKCmJ6FrEQnymgQDrRutgAA1uQG0MABIEGwcJdgZ0mBLWkDATgjVtqEDmoQGAvEiDsGwOgwSIBGqcAACw0H6AAdhoDifoc0AACXhyA-C2jEVg2g7FiRCf0EcNA_E6PiFk-IQA&query=previewwindow%3Dtests%26file%3D%2Futil%2Fcond%2Fvanilla.js\",\n  \"lodash/util/constant\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKArgF2gegMYHsB2caAhvmplLgCbFwAWAdAFYLIh5kxlIiaYAEdNGgAOcRH0o16DPAFtMVXNjiYAxByKk0AHXwQ5I3ACc0_YP00ky_AL78wx3HP4ByKbTqu9eq_2MwaCjG-AAsAEz8ALyWBFpkABQRAJR6ctQosAwwAB5GpnDR_oHBYeEJqfh80QB8_BF6IAA0IBBwAEIQ-MTGAJ5IYMRQcDC2LehYVto4cdZoDHAiMNjMrKAcaFxoPH65S9ibVEUN-L6z_B70RQEAjigQAQmuDBTUnq6VfiJQxF3XMHcHjAni8AG6kaA_D4-ThEJ5TMiuJr8Cq1cx6fj8PbLNAJS50ZIMNC4ACidyGCWxBxgVEqmKpuO-v3whOJZJQFPxlVslWarQ6XR6_UQg2Go3GGCgM0Ic0w4P0UB-qyQ6wIm24iHY5wRZhiPQA5mjUVE6gazjLikEQhEijqkuFKmkMlk9iY0IUYgErWUKnpqib6uFGi02p1un0BkMRmMQAwRF6MDBjMZsCqtZwNSBgBj-DoQCM5BA84gHFGYE0c3m4F19bAAIooXCbYv8NDGFDlysgHpOADuAAUelw4C288RQbgIFQ8xX8Ji83cmzB-04xKOQPH4EnQTA83pbI0YyJiNgANbEfUwVYENMbLZp7pyGA8fHS-LbFpUGBLfBf_DYCB4DTfEeFCBgAEYAHYGHCcC-QAAQAI2IRCYCldsyAMZ9NWg8CAFYGFCEBbBIkigA&query=previewwindow%3Dtests%26file%3D%2Futil%2Fconstant%2Fvanilla.js\",\n  \"lodash/util/defaultTo\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKArgF2gegCYzAQxSjQBUB7TKM7fOACwDoArBZEAYzIDs0YekQmTAAI6aNAAc4iIVRr0GnALY4y7OJgDEuAkVJkAOlwhKJZAE5phwYTsLFywgL7Cw5skuEByObTpejIxgADzNLOAY7PWEAXls8e30ACgBGABphFIAGAEojIViAPkzArhCwtAiCKDgAT1j43QcyJK8vDOy8rgKY4rbS8otKhhQuHQgy7Aao5qTR8cmO3KDQoYiuIihphL1yJI2oKCWuwfCGLnwubabkgDl8W-P8kV7MrKMQNJAIOAAhCfw5lqSGqcBgTi-6CwM30OB2zQYcAkMHYzFYoE4PD4aAEmLgVnKKN4UziwCMwkaiUQmTS5Nc-BqtWpbVpV2E8zwExg2Gp2VZFIOUF5WX5wguXGFrKcpTxVl89Aa5hgAEcUBAla0GJRqH4vF1ZcIJFB8BNFSq1RqvFqAG6XaDGvWlXj41ow8jtYRJHJFax0wnsNBJeV0HIMNBkACiqoZSX9xK6FLjSSNJq4ofDUZQMeDXScXU-3z-AKBIIZYIhIChUDhN3ImFtxkO-DRSAx3F4_EQHG4-MpuzIDSS-AyACNva8h7E4oLhAAfWfCADyI6YRIYPyHGXut29AH5hCPhNT8F0VhUIjDrok9uk3l0esUUgNVmdQfU4m6Wiy788ff0uGeawjGMnKTFe_ZzCBkCLD-ZQvsMM4fvCySCk8cHnuclzgbM25oQ-bwfF8Pz_BcJaIKC4JfAwEhKuIEAwOY5jsK23ZYp2IBkmyBggGCSgQNx1IUaK3FwBMADmsAAIooGQvACcIaDmCgMDCSAgLuAA7gACoCfBwPJ3H4NaZAQNg3GqaqskwFp7hSAZIA0fADHWjA3FGNKXAgBWEj4OwADW-BiTAaLcCxmIdjibAXEoMACMGNbXmQBa4MiIFcOw9HoiAwYCAALAwKQAOwMAATCkBYAAIjvgI4wNWSk8CYsVdsVKQAKwMLlXlOD1ThAA&query=previewwindow%3Dtests%26file%3D%2Futil%2FdefaultTo%2Fvanilla.js\",\n  \"lodash/util/flow\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKArgF2gejFA9gd0zwBMBDOACwDoArBZEAY1wDs0Y2kRNMACCtGgAOcRDxLlqzALaZiuRnEwBiHAQA6LCNKG4ATml7Bea_LwC-Jvbmm8A5BMp3Nm5iziHSxYrwC8vAApSABpeACMASj8APl5SXgBqcJcWNw9eOABHFFI9GD9eFhjC3gAqQpS0z28AZWzc_P9TAIBtL2JQrJy8gF0IzWlcYhRYKhgAD10DOAL2uu6YAIBGUIAmfpYeYoBOTRBgkAg4ACEIFlyATyQwUig4GHMD9CxTbDx8KjghGEZaelA3OxOIgmKx0hNvox2D5_LsWK4wYZHBQCnlshA8gE7FQiENJHYNlVeEIoKQzqiYOjMdjMAA3UhaKCkgkpdgeLGmOyhAJRXyxYCaXi8CE_NABZERKhoXAAUXqUACIqhMGIGyFSrFJLJLEl0rlOQVEs05g2-0OJzOl2ut3ujxAzygbwIdIZ0FJfyQANYQLQXCJpj8gpMKFSMz5QYCVCjuQA5nBedEg0KwCHFFQ8sNGIsAkI8rTQmBUgneC1C4xI1HczBaREeqFY_GWgAGHqVRFxbwFIKhSLFeJJMJt9yGLoNApFPklcrwmdEub1PIFZptbydBcwPoDIYjGBjSb6NBhjvEeYNZZrDZbSdws1HU7nPRXRA3O4PA5UKuCCAwPR6Rie0E2A4X0QQFIpeHUEB7mkCBIMQEwbRgYIg0guAzhjWAAEUUFwdg4N4NA9BQJCUJAXJrHwAAFBp3HwyDSFpXAIGISDkPAyDslwmBKOsEQ6JAKt7j0WkYEg409jtIRSEYABrUgY13OhWAAwFgIA85pBgLhkSdfAzWIGBvhYAzUm_f4QGRLgABYqCWAB2KhViWM0AAEwlIMIYEdIi2G0LSQQcpYAFYqCskBzAiiKgA&query=previewwindow%3Dtests%26file%3D%2Futil%2Fflow%2Fvanilla.js\",\n  \"lodash/util/flowRight\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKArgF2gejFA9gdwCUIBzACzUzwBMBDOMgOgCsFkQBjXAOzRl6QhMmAAQU0ABziJhNeky4BbTNVwc4mAMQ4CxcmgA63CIom4ATmhHAROoqQoiAvrfO5FIgORyGno0bAUbg4MHhFaamoACloAGhEAIwBKayMREXMYNBRzbnCRAGpEoyd_bkDg0Ly4AEcUWkyo7hTgNIysnLy8gCoRbhKyrm44KwjqAGU6hpgRAF5bPHt9KIBtWvrM-LGAXSSjRVxqFFhGGAAPM0s4OfDIyY2YKIBGeIAmPe5hOYA-EQBOIwgWIgCBwABCEG4DQAnkgwLQoHAYE5gegsHY9BRsItMWhGHAJDAOCw2KAhnwBIhODwRiJzoSQjBqDcAf1gjSrD4yDdMnUII1PIwqId5J4PkNaRIoLRITyYHyBUKAG60YxQaVisp8EZRTwYhxoTzxKIpWa_Vp5OkXIloKJcpKMNC4ACiUygUXpNqZH3SnpCUSlMuajpdbrtIoYHycHyBIPBkJhcIRSJRIDRUGxugNmBVaulJKQZJ4FLQgglVn1-jmbQq6h-bSijCbDRIcFN3za6VrcEYmSVMHMSJNvaZKA4jwDffiYGC7ZEKxnHEbTYkfaS2y25lbSRWAAZtoMObdmfMYvFkj98kUEofhlZ1tMbnkzX0RL02UZy8f7o_5pWKKsD6bMeuz7IcxwwKcFwWGg1zzGMP6NC8IjvEYXwvqysaghCULmLCiDwoiyLAowq5ZBgA7mBwhbUrw_CllSFrpAYIBIooEAsYgtjJjAsRtCxcCQiQsAAIooLgfCcSIaDmCgvH8SADRuPgAAK0zDFJLG0EquAQNQLF8ZaLF1BJMAqW4UiaSAZFIuY_YsQM3AgKmEi0BwADWtAkJBrA8DR5L0TRUKKDAghcpmSwULG1AwIS3AxcEEDwDRXKCAALIwTwAOyMK8TyxgAAgktAJDAGaybwJihVSOVPAArIwaXOU4LVOEAA&query=previewwindow%3Dtests%26file%3D%2Futil%2FflowRight%2Fvanilla.js\",\n  \"lodash/util/identity\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKArgF2geggExgOwzQE9MoB7HAQzgAsA6AKwWRAGNzCC0kRNMABLTRoADnET8K1OvQ4BbTDnJs4mAMS5uEEgB18EeaPIAnNAOACthHcQEBfAWBPl5AgOTSatd_v0d8OHNyACNGGDZzAF4LASpEAQBGBz98eUoUWHoYAA9jMzgBGOsiYgAKUPDIgEoiqJjKiLR9fiKAPgE0ExQYfRAAGhAIOAAhCHwqE2IkMCooOBh7QfQsEttsPBsSejhRCKYWUAC0bl4AoIFcvciYHCLO7t78f04Lrzp7kxgARxQIL7K7noZEo3nc1RegXMoigVHGnx-fwBQMwADcqAYoLDwakTkFAWsSO5-gIyrUoh1gPoBJc8k0yu9aNV6GhyABRX5zMpXJq3CH4Gk8yJlGFw_DM1kclBcxn8-z8gZDUbjSbTRCzeaLZYYKAbbQkNEY6Cwg5II6cE6EM6vcyEuwxKjtOKpc7BMJNe6WeJJFLPNIZLJXUxoQrFTalCrump1BpR5r4VoUh49PqDYZjCZTGZzBZLED0URfEQQGAmExsM3sC2nRAgKkCgS6EALeQQJsJDULfrUxvN8YAc1gAEUUOQTu3kzBuw2m5MXAB3AAKkwIcAns9R5FwTenNKbvzHMEXLnE65AhfgpdRvRA-nsfTzoiobAA1lR-zADpxK8ca6AJvIMC8IyepbNMgx4Hs-CbGwJaHCAjK8AALPQiQAOz0AATIkioAAIhFQIQwLq3Q2IBvAYYkACs9BISA9gMQxQA&query=previewwindow%3Dtests%26file%3D%2Futil%2Fidentity%2Fvanilla.js\",\n  \"lodash/util/noop\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKArgF2gegHYHtcAOmUuAJgIZwAWAdAFYLIgDGu2aM7SImmABFTRoCcRLxIVqNVgFtMpXMziYAxHkIAdbBBkFcAJzR9gfdQT4BfPmH24ZfAOQTKVB1q0yyKWDRgAPPUM4PgBeU3wCAAoASi1eUIA-PhRsUhhIbBhSLRAAGhAIOAAhCGxyfQBPJDByKDgYC3z0LDMcCJo4AhhmekZQVnZONG4BuCN_LuYOUlDk1PTSrPdsUaNnaln9GABHFAgtyIcaYjIXB1iVtjG-AihyUs2dvYOjzAA3cm0oO_PljjHDmYHLk-DFEsYtHw-BNumhIusqNEaGhcABRXa1SIwqZZC5Q7Fw273bBIlHolCYhEXCwXPIFYqlcpVRA1OoNJoYKBtQjvT7QO69JD9NgcLiIFhXIxmWZgkJJYAWZaeUjeGC-AIGNDBMJmGJxfhyuZpDJLbB0wolMqVaq1eqNEA0AhbIQQGD6fTMIUSwZikDASF8DQgeoyCBBxDWW0wXIBoNwUoAc1gAEUULgOOG-Gh9Cho7GQOVbAB3AAK5U4cEzQfIb1wEGyeXzu3TMBLthEVZATvgbreMCDWkVZvtBHIzAA1uQE2qGGwvQNRcMmGUZDBuAjuQQ6WkuvMVq6-iAEdwACw0ACMAHYaAAmc90gACACNyE-YFyc-wdGvxdfzwBWGgTxACxQNAoA&query=previewwindow%3Dtests%26file%3D%2Futil%2Fnoop%2Fvanilla.js\",\n  \"lodash/util/nthArg\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKArgF2gegHZoBYCCATgOaZQD2AJgIZx4B0AVgsiAMYW4y5IiaYABHjRoADnEQDKteg04BbTFQrs4mAMS5CpADrYICsRSJpBwQduIlBAX0FgiFBYIDkMunlf79sM2BRsdkEAXkt8awAKAEYASn0YAA9jUzgGOEMxWFCHQPZI1xpXABo3ACMSt3ZK1ypXeOwBUIA-cu9sfQCgnKtSSIBaACYGpJS0NOwYEhoMADcYHK78wpqK0tdq9bqGppDWjfaQYpAIOAAhCGwaIgBPJDAaKDgYW2P0LF6yT_SxGHZmVigTjcXiIDhcOBmUZ_NAwKg5YD6QSCDJGWCINrFJGWKYzCDzDEHLHYWw-IIQsweeg5IgwACOKAgtIKDHI1E89X0wMhgiyNEuNPpjOZrlZsxoBigUCKDX0sMhBU-lUisRa5mx0PYaEiVLwsQYaAoAFEGY9IprYVQGsiLZE-Zd9YaTSgzbqGrYGkcTudLtc7ogHk8Xm8MFAcBFSJhxZLpQCkECuLDQeDsDzPqFsRAqIkWtjIgwC9cSHBVXtscii2k4FAIOwYJEs4lSo3BABqQRxADaAAYALpkvy5bphT4xEbJEzjdKZbJhJYFIrrNZVGrbfS7fYVMlLHoRkgDYYJCepBiTaZzBZzvIL1Y1TZuNeNIR7Ff6L2nC5XW73R7PV4gBgxFpUQIBgIgiHYeMUyTNA-ERbBkV0EBngUCAkIxQNnmJRDkMuEhYAARRQChYXQwQ0CIFAYGwwQkOuJwAHcAAVrh4OAyLo2YKCzJCaKQhkSJgJinAkDiQCA-AwPmJD9FJbAQH_MQaHYABrGgSBgAEuCg4EYKgq4FBgPhdXDHQSC9KgYF-bBLKCUDARAXU-AAFgYaIAHYGEGaIvQAATKGgyhgMNKNwQwjLBTzogAVgYZyFNsRLbCAA&query=previewwindow%3Dtests%26file%3D%2Futil%2FnthArg%2Fvanilla.js\",\n  \"lodash/util/over\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKArgF2gegPYDcYBOmU2AJgIZwAWAdAFYLIgDG2AdmjB0iJpgARU0aAA5xEfEhWo1WAW0ylszOJgDEeQgB02EOSOwE0_YP00F-AX35gC2OfwDkUylUc6drNnGNgUbZn4AXjN8AgAKAG0AWXI0WjlyAA8AGn5Y-Jo5CDYAXQBKDzY5MhRYGhgkgyM4YJt_ZnCARjSAJjSAZjSAFkK2PmCAPn5I7rSm3J0QFJAIOAAhHPICAE8kMHIoOBhLGfQscxwwmjgRGGZ6RlAvTm5EFnYffkqz5k5SOtHxybZPR-MXNQ6gQYABHFAQEHhRw0YhkVyOPpeJ4iKDkHLAsEQqEwzC4ci6KBoxFFTg-aHmRxpcL5IYmHT8Z5Vc5ocKAqj5GhobAAUXBm3CLxZMFIfUZQre4VR6LYnO5fJQAvZfUsfWmswWS1W602212IH2UCOhDxBOgaMuSGu7FuaB4yOM5mCDP4ywsQUGLvCNB9ywA5nBaR6XYy3VlyCJwn4AnTo40fTR_YG-n9vL4GnVzFEMglkmkc1kcgUiiVSGUYBUqoY0LUQnHmm1Oj0-gMPSMxvwJlMZnNFmxlmtEBstjsZjQRCDhBBCARmFaHhwuHb7sAXVoQNtsuvEDZdTAUmuNzk_bAAIoobCcbf8NAEFD7w9u7AAdwACssuHBr-vyLhsBBSHXA82EZddwUvGBXzsMRvxACd4EIfB1x0Swpn1ERyGYABrcg_QrBh2HnG4l3nfs5BgHh2WNAh1VIGAzjYOiAmnK4QHZHhuhoJoAHYaFaJp1QAAQAI3IYSYCNO8OD0Cj7l4poAFYaG6EBLDUtSgA&query=previewwindow%3Dtests%26file%3D%2Futil%2Fover%2Fvanilla.js\",\n  \"lodash/util/overEvery\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKArgF2gegPYDcYBOAovgQJ6ZTYAmAhnABYB0AVgsiAMbYB2aMfJCEyYABAzRoADnEQiqdRk24BbTNWyc4mAMR5CJQmQA6PCCqnYCaUcFH7ipMqIC-osAWwrRAcgX0GH1NTbh44GzAUHk5RAF57UkNyAAoAbQAhbGxYWh4AGlEIOAAxCDN-AF0ASmCeGAAPS2s4JnCCMoBzOPcozmSfAEYfGp4ROIA-UTQCFBhahqa0Fp4UKChuyOjklbWRsdjJsFooODmeUwWrJaYeXI3e5IA5Wke9sQP3Y9PTEDyQIvSZVo5CQRxOMBcf3QWAcSQosKcrSkME4rHYoFC_EEiC4vHCogWKP41G6wFMolEbU6iCmMxgeXJoh2UBpYNODJ4FNuPFZX3pphctVC-P8jG6BBgAEcUBAJf0mJQaAFhiE8TYpFBaGVxVKZXKfArcLloJqVec-PA0P0EUYfAVklUJrZGYTOFbRQwqkw0NgiNLjslXcSRhSg8kNVqeF6fX6UAGPSMXCNfv84IDbiDEGyIVCMFAcIknJgjWY1rQ0UgMbwsWghMKbA4AMpeGDdTgMFEAazgTog_G8H3bXZaMCcySHnE7TonneSfZgKiqI1VYQivW6TZbaUy2RguQKRVK5Rg1XmjSuLSpPC68U2fUGZv2k2mszPi2Wq3Wt4ezLeTuzb4XjcdzflszyvKYT6fOCPx_ACQKZtmkIgEwUgSpIECEAQnCVriFrYiAZKcqIxggKcKgQKRvLghyFKkXAnSwAAiig2D8FRtKzLRJEgMCngAO4AArAgIcAcaRtC4NgEDUKR3GkdKbEwIJngyOJIBofAhD4KRAo_MhUi0JOtAdDAaK8LhmICLWHC3CoMBCB6BYGE4KbUDAyI8O50SYeiIAekIAAsTADAA7EwABMAwpgAAgARrQcUwPmMx8OYDk4uFAwAKxMIFIAuIVhVAA&query=previewwindow%3Dtests%26file%3D%2Futil%2FoverEvery%2Fvanilla.js\",\n  \"lodash/util/overSome\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKArgF2gegPYDcYBOAytgLYyZTYAmAhnABYB0AVgsiAMbYB2aMfJCEyYABAzRoADnEQiqdRk26lM1bJziYAxHkIlyAHR4RSU7ATSjgovcTIxRAX1FgCZUQHIF9Bp-PG3DxwVmAoPJyiALy2-PbkABQA2gBC2NiwtDwANKIQcABiECb8ALoAlAE8MAAe5pZwTCEExQDm0a7hnAmeAIyelTwi0QB8omgEKDBVtfVojTwoUFAdYREJi8uDw1FjE1MzdRbzTDxZq10JAHK0V9tiu660UHDTPCDZIPkpxbQEAJ5IMDPV5OT7oLB2AwUKEOJpSGCcVjsUBBfiCRBcXghUSzRH8agdYDGUSiZptRDjSYwbIk0SbKCU_Y0ulnHiU4EvFk8JxVII4nyMDoEGAARxQEBFPSYlBovgGgWxVikUFoxWFYolUs8MtwWWgqoVPGM_BCPVh5E8uQS5VG1jpeM4aASgoY5SYaGwAFFxc8Eo6CYNSQGEiq1Tx3Z6fSg_a7Bk5Bh8vnAfmcAUCQTAwSAIVAcHFoZg9SZlrRkUhUbx0WghPyrBbHDFOAxEQBrOB2iD8Uh25ttxpwBwJPucVu9lujhJdmCkcqDRXBUJdDoN5JpDIwLK5fJFEowCqHOYDiZtC7rPpGnZ7amH44LJYrGJrboM-525m3hqnc5Py43O7GFeTxcsYSbfL86aIJyoKfEwUgipIECEAQnAVlifACDWmLEjwpKGCArykBA-EcpmtK4aI-FwG0sAAIooNg_AkVSUzkXhIB_O4ADuAAKfwCHAzH4bQuDYBA1D4WxlEgOKjEwDx7gyEJIDwfAhD4Phxi8u82ZSLQo60K0MDIrwaFophaFnOQQiuvm-gOEm1AwAiPBORESEoiArpCAALEwvQAOxMAATL0SYAAIAEa0JFMB5pMfCmDAQhBb0ACsTA-SATg5TlQA&query=previewwindow%3Dtests%26file%3D%2Futil%2FoverSome%2Fvanilla.js\",\n  \"lodash/util/range\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKArgF2gegE4EMB2A5jJlAPYAmucAFgHQBWCyIAxmfmjJ0iJpgAIaaNAAc4ifuSq067ALaYKZVnEwBiPERgAdfBHmiy2NAOACtxAQF8BYbGXkCA5NOo1nevTAAeRk3B0vriGsACMAgC8FgTEABQALACUevxRAHwCANoADAA0AmEFAEwFAMwAul74vv5ogcGhMMVRMdpxALTJqYKRmbkFHUUCHaUjldW1xvVBPiGisGWtljBxwwCsKfhpfdnDY2UFCVX43n7TDXNNCcuxq_kCxQ-bPRnZzwVhD2HrJ2d1l3msHWt3aDy6gzCWx2_XBw1Ggwmpxq5wCsyBMAAbKD4sMEgUctDev1hqS_iiAeimgB2HH3IlvLInEB5EAQOAAIQg-Fw2AAnkgwLgoHAYNZWegsCscHc6HBRDBWIxmKB2JxuGheGq4KZaoquBRWsA9AIBI0FjAwoh3p8SuUKnkTWarhbitaBiN4WMOpVHfhTebFu79uUjg6nYGYAl3R9Ct9fn6Ay7gTHIYNvb6I8mscHbYVw_7nRjqe6C9ZqtrTG5aMsYABHFAQbCrZx0UiUdzOLaVgQLXDc2sNpsttsANwI0CguC71S4OrizhWzgKcSSb2Nhb1rDQcWrNCSdDQZAAog3hXEtwatkmFdu4n3uQej6eUOe91trFsWWzOdzeQLECFEUxQlDAoBlbRMHHfQoCnZUkFVDguB4RA2A4HU2isaI4h1Xk0AKbgKAKblWGbeQNTXXYN1NNIIDAAQ0BoGAzXwQ12QEfAyFMCgYEgGoKDoQSnR7dlj1YgARXjWjQPkFTIejCIEABCSJomcFBWN47kYAoTxCzSQTDyYuwmww3lCBQcjOAEWgyBQKBDQAI2YxjmMU-SGOMlZDIjVjWlEiSpIAfhYw1rVwkwnQMwSCENHIbJoOyHIEZzPOYiK0CdDL_LgMSKEk-iQuy60cmqGjBDotKBBIsiNWquAOK4gQeL4nSCgAd2Y9h7MNGodIEXABAAagiYxPSiwQeIVVjuUIAQOAEdqmNc7BFuY3lmMIMhZoEFBRHm1blHa5FTUquIZLk-iapgKzTFUtSNJa7TdLXajTWq_BSJuurogAWVwRi5QgQh8AvPyOhstA8OvGwyoENJWGFVh7IBnbXIEWAiGEeb6PR3k8D5DqaAgVgaCEagBqgdrcD5BqjxS5ijDgCAMFHXRCx7THCEY1p_sB3BHLgOIwcNCGMrXQQ4mu26BAAH1lwoki2CaBAASX9YweNW-nmzQFBsH9dHsGB7Hmzgez8LWjiYH6-mvoB9brfagbsAJlX2pZsn0cRqBkanA0Me4bmydikzYOq0wPZ59GWZuhqMp2-xHBV9HsvHKAUGYoaqvTzOcY-r7broYT0NMcwzYtmxWgAQVdmm6CT-Q4nMLmec_OhmwoFBWFWJ1TWbix4AtgpkddurPzeZu-_etJcFEabDW9_Xm2s3OXLIKqK6gUx8Zp6fTS3tB3UMw-R-XjUC3emfBFwCgKDR4zpbq-ml7H6zY_kff4cEenUpQUU2KG2MiiUwsc8AYA4F_UeK8j4CGgXVbOT9OCJnep-FBppzDwM4OFKGJgCiH1LLDQsytCy631v6Q-ehyzIimGiSMERogrESAyXYHoQwCCRP8C4VJXR0k6N0bYxIbSenTIicktCZiRiWIwu4awCgvEEYydhhwBDHEmKiSR2YbgyLBCUZ4LDYTyM-PGcRGjARNBBDo-I4J8SegMcIoYojximMpJGbEVjVh4gJPYrIpJPguO4ZGWkHi4iEleKw5krJ2Rch5PyQUwpRTihAHQUQusMAwFdqwBCaF1QoRAG9HQIBRTyAgIU60QFRQoMKczIgsAACKKAuK6CQAxbAmcqkgHxmQdqAAFDa-A4BlIEIU3Ao5toUEKR0hsTSekOHEEMwpqT4AZLZoUqhegQBJNELgVgABrXAxBlQcGyWqZCmoWA8nIrwPcEFiDfimoRbgrAIDwGyXuXgCQ6BhGpHQYoYRvwAAFHICxgOBNpnADAwF4D8n4dAEibOsIi6wQA&query=previewwindow%3Dtests%26file%3D%2Futil%2Frange%2Fvanilla.js\",\n  \"lodash/util/rangeRight\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKArgF2gegE4EMB2A5jAEoSEAWamUA9gCa5wUB0AVgsiAMa35ox-SEJkwACKmgAOcRKLqNmLXgFtM9WtziYAxHiKlyVADr4IKqbWxoxwMfuJlKNgL5iw2WirEByBUwofU1MYAA9LazgWMNwLWABGMQBeewJHIzQACgAWAEpTUWSAPjEAbQBmABoxACZq-OqABgBdYPwwiLQomLiYGuTUgycqTIBaPILxJJLS0aqxUbqFhrEWto6rLujQ2KlYcoGHQ2dMlYBWfPxC6bLs6vml-Nb8EPDN7p3e7MO045HG6o1AFiC6TYpleJnerAqGrZ6vTofXawM4_IYZTLA8bVUbxS7XGZzHFLXFNeHtN6RbbImAANjR6ROKzuq3xUxmK055I2VJ6exgAHYGX8so02eDSs8QJUQBA4AAhCD4XDYACeSDAuCgcBgLhl6CwR2G1CNGRYcCkMG47E4oF4_EEaGE9rgNg6VoE9AGwFMYjEfISiDKD3qZMqvv9n35NSDs3mixxKxa4fwfoDMHKsZZIbETxTaajsGysch0OqsOTEfTZ1jRIWJKTzXzkZptJLodzTarhcFsa7-BcbRdNn8zEOMAAjigINgYJkfCwaAwAj5LsOxHtcErx1OZ3OF5gAG4EaBQXCrtoCV3z03OHzVTK5cE-1ORy3cLKjii5FhoWgAUSnLVMndD8YHoS4C3fLJNyVH8_0AlBgK_S4XEuaVZQVJUVXVRBNW1XV9QwKAcF-Y0jxPKAzxtJA7T4AQhEQHg-FdQZGSoAZMldFU0GqQR6GqJVuFnFRHSfG4Xz9QoIDAMQ0AoGB_XwL05TEfBaBsegYEgdp6BYfSI3XOV_2UgARbSBjQVVLVoWT-LEABCJIUh8FBlO0pVwKCV9Cn038FPcGdWJVQgUFE_gxGYWgUCgL0ACNFPkxT7NsuSAqOPyq2UgZjLMiyAH4lK9INuOsCNfP0ggvUaSKKGi2KxAStLFNKtAI1anK4BM-hzNkwqOqDRo2ik8QZOasQhJEx0JrgNSNLELSdPA6oAHdFN4GKvXacCxFwMQAGpEisZZyvELTLWUpVCDEPgxBWhSkuwO7FJVRTCFoK6xBQKQbqejQVpeV8xsyKybNkyaYHCmxnJctzFs8-hV1sCM_QhqGBgAWVweTzXIfAQOy0ZIrQHjILEQdAZGsRuC1bgYuxz6krEWAiA41KmZVPBVVWigIG4CgJCYXaoBW3BVVmv9GsUyw4AgDBDxgQyWJHQRCHkzHsdYXA4rgTICa9InWqfcRMjR6aAB9zdzXJLlOsQAElUysLSnsl2c0BQbBUyZ7AMnseAYt4561JgHbJeEmBsZekOVt27Aubtla5YFpmaagOmz09ZnVfVqrAqoiabCT9WmblyHZtaz6PC8O2mY648oBQRT9vGhum5u8H8AjqGWCV_BWLsWc4ED8mBgAQXjsWWGrlRMjsFm1YFtCWFnegUG4OcUbEOf_eHqAg7p-PprQ8E563qmpFnC6vVTz3ZwitvEtocah5HzmxfP3fA9jQ_76DvzX7737H6EBYhCi4HoPQRmAUzYRUlrfI-EUy4qE_oUSWTUUA6hUt7AKFIbBlzwBgPgn9f6OiDKQiKLdYG8S3mhZsfo7AULQCVEm1hqiAOYWUZo5MIy21fO7T2qYOGmApgid41JeiJBSLeEYEwrjsmDICDsawKSIgkdGYUxoxhyIJGUOsCZlhkjEbyHsBxpFkQxOccUNxSjZiUZ2YxWx0zfHMeiE4wIgTlmsRyWE8QYRGNUeI6smiMRYhZLibxej4wNgCTyJxPZ6SuPYlkZkTRImlE5PUZ4cSkS9CFEkkUmJ0lShlHKRUyo1Qai1DqPUIAWCXxgGgDAMB47cFosxB0jEQCSTEMYEAOoVAQD6UGfCOpmx9NlkQWAABFFAGlFZIDktgJu4yQCc1oCtAACq9fuwzelrMPB9egfTVlTnmZszwMg9l9IaTqbACs-kiNMCAWpUhcDcAANa4GIDaPg7T7QMSdFwZUolhBflIm4qgGFzr8UENwCA8B2lfmENkFg8QBQsBqPEDCAABOK2sYAkWWfwcwMBhAYshCwbILyXC0pcEAA&query=previewwindow%3Dtests%26file%3D%2Futil%2FrangeRight%2Fvanilla.js\",\n  \"lodash/util/stubArray\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKArgF2gejmlAjAQQCciBDAT0ygHsATUuACwDoArBZEAY2oDs0Y_JCEyYABIzRoADnESia9Jsx4BbTLWpc4mAMQ58xMuQA6vCKunUiaMcDEHCJCmIC-YsEWqqxAckUMjL5mZqp0KLDMMAAeVjZwYgC8DrhOxgAUAJRmokkAfGIA2gC6ZiAANCAQcABCELykRORIYKRQcDCulehYjkYU2Kn95Mxw0jBcbBygPPyCaMKzOGIx41wCtElFpbxmS7YBTFtEMACOKBAn6b7MVHSBvtm8-2LSUKT1x2cXVzeYAG6kcxQd6PEJzHDXPrOci-cpiLL5OxmMQrWITNDpQ6MTLMNDUACi5za6VWGJgtCeqLJ63Sbw-vFx-KJKBJ2KerieFSqtXqjWaiFa7U63QwUEGhhhAKB0HeUyQMz4AiEiG4fGW0OMW0RiQKJXBYVoERgUVi1jQCWSmooWRy4l12zKlWqdQaTRabQ6XRAzGkJykEBgJC4CrVcxVIGAKLEJhAHVUEFjiA8npg5Wjsbg9QA5rAAIooagCJNiNBEFBpjMgRpeADuAAVGoI4CXY6R_tQILRY-neKjY-cizB615ZK2QH74EH_jBY2ZXGVvdJSFwANakbMm9h8UOzZULTgNVQwYTYiVpCjc2gwca8a_PQPTEDY4QAFmYAEYAOzMABMH-5AABPBSDwGBxXLfgLBPVUfw_ABWZhXxAVxUNQoA&query=previewwindow%3Dtests%26file%3D%2Futil%2FstubArray%2Fvanilla.js\",\n  \"lodash/util/stubFalse\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKArgF2gejmlAjAMQEMo4ZMoB7AEyLgAsA6AKwWRAGNKA7NGXpCEyYABPTRoADnETCqtBoy4BbTNUoc4mAMQ58xUjAA63CMsmUATmhHARewiTIiAviLCXKykQHJ5deh8TE2UaFFhGGAAPC2s4EQBee1xHQwAKAEoTYUSAPncnY24QABoQCDgAIQhuIksATyQwQpcy9CwHAzJsFK6YRjhJGA4WNlAuXn40QQmcEWihjj5qRILDYO5Zm38GVcsYAEcUCH20n0YKGgCfLM2eOckoIhq9w-PT88wANyJTKCebhs-Dgzp1Cj4SiJMnlbCYRPMYsM0GkdvQMow0JQAKJHEhpBZImDUW7wglLNKPZ7cdGYnEoPGo24uW6lcpVGp1RqIZqGVogdpQHr6QrfX7QJ6jJDjHh8ASITj3GxgwyraEJfI8sgbULUcL9BZWNDxJLKsiZbKidVrLXFMoVaq1BpNFplRiSfYSCAwSyWDhShWTOUgYBwkRGEBkZQQcOIa0wEqh8NwGoAc1gAEUUJQ-DGRGhLCh44mQHVPAB3AAKdX4cFz4aIX0oEGo4YT3Hh4aO2ZgFc80jrIHd8G9X2MIBMLhMID5kiIHAA1kQU_1WDx_RNZdN2LVlDBBKihakyKzqDAhtxT5svWMQKjBAAWRgARgA7IwAExP1kAATwRDwMCCgWvBmHu8pvk-ACsjD3tOLjwS4QA&query=previewwindow%3Dtests%26file%3D%2Futil%2FstubFalse%2Fvanilla.js\",\n  \"lodash/util/stubObject\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKArgF2gejmlAjAeTwCsYBjNTKAewBMBDOACwDpiFkQzqA7NGPkhCZMAAiZo0ABziIRNBsxbcAtplrUycTAGIc-IqQoAdHhBVTqAJzSjgo_YRLlbAX1Fgr1FaIDkCxiZfU1MVOhRYFhgAD0sbOFEAXgdcJyM0AAoASlMRJIA-O1dTEAAaEAg4ACEIHnorAE8kMHooOBhXcvQsR0MXbFS-ihY4KXI2DlBuPgE0IWmcURixihhaJKKQngXbAOYNqxgARxQIQ4zfFio6QN8c7d5FqSh6WoPj0_PLzAA3ejMoC87lt-DgLr1nBRfKVRNkCnZTKIlrEXBk9kwsiw0NQAKInVoZZYuNb3JFEigZZ6vHiY7F4lAE9H3Vz3MoVaq1epNRAtNodLoYKADAyQyh_AEvCZIKa8fiCRBcR62CHpDZwxKFDLAFlbMK0CIwKKxaxoBLJFWo-55DWbHhsyo1OqNZqtdqdEAsKSHSQQGBWKxkaWKmbykDARGiYwgdoqCBRxAeV0wUoRqNwWoAc1gAEUUNR-PHRGgrChk6mQPUvAB3AAK9QEcELUfoP2oEFoUZTPCRUZO-ZgNa8MibIC98D9PxgUdMxTt7qk9DIAGt6BnDexeEHpnK5pw6ioYEJ0cK0i42bQYGMeBftr7JiB0UIACwsACMAHYWAAmV9sgACeD0HgMBCiWfDmIeCqfq-ACsLBPiArhIUhQA&query=previewwindow%3Dtests%26file%3D%2Futil%2FstubObject%2Fvanilla.js\",\n  \"lodash/util/stubString\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKArgF2gejmlAjAZTQCcIA7Ac0ygHsATAQzgAsA6AKwWRAGMay0MAUhCZMAAmZo0ABziIxtRi1Z8Atpjo0ecTAGIc-IqUoAdMhDUyaxNOODjDhEuQriAvuLDEaa8QHIlJmZ_c3M1ehRYVhgAD2tbOHEAXkdcZxMKAAoASnMxFIA-ANCyEAAaEAg4ACFyBmIATyQwBig4GHdK9CwnY1dsdP7KVjgZGB4OLlA-ASE0EVmccTjxnkE6FJKwsiW7IJYt4hgARxQIY6z_Vmp6YP883f5lmSgGciPT88vrzAA3BgWKBvB47QQ4K59FyUfzlcS5Ir2cziFbxCZoLIHZg5VhoGgAUTObSyq3RMDojxRpPWWVe7zIOLxhJQxKxj3cjwqVVq9SaLTaHS6IB6UEGRmhVABQLeUyQM34gmEiF4zzsUMyWwRyWK_lK4Ui0VWNjQSVS6tcuXyEm12zKlWqdTIDWaiFa7U6lVYMmO0ggMGIxB4cpVcyVIGAyPEphAHTUEGjiC8Apg5Uj0bgrlgAEUUDRBAnxCQUCm0yAGj4AO4ABQaQjgBejDD-NAgdGjqbIKOjZzzMCrPjkDZA3vg_r-MGj5nc5hAQpkDB4AGsGBQYFN-MHZoqFtwnWoYCIsWKMq4uXQYOMyOfdn7piAsSIACysACMAHZWAAmF9cgACeAYPAYFFYgUAESwD2VD8XwAVlYR9Z3cJD3CAA&query=previewwindow%3Dtests%26file%3D%2Futil%2FstubString%2Fvanilla.js\",\n  \"lodash/util/stubTrue\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKArgF2gejmlAjAFQCcUZMoB7AEwEM4ALAOgCsFkQBjCgOzRl6QhMmAAT00aAA5xEwyrQaMuAW0xUKHOJgDEOfMVIAdbhGWSKRNCOAi9hEjBEBfEWCIVlIgOTy69L8bGytQosIwwAB7mlnAiALy2uPakABQAlMbC8QB8ImgOxiAANCAQcABCENw0RACeSGA0UHAwTiXoWHYGZF0OjHCSMBwsbKBcvPxoguM4IpGDHHxU8XkF3MYzVr4MK0QwAI4oEHspXozk1H5eGdybIpJQNFW7B0cnZ5gAbjQmUI_XgQmOFOvVIXiKInSOWsxhEcyiQzQKW29DSjDQFAAoocmil5oiYFQbnD8YsUg8ntw0RjsShcSibk4bsVShUqjV6ohGs1Wu0MFBsElul8ftBHiMkGMeHwBIhODxZqDHAkoXFcvkjOtuMEqKEYOEohY0LEEkr0plRGrVpqWWVKtU6g0mi02iBGJI9hIIDAiEQOJL5RNZSBgLCRIYQC1lBAI4hXM6YEUwxG4FUAOawACKKAofFj1sTyZANXcAHcAAo1fhwfMRmifCgQKgRpPcOERw65mDl9zSWsgD3wH2fGAR4xOQquyQ0DgAaxoaf1rB4AfGMqm7GqyhgghRgv0DhZVBgg24x9u3tGIBRggALIwAIwAdkYACYHyyAAJ4Gh4GACkheFMHc5RfB8AFZGFvEAnFg2CgA&query=previewwindow%3Dtests%26file%3D%2Futil%2FstubTrue%2Fvanilla.js\",\n  \"lodash/util/times\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKArgF2gegwW3pqAewBMBDOACwDoArBZEAY0IDs0Y2kRNMACCtGgAOcRDyJlKVZjkzFCjOJgDEueAB0WEHEMIAnNL2C81cXgF9eYPYRy8A5BPIV7mzTAAeug3CpxtQrC8ALwm2vAAFADMAJSaPCEAfLwA2gAMADS8AIxZAEwAum4snt5ovgDuEGgUAJLseqTsMCFheHDRWRBJvN0A1Lyx8XzBySlRWQAsWQCsRSwgGSAQcABCECykegCeSGCkUHAw5kvoWKbY4b5wQjCMtPSgzGwcaFzPcIald-zErcCaXi8fw6WCIVKZHL5AoZQG8Ko1eowRrNcHjKazGGaczFD6GJyUVp6GAARxQEGJEXsVAIJGc9jiLDxvECpA2RNJ5Mp1MwADdSFooFBSAziuxPlTTPYshEYj0ASwgd9GGgIgSKDEqGhCABRMkHCLK36MpVeH4RVkbTXavUoA3qxnmRmLZZrDZbXaIfaHY6nDBQS7tPkC6DCh5IJ6sdicRBMVifNrwVoRFhZMAoJmtbqjXpy0ZwgCCeka2yo1lsEWMsBYAHMauDFU6qDhSEIIhEAPpdPPJdNMiIQGKM9xefTlPwBIKhUzRRkJHPpLK5XiFYqlMeVap1BpNGAtadXTq9Hr9QZzkZjCa8aa8OaaF0rdabHZ7A5HE4gKhCYmCCDIvSMBGcYvDGIAKkC6ggEcOAQJB4LekcsKKrwkH-LWsAAIooIQ7BwSYegoDASEQSAWw2BUAAKWwcHAeGQaQvKEBAxCQcRKEgGSOEwBRNgiHRIDfvAyK8jAkHYveH5CKQjAANakDWMAPKwQHPNGbwMJseBcOqgbwC6xAwLcLAGUyf6PCA6pcJMVDZAA7FQeTZC6AACABGpCuTAAYEWw4RcPZ2QzFQkwgOYYVhUAA&query=previewwindow%3Dtests%26file%3D%2Futil%2Ftimes%2Fvanilla.js\",\n  \"lodash/util/toPath\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKArgF2gejQewAoCGaAFplDgCYFzEB0AVgsiAMY4B2aMnSImmAAmJo0ABziJ-5KjVpsAtpgo4WcTAGJchEgB12EeaJwAnNAOACtRYgIC-AsMZzyBAcmnVirvXpgAPI1M4Wn8CQ1gARgEAXkt8awAKVwJaACM5VwBKPX4YgD4BAG1k1wAaN1SytxZXAF0fdn9AtGDQ8JgAJhi47WIkgkKABlq0jOz2XOiC4oIq10G5yvLXGvr2EFKQCDgAIQh2AmMATyQwAig4GFtN9CwrEmx4klo4URgWBiZQNk5uNF4fnAzE13lwKN1gHoBAI2qJIogiiVlktqnVSlCYX4wnDOgiZnMFsi5qt0exbA1AWYPDRusYYABHFAQOlJWhkSieLJ6SkCOEEfa0hlMlmuNkANwI-igUFm4z0XCBSXuXnKCUy-XMGJBLDQCWpxEytFwAFFGecEtqweNoZaEnz9oaTWaoHqOTRxrZxhstrt9ocTogzhcrjcMFBHr1MBKpTLPkhvhwuDxEHxBAAlGAAc38mPtjQoCOEYgk_Dp2b8xjkzkwAFYABz0QYAa25HCBPWs3VEnamvOstHkRBYfUwCUKAD1CrQdDparVMgBqTCZuWNAImFohLHtKKxZX9UY1caTaZIirEuoNJob1rbnFdPdPPrJIYjdJHnKCXv45aE8_LVY9G9bY9gOY5TnOS5rhAWhRDpEQIBgYxjBYeNWETP5eEhdhoR0EBLnkCA8IRINLlJXD8P2TNYAARRQHAuGIyxjBQGByIEPDDicAB3Qg6XYOAmM4sUcAgCg8PYvDGQYmA8CccQhJAOD4CQsUYDwvRyXWaDuxYJsCGzT4ODQn4k3-ZgDnkGBeH1CNrG9CgYDedhHPYFhEK-EB9V4AAWWgIgAdloDoIm9AABVICFSGBwxYzgDGslMgoiGtaB8kBbEyzKgA&query=previewwindow%3Dtests%26file%3D%2Futil%2FtoPath%2Fvanilla.js\",\n  \"lodash/util/uniqueId\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKArgF2gehQOwgRxRgEkATTKAe1IEM4ALAOgCsFkQBjSnNGHpEJkwACemjQAHOIiFVaDRlwC2mUpQ5xMAYlwEiZADp4lEygCc0w4MN2ESpYQF9hYM5SXCA5HLr1PRoxgAD1MLOEV3UzgYBwBeGzw7MgAKTy4eGg40AH1PAEojIWFYgD4vdLRMnIBGfxxAkPM0cLgIE1hihL17ZIKcItKvACY6kAAaEAg4ACEIHBozAE8kMBooaMcJ9CxbfXJd-0Y4CRgOFjZQCr40AXS4S2CTrJjO4CNhYWUomMRy7kqstlamN3sJWu0YL9PCMQThHAEcHdLD4GJ0zDBCBB0alGBRqL58kYkcIJFAaHM0RiUFiYDjMAA3Gh4KBkwn1HjwNCpA5kTxjYS9YplN44D6PU5clH0PKMNCUACihDWyXFz1IfTFIQlyVJ5JwMrlipQyqlfUcfXGkxmcwWy0Qq3WME2IG2UGwiT2DKZ0DJ5yQl3-11u3HuXSScQFoK4uF4ZiFoOS9zj8U8-Xjoo-wgABgASYBJxx5gDURejHLMjizRjyyQADH0GqFmhETJRohGeaRUhUqrk-gMyml_r3agjHk0Wm1STBOp3eoURINoaMJlNZvMlis1hsJowJOjxBAYGYzBx_ZxA_xECARR8DCBokoIPffg7orC7w-5gBzWAARRQSheBfYQ0DMIgP2Ee8FjcAB3AAFBY-DgEDoPpSgIFIe9IPvQggJgeC3CkVCQH3eBj3pGB7yMeEcBAZ0JEyABrGhvxgc5uHPK4r1AeYlBgAQpXdboyEtUgYBOHBxMRI8LhAKUBAAFkYaoAHZGCGapLQAAQAIxoXSYDdcCeDaATr3U6oAFZGEU-jHAcxwgA&query=previewwindow%3Dtests%26file%3D%2Futil%2FuniqueId%2Fvanilla.js\",\n  \"lodash/array/flattenDepth\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngejFFAF0JgDsARGAB0IAscoB7AExTloDoArBZEAY0akSwpCBw4ABLWJU4iCU1bsOggLY5mjfnBwBifERGUatADqkIaqozSFJwSYeJkTdSQF8naRmskByJTZafwsLADd0SXRMLEkAXkkAbQBGABpkgCYMpIBmHIAWAF0ijIBWErDSGAAPGzs4DlqUa1gUhKcCFwpqOgAKGOwMlIBKCwkEgD5k9Mls5Pzk4tLJCqra-sJG5taYTI7nY17aAYwhubHSCfjp1Iz5xaTi8qKLEDSQCDgAIQhSdCwSDAKCgcBgHg-g1wh1cxzwXSOpg4cCoMH43F4oEEwjIhDE2Lg9g2aJIzA6wAskkkOyobUQM3uOUeyxeaUp1JqLVpe3pdzmGWZKwqbNIHiqBPsQXYHTQMAAjgBXCCyvr-DgMFjBfyXCWSWkoP4y-VKlVqnCRSxQAjaqokQmqmE9Uz-DJ9EZTBzs4n8Qh9KW0EYcQiMACiipBfW9pMuVKjfX1f0DwbDCoj_suHku70-Pz-AKBILBEJAUPhRlhpnNKEtBAxSCxQhEeMQAiEhM65ad7kSpzQGWYx3dN2iGA4zj6A9MlwiUShHT5SXmeUKJRer1IFg2ti2TU5u3aiUdbhOUOGl2ut1mS8FQvXm7q2-2e-5-0PCIr_VPF3GUmHfIeK4vG8HxfL8_xoICiDAqC4IfBwVCysQEAwBg_D1q2OKiC2FKkFSZggGCagQPh9LQWCIp4QRfwAOawAAigqjAkCRkiEGgCowBRkj4TEjAAO4AAroGQcAsTx4SMBAzD4Vx-GKkxMACT4chiSACHwCh4QwPhFhiqQIDFlQKD8AA1ig1EwBiQjodiTbof8agwGI_plt0x7ZpOZADqQ_DIZiID-mIBQcCkADsHCZCk2YAAIAEYoLFMBQDg7HCFYTktuFKRlBwBQGR4BUeEAA&query=previewwindow%3Dtests%26file%3D%2Farray%2FflattenDepth%2Fvanilla.js\",\n  \"lodash/array/intersectionBy\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngeggOwBcY04YBjQiAe3wCFcpqATFOACwDoArBZEcrWJEkIHDgAE7QoQAOcROKasOnQQFsczauTg4AxAWKkKVWgwA6-COtnU0hCcAlGSZSjXpYJAXwlg0anUJAHJlNnYQqysYAA87BzhOZhgwFABXKEcAXhciN1NPBgAKAG0AJk4ARgAaCSrOcoBdOorOAGY69s4AFhaJAFkUQi4wJnsASitxCWyAPgk2qqbo_BmAFXYYCQADAH1OWUDZEkIsHZdjYZhtjnsRlHxmThj4-6Sj6hOHb1zXEw85iwZWcIViIUQ9V8_VKoPBkPKvjqcIhUJ8_TBISma0k80WKMhVWhVhANRAEDgdAI6CwSDSUDIPjJ6EwuH-7jMXjw-QBnIYnDgJ3IPD4oEE-REiAEtDgjjiQuIzFmTisEgkKTSmUIkKWLVVEk-3zOOoJaL1-B8q3Fsok4Q4yrQMAAjukII7iiFODg7ZFsdbHLIoCgCA7na73Z6cAA3R7QINY1bEWUe9mFIEhOrFCazBbAfXy0zFH0TTiEagAURdKCgxQLlBgzGxarrhGKgeD-BLZcr6WrRZYEWxPmxpPJlOpaFpiHpjOZGGw3OMHKKuBj1igQZFSDFQhgkul-BtqcBXmVxRZdU4V_QAHM4Nm8Xn8GrYI4IFdiNtcrePl8s_qIDACRijOE5qCA98SGuL9slyEJZTQAgbyxFVnzVCR_QNY5lUgzBP31NVcOgnDiGCPFIPUUpDRWNDLXwfVHUIdI0GfFlOEgLISGKCiiXmAiJB_TgYCjEhgRZRE8XE9iCGYbjSIkhYiM_OSYHUKoH1gy4oOUijygmfT9SHVZ5XeZJUgyLIcJ5ZcgTKSpanqRoYUqToJG6Po6iGEZ2PGNBsRmPFdVWDYtl2A5DVOc4tLwm4JDuBx2EeZ5XgSQgPmOSKrKXNMvBBUJ4TNVpTURJknHy1EiXROpMX83EFlhcrCWJfBRwpKl8BpOlq1nEBDkYqgSDQchtwPYRCFEJ81QsEAyHUCBpshGcYBqfVprgJDYAARXSahiAWiRCDQdJltWkAWWoAB3AAFdA9zgfbppQKNqAgZhppWtDppdXaYCu457qQCRpqOeASBE6arDokAmRAWQUHIABrFAbxgEVaBG8UxpGjr1BgUQfUXAoTwYUcUhOJ493ICB4BGn1RB6aoAHZGiqUcAAEACMUA5mAoBwI6iBsPGpWZqoAFZemhnxpZ8IA&query=previewwindow%3Dtests%26file%3D%2Farray%2FintersectionBy%2Fvanilla.js\",\n  \"lodash/array/unionBy\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegK4B2EA9gQEK5TEAmKcAFgHQBWCyIAxqQC4wHdIQOHAAJ63bgAc4iYVVoNGXALY5qxDnBwBiQiXJYAOkWWTiabiOAi9pCiIC-IsGmLKRAcnl16H48ZgADzMLOEZqGDAUPChLAF4bIjssAAoAbQAmRgBGAF0AGhE07MYMwqyAZgKRAFkUbiYwKnMASmNhETiAPiKs7MKSjNz_Ag6AFXoYEQADAH1GSVdJGAssaZEIXkxeKYZzBpQCakYA4P2wxeJl1c7E_Qp06w9Aj0QRbMdqtKeXt4zHQo_V7vT6FZ4eNqjUTdIpAt4fByAzy_ET_BzDAjtUTzPQAR3sQRQplgpxC3DCePsCVsBnSfQGpXKjCqhTqDUYTWIrSxnR6mRyDKGxhA-RAEDgZAgBHQWCQUSgcBgiJA6EwuBpFHwSQMjDgyw4LDYoC4_D4AkQnFIcEsQX1vGot2AxhEIgiURi3De_P671KBWdIku124WC9cJBiKsyOBaP9BBdlNDvQFvqG-WMDhGJutIm8DFuaBguLwEELKQ8jBwed8kOzlkkUBQUoLRZLZYrOAAbodoI2ISNeNbyxqsB5CikWryrAHbTAONwUtWWoxuMQAKLFlBQFKz-cwaiQl27hcNpsEZerjd4LeLmg-SEOSEisUSqUyuVbxXK1XYLX3XDdkQUCNoaSDGjwZqCOM9DihsxIwMoZr1PoIifsQIgAO7mAA1nAzjmDy4hSDIwhYMQeDKBAADm4gEMQ3AEDA-5KG4VZ3gwuhEPiRhQiIABGWCBnQcBSlRIikFAgmkFMP6CXQqHxugVEUWaPJ8ZE5hTA0UybCs9RMc4hDzvoxh1ncyS3CkqqFIwtlKXAk4wk68a5jAli6dsBkJPZCxXBOAYQGAIgpCGyzEEFHn6VMcQxZ41poKJELTi5LpmUGtyRTsAYuplXkbLw7gwrpyhpEGGIupmmIuYW3B4GgikYNlIgsQQHD1CktmMPZh4us1kCxCsKRNS6KSBIUECFIqUBgI5PQQJ0sVTWAHJStQACSRxBCkglFVsUWjY5sW5TA20tD1LoPiMtrnOEkTRLEtwjnSORfIMTIsrU9SNM0aCQh0MLeoKGI8hMUxzAsSwrCG6zHSIewWPQhzHKSN1BlDO3mbS3zRvCoKwjjqIAlG4K4-iYIvH90J8uGCJIiThPoiMHQ4lxBKBESDYwCjoSMImj3ag8gOpu91Rst9XK_TyAP0qmGLPuKkrSmgsqIPKX6ihDbncBAKxoBwYGWqa_CCM5LqGCAiqUebbxqzA6YuebIkEFRsAAIp4PRXNICI3BoHgdsBubqrEBhAAK6B8HA1siEHnbEBA1Dm_bZsgMWnuh0sUfe-bizwCsnZexmwrKpIKAcNhKBUTAhqkAbJq8Mb7DSohgjVn-yTPhEyyba1OtGiA1aCAALDkADspTZM-AACfEoOpUA4H7_AQC3Frj9kACsjBDyADh73vQA&query=previewwindow%3Dtests%26file%3D%2Farray%2FunionBy%2Fvanilla.js\",\n  \"lodash/array/uniqBy\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegK4B2EAjgEK5QD2AJinABYB0AVgsiAMaUEAuMvSEDhwACejx4AHOImFVaDRlwC2OapQ5wcAYkIlyAHSLLJlNDxHAReslhEBfEWDSVlIgOTy69d0aMwAD1NzOEZqGDAUPCgLAF5rIlsACgBtACZGAEYAGhFMxjTcjIBmAF1cgFkUHiYwKjMASiNhEViAPhF0rNz8tNK_AhaAFXoYEQADAH1GSRdJGHMscZEIPkw-MYYzGpQCakZ_IO3Q2cp5xdaE_SxUq3cA90Q8h1y7h6e0l8sPd-f7cp-7iag1E7U6b0ef1egI-Dn6BBA2RAEDgpAgBHQWCQkSgcBg9iR6EwuBs5HwiXIjDg8w4LDYoC4vH4PEEjLgFkCNL41EuwCMIhE4Ui0R4Ty6OTyBXK_JEp3OPCwYohT0yX2VIk-_2yRnsAzZFi8DEuaBgxDwEBNSXcjBwhp8wP1sqgKHRxtN5st1pwADddtBnUCBnx2VbSVh3Lkkg1Wh0-QQBZyYBweEk7Q1GDxKABRM0oKBJRPJmDUYEJoJJlOSZ3o9OZnN4POpmjeYH2YGI5Go9GY7F5vEEkBE7Dk64-v1QZ10pAM7h8ASIISiEYolZwEQoERwCAmKAQSDFlY7mDKZnVCDcZqiShgMQSaSyHBYSh4ZQQADm4gIlB4BBgxaUri2s2DC6EQ3CGCCIgAO70BAHD0NBz5QDyUFmAA1tBqwIdwUB2NwYxDlgRiOmGlxJESuSrAs1R_tGYJxgKe4iEkCrzNeKxrDRYyxDxHjsmg6JvkClgygKjpypcVHrH-okcdRGySXwbhglRygpHK8ICrqBAyiaPB4Gg8ZEowkAxAsSSyUkASUbkeJQGAdEdBArS8XZYAmei1AAJJ7IESR2CpnEbFZdG8VJXH-Q0pYiK2AycscYQRFEMSXGGqQZBKvRFIwZSVNUtT1GgwItGC4o9FKAzDKMEzTHKCwKss4UKVs5j0Ls-yHMEPAnHM9UBVcyQpOqqoEt89yQpq0LjSqcK5ONxWgh0Q0wlCY2_Jq8IdiiaIYmgWKIDi_ZIjMek8BACxoBw06cLOzKCAxIgGCAeKvk9TyHTA2rxo9z2CbAACKeDfjAb0iDwaB4J9MpPUSlBQQACug_BwKDMPepQEDUE9X0Ck9ZrA_Dcwo0gP2zPACzeiDIA6kYIADpIKAcGhKBvjAdLcNdjJziy7AYiegh2iOtgduE8y-QQHDnfSIB2oIAAsWQAOwFJkHYAAIAEYoBrMBQDgEO8NuMCCMrmQAKyMHLdP2Db9hAA&query=previewwindow%3Dtests%26file%3D%2Farray%2FuniqBy%2Fvanilla.js\",\n  \"lodash/lang/isSet\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgZRgBdsoB7AE1TgAsA6AKwWRAGMz0iZOkRtsABDSJEADnET9yVWnXYBbbBTKs42AMR5CRADroI80WQBORAcAFbiAgL4CwxsvIEByadRou9emAA8jpnB0cMQAaqhQAK4wAgC8lgTEABToMADuAtpJAJTZevxxAHwCRMbR3qn-JkRBaTCoANba4VEx8VZEKekCAOr1Tcm5-YKxxWARIXogADQgeABCEOioxgCeSONQITazaFi4iSQdwaIwrIzMoOyc3ES813BmfqesXBRx5noCAiFELdGIEplGDTL4COqNZoRAH2CYgvQ2CoPMzuWgfYwwACOkQgGKSLjopEoHhceXQyIEojQS3RWJxeIJ2AAbhhoGhSRUuI98R0XNMBDkip90N9nmdOqiaNk6EQyABRbERJJi14wChk0X-cVJKmoJbS2UKyJKyVkmxkmZzOCLZZrDZwnYgPY4DrM1lQNAXJBXDhcHiIPiCfBLVgxABylBgFwETIAjAAGADU_IgRBccAEqBZ0FQACNYJYRUQaDFIkRoAIoBBc8YVqthkIROJJNh0JGmHQTDhUKIINgy9A6MJ5FB1OoB1AAPoTydEVanOCTvC_Scs1rDBsAFRoeEshlg8luqHLHASmZ-BipEEgapjMGMcAgp7IYBKJYEHBiYDIkXQFAbNLFjERhQKskAegI8iUJEBZthQMAALQTgKGDvKmAjKPA6AuGYcCRKIARmAAknKZIUh0HxrtEQpUVGsr4KUSyYIKsSsa4ADaZC5gw4qZMQAC6XjoD4VSBMEYTQm0CRZKkGRZEM6AFKMQLlMJlSEbU_RQq0HwdF0GR9JCgxkkpYxwlMswLEsdb2lsMCOnQogYiIED3sYrDemwvq3LwwBgjoIAhPIEABYCmwhKCIoCAFj5YLAACKkRkFwoUqfCUUBSsjhpAACis3BwKlmVMmQED_jM_kgNiyUwDljjiEVIBOfA95MjAAUIlMjqiKgrANKgmBRkwHCedcfp3CwyyHrwkoHNolrwacf7cKwrmXE6xK0LwAAsdCxgA7HQABMsaWgAArmeYwFA2BlJwBgwLwh2xgArHQ20gDYX1fUAA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisSet%2Fvanilla.js\",\n  \"lodash/lang/isSymbol\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgZQE8BbAIwHspspyATVOACwDoArBZEAY3PQBcY_JCGzYABIz58ADnESia9Jsx7FstclzjYAxHiJlKAHXQRi08gCc-Y4GP0kKUMQF8xYS-WJiA5IoaMPiYmMAAeFtZwzHCOlABqqFAArjBiALz2BLFQABQGTswQApaofFYAlCai6QB8YnyWKcHoYRF8UejkfPnxiSnpmT25PqikXD6V6NVpdWCJcDAmIAA0IHgAQhDoqJaESHNQCy6raFi4WYZUDpfR0jBcbBygPPyCfMIvcDat9wK0A8ATGIxDFLglkjBEPVGjBlkCxJ1utlwSkoQcFnD0C5mp8bP4mANLDAAI5JCBEnI-ZjUOgBCYmXFiaRoLaEklkilU7AANww0DQ9PQJgEX0p1ycPmWYhy5VqtnhPy4fBy-MY5WYZQAoqTEjlFX9JsD9TlmagtuqtTrcqrJi5Jis1nBNttdvt5jBjiBTjhxZQeXyoGhHkhnrwBEJENxeF9BtkBqCnABZVCEUipGb1Qh3chgEHZZOp9NpDI-BOUIJClrhKztaLIvrp2OXPLZQrFUoVKriDMNJqV1o1jpdIYoxu-4ajcaTaazd1LVYbLY7PaIdEe1bMaREqQQGCWSxcENR14RkCA9DAowgBbECBXtHuzGX69bTCwACKSS6iyQ0JST7EK8dk8AB3AAFHZBDge9AJAVBuXICBaCvACr1Jb8wM8WQYKvLd4D3bkfxMbF0BAT1pFQLgAGtUEwGBHl4I8XnDd5OG2YgYGEVVziGB1aBgO50H49AuF3J4vVpJhhAAFmYABGAB2ZgACY5IdAABUhRhgKhGn4MxOMjJS5IAVmYaSyJcKyXCAA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisSymbol%2Fvanilla.js\",\n  \"lodash/lang/isTypedArray\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgFQE8AHGAEwEEAnK1Q7KAezNTgAsA6AKwWRAGNG6AC4wRSEBAC2xRlWEACYArxFSlGnQUBfBWCqMpCgOQBXYdGzCS8YwB10DmAA9Z8uB1MQRADmq1CBQBeFQIbDQCACnQYAHcFAFVvYT9NQkiASgyHbGxggD4FYSpTGAcnVzlhDzAmVGEANgAWfy0Q1XDW9Jj4gDE6xpa0zOz0XIKikrLHGMr3DlQ0gCFTMDAYKmDQtXIu6LiFLpW1jZGcvKDCsFQoOGmQABpJOCXvRcIka9uYbSe0LFwYXUXUBOwidA4cFI_G4vFAghEYmEEgRcEULmhojIW2ADgUCi8vi6iEmpQeeL0A2axNJMHJ6HxiwCx3WVBJXzu9O05XQqMUTBY7C2VBgAEcvCLIsYOAxmKw2MZRnyFMQ0N5hWKJTApTKAG4YaBoRU80RoqUdYFpYwPBSZCa4hkKDEwfjCSIC-UZDjCRgAUXFN0iztd5FG-ODbtVqG8Xp9_tMgY97FG2lGj2er3Q70-NzuvxA_xwFt2aWw-vQhtQsKQ8KEonEiBA4wAyt5-DAFAA5ZgwWEKXUARgADABqG0QYTGOAKVD66CoABGsBUDOEbA75mgCigEAXtCohHOCjYwmExDgiFy6B7PA4chwqGIEGwm6gHBPUigAGJX9ZSHA8D_cgmTofUoFKc4j3wNg8BUGRYCkJF6ggIRQhnBQAPgiBIHIfsNgA1DGDAIp1wUIQOzARhTHQMgj3VaiyHwwQRT7SIMGxCcFDIRh4HQYxFDgUxiDcRQAElfQwwwOxgRYoECX0yEwDtdXwlD0DgUYjzXDsACUYCU5wingaoyIZWJ120zZtIUAB5BcuBdYRvUYZtim8TAyOI6yQMCYhWDubEpHqfh12nDBDzGPIgOxHyOAUUSOF7EkAG1GHsxz4pEABmAAmLoAF0yM2VL0tdBR-kYepqTSfKHGVaKugABXqUQqAZIIKWwOw7BKhyysiSJRIAHySDIREiHwhoHBohtyjIhoq-pIlyobmnmpJfAAYTQGRyCG15MEGkaIDGwYMi6br8q6mZlWLcFAhCMDSgKCkGrSZrTw2dBvWMyI7L6pziAMH0gOc1yqHcjh-BuKBIiemAsh5DEqg8QkUi6LY7r2HpEmSVIokRyKJmKCCZmR-ZakqwYMfaIESyiHHFup4ZCfGS5aSRuZqgWZZVlZTG6fu_Z4iOPnTlZi4rlze4njwTNs0QDkfieDggZgU8IA2Kh-BrAQ6yRCQHXxOwQDuKQIBN9lpfpY3Tfc2AAEVTEYURLdpG2FBNplGFiZqRXUt2vd1RgIFox4KRN8UXZgRqDHPQOQDVu4qBUk2HG5dAQHzPz-AAa1QJTYSEXWEXrZE-CzRCJCTNhQU6NJ00Y0gaLEfhNbhAs5XYCQmg4AcAHYOBygd0wAAQXRcYCgbAShEaQYAkQeBwAVg4Jos-0TftCAA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisTypedArray%2Fvanilla.js\",\n  \"lodash/lang/isWeakMap\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgdRlQGsBZVAB2ygHsATVOACwDoArBZEAYxvQBcYApCGzYABE378KcRGNoNmLXgFtsdGtzjYAxHkIlyFADroIqijQBO_ccHEGiZSuIC-4sNZqrxAckVGJj8zMxgADytbOBYAd2djADVUKABXGHEAXkcCBMoACnQYWPFDFwp8gEpKszEsgD5xfmt00KLIm34Y-JIAZRh-ZLSM7KcjAqKSsv7-Kpr0OszGsBS4GDMQABoQPAAhCHRUawBPJBWoNbdttCxcXPGqMfKWOAoYbnZOUF4BIX4RH5wOwRN7cQR0LL2MzicQ9cpDdKIJotGCbaGw5wzBEwJHnNZo9BuNqAuyBZiQ6wwACOqQglPyfhY1HoQT88xJ4goaAOFOptPpjOwADcMNA0Gy2oIgQy8DM_JtxFUGlD0DCQe9ZmSmJUWPwaABRGkpfLqsEwOjzNWRDX5LmoA46vWG1LGrXzNzzLY7OD7Q4nM6rGBXEA3HBPYzC0VQNCfJDfPiCYSIUQSXoHbgZABy9Bgn3EQoAjAAGADUCog_D8cHEqBF0FQACNYI5VfwmBlUvxoOIoBAG9YjsdahIpDI5GJ0DmOCwbDhKBBsJ3oCwpKooLpdEuoPxjm84Hg4apKCLhsPh-IACpMPCOSywVR_VBdvg5Gvifd3iCQc35mDWfcvjQYBNO24h8BkYA0Kk6B0OePJthkVhQMckDRuIqj0KkzaTnQMAALRboqGAQhW4iaPA6B-HYcCpBQUR2AAkvq7J8ECORlMYkInukyrcbmeq9M0ByYEqmRif4ADaNANmwGqlHkFAALohOgYQdNEcQKdikLhhMxTyQ8cznksyKtKp7T0d0mIDNpoz3OUhT6dMAxGQsEgmXi6zoF6ewHIOAYXEG2wsBQlLSBAf7WNwcY8AmfwiMA6ImCAayqBAyW4oGBIwsl-5YLAACKqQ0IIGWmaiSUgEc3ixAACkcQhwGVyW1jQECwVslU0iVMC1d4sjNSAoXwH-QrrCAZhEt5wYUKg3DEKgmC5hwfAxT8ib_FwhwPiIWp3BxlBerhbwwUI3ARV8IYsswIgACwsAWADsLAAEwFl6AACDaNjAUDYC0AgWDAIjPQWACsLC3SAbgwzDQA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisWeakMap%2Fvanilla.js\",\n  \"lodash/lang/isWeakSet\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgdRlQGsBlGAF2ygHsATVOACwDoArBZEAYxvQpj8kIbNgAETChQAOcRKNoNmLXgFtsdGtzjYAxHkIlyFADroIq6TQBOFMcDEGiZSmIC-YsNZqqxAckVGJj8zMxgADytbOBYAd2djADVUKABXGDEAXkcCBMoACnQYWLFDFwp8gEpKs1EsgD4xCmt00KLImwoY-JIAWVRpZLSM7KcjAqKSsv7pKpr0OszGsBS4GDMQABoQPAAhCHRUawBPJBWoNbdttCxcXPGqMfKWOGkYbnZOUF5-QQphH5wOwRN7cAR0LL2MxiMQ9YgzIbpRCeVYwTbQ2F5CiImDI5rpdHoNxtQF2QLMSHWGAAR1SECp-T8LGo9CCfnmpLE0jQB0pNLpDKZ2AAbhhoGh2W0BEDGU9jH5NmIqg0oegYSD3hVyUxKiwKDQAKK0lL5DVgmB0ebqyKa_Lc1AHXX6o2pE3a-ZueZbHZwfaHE5nVFXEA3HByygisVQNCfJDfPgCISIETiUgHbgZABy9BgnzEwoAjAAGADUiogFD8cDEqFF0FQACNYI41RQmBlUhRoGIoBAG9YjsdauJJDI5KJ0DmOCwbDgBhBsJ3oCxJKooLol1AKMc3nA8HC1hRRcNh8OxAAVJh4RyWWCqP6oLt8HI1sR728QSAW_Mwax7580GATTtmIfAZGANCpOgdBnrybYZFYUDHJA0ZiKo9CpM2k50DAAC0m5KhgEIVmImjwOgfh2HAqTSFEdgAJIGvMZicuGdjZMe6Qqpxub6qQzQHJgyqZCJ_gANo0A2bCaqUWIALohOgYQdNEcRYjikJsYUxSyQ8cxnksTQtOsSntHR3TOAiKRcaM9zlNpUyWQM-kLOIhnnGsGzbHsByDoGFwwMGLDSFSUgQL-1jcHGPAJn8wjABiJggGsqgQElyIeWiiXJYJsAAIqpDQAjpUZBLZUc3ixAACkcghwCVSW1jQEAwVs2W0kVMBVd4sgNSAIXwL-wrrCAZjEugIDBtIqDcMQqCYLmHB8NFPyJv8XCHPewjancZTGN6OFvNBgjcOFXwhqyzDCAALCwBYAOwsAATAW3oAAINo2MBQNgLT8BYMDCI9BYAKwsNdk1uFDbhAA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisWeakSet%2Fvanilla.js\",\n  \"lodash/lang/isArrayBuffer\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgQQCdDUBPAIQFcwwZDsoB7AE1TgAsA6AKwWRADGjdABcYopCGzYABOxEiADnETSmrDpyEBbbM0YC42AMR4iJCtVqEAOugjbFjQiJnAZZ4mSo06MgL4yYISM2jIA5Ops7OF2djAAHk4ucJyoXpa-hDIAvB4EGT7WABToMADuMubeVnTFAEwAlI120rkAfDIihJQwcWVJziKp6Ra5-dWZJWWVkw3NrbI5nWCoUHB96CAANCB45BDo6aRIq-sw_rtoWLgFFkV0t5MPhJxwijACPHygQqLiIkkfzgrkSHwEYmY42AdhkMlGNSyiC6PRg21h8IyyLOG3R6H8_WBriiHHGhBgAEdKBBycVwpwGCxouEWugiTJFGhDmTKdTafTsAA3DDQNAs_piEF0zz3WqEcLbGTFRodNwYsGfETFEnsRqcESMACiVLWxQ1EJgzFZcPNWs5qEOeoNxsopp1rP8rJ2ezgByOhBOiBxFyuGBwMsR1iFIqgaG-SF-wjEEkQUlkAGVDgIYDIAHIsGDfGSCgCMAAYANSKiAicJweHC6CoABGsA86C67BzlBE0BkUAgzZIAcWcgUylU2HQBd4nGcOFQigg2B70E48m0UGMxlXUBEpA-cDwCNIzblwqgvUWo4AKuw8B5HLBtADUL3hPl4TIj0-IJBLcWdBHh-jBgJ2ObCDmYCMJQ6DMKO3IiF2HKMFApCQLGMjaCwlBttOzAwAAtLuSoYFCNYyPo8DoOErhwJQijJK4ACShqsuyEZTH4eQXr0qq8YWBrpt0hyYMquQ5Hk4QANqMM23CalUhRygAurE6DxIMKRpMpWTjJxLylBUSmylk8ysm0ywoleGkDExIwZPpdyRnUMwmWQ5mjlZwZ2N6-yHMcpxrBslwgJwijkgoEB0IQAgJoISYApIMIdjINggBs2gQOl2LBWiGLpUeWCwAAipQjBiDl1n5al6WjIw5QAArpOIcBVXVgqMBA8E7AVIBUhVMCNSEyjtSAEXwHQgp9CAdgElsoWKKgAgANaoJgha8MI8V_MmgL8EcL6SDqTy6dY3oER8cHiAI0U_CAOqSAALJwJYAOycPUJbegAAs2LYwFA2A9KIDgwJIH0lgArJwT0gP4CMI0AA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisArrayBuffer%2Fvanilla.js\",\n  \"lodash/lang/isFunction\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgMQFd0BjAFwgHt1spKATVOACwDoArBZEE6smdGSQhs2AATMyZAA5xEouoxateAW2z1KJONgDEeIqQrUAOugirplAE5kxwMQeLkq6MQF8xYa5VViA5IpMzP5mZjAAHla2cKxgzmIAvI4EzsboABTxRq5iGQCU9u75ZqJJAHxiZNaEMGHokdFksajWPgDuhiRJKV3pGQUVRSU04omV1bX1jTbNKmhwcD1OOdQZJAtLAHKUZACCfbnAxaVjEzV16OFRs7HWMJjLqauZ2KgARiTYI2XjXqhQOCXEAAGhAeAAQhB0K0AJ5IMAAoHuMFoLC4Z4uagYw7UVhwaQwEgcLigXiCARCRA8ahwOyNIn8eg9YBmMReZyIKoXEFssStDpdLmTGC8txiDZMOTc2pi9n3TBcxGA0Vmdz1cl0sRBFg9e4AR0IEHuGX8rFoDGC_hGmrs0jQ0L1MENxpgpvNADcMNA0Nb6vw6aaVlj0P4QXlCn9WeKGeQMjrmPlWGRKABRQ0AjKxpkjdnZjL21DQpMp9OETMJkYndCg8FwKEw6zwxDK5GojA4YPpbBe8xQNAkpBkviU4S23ppXLJL1QIZkWGEyhgMQzpKJZL-bIh0JXBo3GJxBLJLuuLKT6gR4anOcXab7uYCyidI8Tl4DSOVY4_M4yy7XJqxJKixPLimRAdsuwHOebhftefytn-e4AawCogdBGRvJ83xwZUCFmLWkLQnCCJIjAKIgKw0j3FIEAwG0JBDjSFKCMI0bsiYIBAqoEAcUqpFymIHFwNCmCwAAioQux1Egv4CRxj7tAACq0AhwLxgkgKgHqUBA9AcXJICGlJik-LI6kcVR8B0R60lqvh5HSKgJAANaoJgMAktQjHkvwLHcDCqgwMICY4tBtb0DAhLoBFpC0aSIAJsIAAsrAAIwAOysAATKltYAALvB8MBQNgNSCBYQXUplqUAKysElIDuE1TVAA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisFunction%2Fvanilla.js\",\n  \"lodash/lang/isMap\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgWVQAdsoB7AE1TgAsA6AKwWRAGMz0AXGLpEbbAAIanTkTiIB5KrTrsAttgplWcbAGI8hIgB10EeUTIAnToOCCtxQQF9BYY2XmCA5NOo0XevTAAeR0zg6eWIANVQoAFcYQQBeSwJiAAp0GAB3QW0kgEpsvQE4gD5BTmNo71T_E04gtJhUAGttcKiY-KsiFPTBAHV6puTc_KFY4rAIuBg9EAAaEDwAIQh0VGMATyRxqEmbObQsXESSDro4IhhWRmZQdi4eTj5buDM_c9ZuCjjzPUFBEKIWtFECUyjAZj9BHVGs0IkD7BMwXobBUnmZ3LQvsYYABHSIQLFJFx0UiUDwuPLoVGCIhoZaYnF4glE7AANww0DQ5Iq3GehI6LhmghyRW-6F-rwunCS6Jo2TonDIAFFcREkhL3jAKBTxf5JUkaahlnKFcrIqqZRSbBTZvM4EsVutNgjdiB9jgOqz2VA0FckDcONxeIh-EIAMrLVgxABylBgV0ELIAjAAGADUgognBccEEqDZ0FQACNYJYxZwaDFIpxoIIoBBC8ZVmthsJROJJNh0LGmHQTDhiBBsFXoHQRPIoOp1MOoAB9aczzhrc5wGd4f4ztmtYYtgAqNDwlkMsHk91Q1Y4CVzgjgBhpEEgmoTMGMN4vZDAJQrgg4MTAZEi6AUC2dLljERhQGskDen8lCRCWXYUDAAC005ChgnyZoIyjwOgLhmHAkREAEZgAJKKhSVIdF8m7RCKNFxgqoalMsmDCrE7GuAA2mQhYMJKmTEAAul46A-FUgTBGEsJtAkWSpBkWRDOgBSjCC5SiZUxG1P0MKtF8HRdBkfTQoMFIqWMCLTHMizLE2TrbDALp0EQWKiBAz7GKwfpsAG9x8MAEI6CAkzyBAQXAlskzgmKghBTeWCwAAipEZDcOFamIjFQWrI4aQAAqrDwcDpdlLJkBAQGzIFIC4qlMB5Y44glSALnwM-LJTCASLTC6RCoKwDSoJgcZMBw3m3IGDwsCsJ58DKhzaDaiHnIBPCsO51yuqStB8AALHQiYAOx0AATImNoAAKFkWMBQNgZRcAYMB8MdiYAKx0LtIA2D9P1AA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisMap%2Fvanilla.js\",\n  \"date-fns/00-generic/closestIndexTo\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADCgtAcxgOxgJwgGMB6IqAezngBcBJHAExgA8AVCkxgQxpnTA44AOgBWCZCCIUcfWUhAkSAAgAWNGgAc4iJTz4ChwivkwkAbgCZhARgDMwlFwpE4ZStTj0mrDgB0caSEaZWBlcipaBmZ2CmUAX2UAXmV8GABHAFcINIAKAHJ9fkE4fIBKAIClZQB1VWJVZSLlCDhwjwJlGjiANmUAZRhNPgBbACNOyxQbAFYAfgCgrybeGA4AYQoRzW405OU8AHdlABFV3KnZgBplAA4bnorAmWWiuABBfHxuAE99gG0AsoDjBjmc-BdpjMbigbjYylcgSCwedLj0YXCEUijqdUdMAOwY5TwxE4AC6lRwIwojEysGErE0JhobRSEU83hiHFyRQ2Wx2aRub0-3x-T2qSQAfMSAiAriBWgAhCA4XY_JBgbhQajxeVoLC4AjEdyRLzRXycdlRHyxYRwTQwIhiCSgIJyGgKJYhRmOviMfY2SlelZ8Er7NJZHIwArCLirQylJ7BzRQbgq8MZbJ5fKx8zcHDQVPlSl8LwFK1mm0cfI3XJlZLS4BIn1EGg81YlMrCboAUSyWtyLb9T2BQ9yKbTOC7vf7UHboaET3iTzlCrgytV-HViE12pgupA-uweEIpArnItFnzhe4zqQrpk7s9LxC5_NsX287WFE2212MCFVYPi-X56ylUIkWDRhWhofMiHgfZhRAn5hBGbhNC_BtlAAWV4VRhG4MY4Ew9AQ2_X8BRgMoR1SGAaEyfAcCaGC4PgYQVRiAB5MBclwmh8JGFVcmEEToK8Vi4GogJ4kpao6gaMiWjaK18C6XoBiGUYJlUy55kWF8yL5P89hSHFwWjXSbnuZRHn04IyOA0UAWxUFcQhSzlFhYksSY5E3Is6Z0U8zFSWBMy8RsQlgu80kKSpGk6RgBkWCZfAWX2N8qwoL8jMowDSxFUCqhUcDAxwVclRVNUNS1HV5WETQ0g0CACHwIh7ykR9cA9RAQCbXy_BAahBMGxBlF3ahQuUQa4BVTBYAARUyCg-FGrp8EyACkUG3Z8AoQ4AAV_yENadvMCgIEYQapsGrIVpgA69u0U6QEa-ACHMGBBuk2UDx2IgAGtuGwZ0ZA6t1uo61URhgBQigTE0OXfDhV2YB0fECFqXRAeGSgUaxLGsGxVwAATGQiYCgEgNtkCAYYUfFbBmYQABYQHiDmOaAA&query=previewwindow%3Dtests%26file%3D%2F00-generic%2FclosestIndexTo%2Fvanilla.js\",\n  \"date-fns/00-generic/closestTo\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADCgtAcxgOxgJwgGMB6IqAezngBcAVCkgEwEMaZ0wc4A6AKwTIQRCjnZikIEiQAEACxo0ADnETTW7Ttx4V8mEgDcATDwCMAZh4pmFInDKVqcehQA6OEdxozgM8lVoGGQBfGQBeGXwYAEcAVwgogAoAcg0OLjhkgEp3d2kZAHU5YjkZNJkIOD9HAhkaChkANhkAZRgldgBbACNaoxRTAFZEGVMZACkWHFiWfABPGX60GV1RiamZ-cWUcxQAfndPZzK2GAYAYQpOpVmYcJk8AHcZABFTxP6hgBoZAA4fxo5HCdChMWKwHgwAAeSl0NCqEX8ThciTSFyuNyiPwA2u4ZA8YM83uwPmgUD9yaMsl88QSie9-rsKT9TNT3ABdIH5MIAPhkdFid0mOBkA22u1FKEQaGlKHcIC-IEqACEIDhZnMkGAWFBqMFFWgsLgCMQHAFnAwzciGDw4EoYER-IJQJ5xDRJEdvND7UR2Ex7k9XgydpTKazch5RMc0hl7lE4gkYCkeMxTlpMkDPTIlFAWGq4zF4klkimDFNoLnshH2M4UkjAhRkj9EllwnzgLTvQ6aKjThksjx6gBROI6xJd30wJhA_ETns5vM4AfD0dQXvsfvuYJAhVKuCq9XzLU6vUGjDYPCEUj1i2MMs4CssJ1IF2iN0eqPeG8ue7rs4US5rluH40jgABBfB8BYOZW15HxaSzJhKhoKYiHge5QIgqC5h4ToWCUP82xkABZNg5B4FhujgQj0BOdh0SAqIshnSIYBoWJ8BFTDIOg7EkOcVD4B4NUmGhAB5MBElImhyM6NVEh4RT-JQjx4GY9ktwjfIihKOi7kqaoAnwOoGmaNoOhgHo-gGYY1mFTYFiWFAVmMsZ7I1cV9kOT89IYzE7giQNiSTT5Bh-f4miBEEwQhb04QRQzrQoP8_OAmRcRFOkgxJJzmSpGlMqC4MmVFFk2RwTk8lkOCBSFKZRTGRlnJlFq5RwXcVTVDVj11GB9RAHglCiRQIAIfAiBfYQ31wd1EBADtMtcEBqDkpaRm1XqCvxJa4DVTBYAARViCh2DWup8EFLaZCW2Z8AoR4AAVbm4M6boMCgICYJarqWuITpgB67pUV6QCG-ACAMGAls09r-puIgAGsWGwJ1REm10Zsm9VOhgSQ0nTK0G13UT7RwUSPFG50QHxjJJBMIwTFMXcAAFukomAoBIC6xAgHHJAAdjMQYeAAFhAYIJYloA&query=previewwindow%3Dtests%26file%3D%2F00-generic%2FclosestTo%2Fvanilla.js\",\n  \"date-fns/00-generic/compareAsc\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADCgtAcxgOxgJwgGMB6IgewFsAHAQ3xgEE5SATWgFxnTBzgDoAVgmQgKOLhKQgSJAAQALDh2pxEs9lx59-5fJhIA3AEz8AjAGZ-KEq3JE4ZKnQbMiAHRzi4HOcDkUNPRMLHIAvnIAvHIMAI4ArhAMABQA5JrcvHCpAJSenrJyAMLOwXJmZnIAYjAARvjx9ACe5QCcABwA7HK0OKzllTX1jfgtZh2diJ4wAB7UehwCMAm0UFEBpa4syXgA7nIAIpwwyeNdADTllxU5l3uHx6cT19dmOXk4hZEAfHIo-Z95CUggwBtU6g1mm0uj0-uUUHIAFLxKBjDqtKZ4OYLASBFwwdZ44JuHYwfZHLhPC5XAa3OT3CknM6tS4ANmuKHeBXkPzk6DMAMKAGUFnIOAoCfR8LQWuQwHIMmpptj8It-HBRdEANqeOT0skPSnjVoAVjZl2Mt11-vJjzOnRetPO1oZdvR5vhVpwAF11QtkkStkQPl9fjrAXq5AB1GD9IZg-1_FCINAplDOiN6gCy5BwSJR8OhrSTabTGcKeqF8TzyLWKGMbVNJdTaG5cm9nhA5xAEDgACEIDhmkgwKs4DAwt20FhcARiE4QSFSIGl-rqDAiEIRKBxJIONJvL5ZuuiFx-tFgNaV4g-WYM3rlo0oDf09aNaqb1rXUbnjSbncDUZKkWTkdlPQA20f1ND1LW9DMwgBQ8FWOLJ1jiRIUlSfhbGObRsg-JDqCgWhBzQx8khOLCjF6aBiNyAEuB8NIVzcVJLmSHIol-S88zkY8Nw4ZIMiyHJ-A4cgAFEVigZJ-NPWMPgfOYBOSIiSJwUTxKkp8hJQvgPjCD4ux7ftB2HRBRygcdJxAadsDwQhl02JdqJwWjaC3JAd1zPcD1zHwNkXNx1l0rhGEuDI-043keL1CB5VCph-GwDgABUIEoE5osiaJIuSmA0oyrLOIYDh4nwPN_l40ryrzDJGDkX5IrkAB-co5BvflPAQnA22BfEwSGSFRmhbpen6CpwWGKF7UxY8cX4R9VkJZySW_JlfzvJ0bUNDbqS2m4Qx5X4qr65zBohEY0RhcbC1ra6MWVeZVVxc7ohY7Z1qpB0_zeCDduAj0zE5I6uNvQV5BFVUxQlHp8GlWV5UVOaVTVd9fG1F1ALdaDQItL09S--1HX_LHIL2kCwOBr1fXRgNVpYUHeXDCto1jKaEwmZtkzQct5GzXN8zWYGi25ss20rashb-BtjRNMXWwjDscGM3sByHUYRzHCdu34ahSo4CACHwIgvLEHzcH3RAQFiuR3BAcdKAge2b0s8d7zth3B0wWAAEV4nILgXbFBoYA9-2pXIXYAAVgj4YOI8McgIFYe3w5ABJA5gaP8HIVQE5AfX4AIQwYHt7rOxsugiAAa1obAt1zM3d0ts2h0y6QMjwhd8TcYzWBgdc-lwIgje3EAu6yaRTGMUwzGMgABWpaFqGAoBIBoJCK6ROnME1-AAFhAMIT5PoA&query=previewwindow%3Dtests%26file%3D%2F00-generic%2FcompareAsc%2Fvanilla.js\",\n  \"date-fns/00-generic/compareDesc\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADCgtAcxgOxgJwgGMB6IgewFsAHAQ3xgBF5SATWgFxnTBzgDoAVgmQgKOLhKQgSJAAQALDh2pxEs9lx59-5fJhIA3AEz8AjAGZ-KEq3JE4ZKnQbM4RADo5xcDnOByFDT0TCxyAL5yALxyDACOAK4QDAAUAOSa3LxwaQCUXl6ycgDCziFyZmZyAGIwAEb4CfQAnhUAnAAcAOxytDisFVW1DU34rWadXYheMAAe1HocAjCJtFDRgWWuLCl4AO5yjJwwKRPdADQVl5W5l_uHx6eT19dmufk4RVEAfHIoBZ95KVggxBjV6o0Wu1ur1-hUUHIAFIJKDjTptaZ4eaLARBFwwDZ4kJuIi7GAHI5cJ4XK6DW5ye6Uk5nNqXABs1xQ70K8h-cnQZgBRQAyos5BwFAT6PhaK1yGA5Jk4HIIDhYjBDAQ4ASiAp8OQcOQoORMMQ1nI9KwCJi5gt8Et-HAxTEANpeOQM8kPKkTNoAVnZl2Mt3dnopjzOXRedPOocZEfRgfhIZwAF1HYsUkTtu4Pl9fm7AR65MKEmrkesUMZ2v6_ihEGgGyhY0WPQBZA1IlHw6FtOtNpstooegDqMAGwzBkf7jbQPLkqa8IHOIAgcAAQqqWkgwGtteEV2gsLgCMQnCDQu5z_iSY7qDAiEIRKBxJIONIfH5bQ-uAMYsBQ2zGBECuUMViaKAQObUMnXtECXXjH02n9JNgzuL0mWpVk5A5ZN0PDJCaTMV5clTFtwgBT9FWObINniJJUjSfhbGObQcg-KjqCgWhVTo8DkhOJijD6aBuLyAEuF8dIgJJNJLhSXJol-AC1Tkb8iA4FJMmyXJ-A4cgAFFVigFJ1N_D4PTMlIuJ4nBdP0oyIK0mi-A-cIPmXVcNy3MYdz3GADxAI9sDwQhSBklhhJwUTaCfJAXwNN8PwNXxNgvEkNmcrgAEFLkyddFL5FSPQgBUspgbL-GwDgABUIEoE5CqiGJ8qqmBavqxrFIYDgEnwNV_lUnq-rVTJsrkX58rkAB-fkqhAwUcAonB52BfEwWGSExmhHo-gGSpwRGKFIxtbF7WWYzCS2S9SUQ5lnlpG58O9e6iJIvNeV-QbVuujaIVGNEYT2nsK0BjEZjOh0gKu9Kdju6ko0et5nswlkkzMLkPqUuahXkUV7XFSVenwGU5QVJUVTVBhNXwbVAj1A0jRNM11kta0IbtB1YL8V04wwhMUJwoMUw9eHI2jJ6-YI17sNwjGU3Tbms2ukksb5QthxLMsu0ratfT9Gd6zQId5HbTsKx7FlDcHedR3HQ6p0ma25yLRccE8tdNxwbdEF3KB9xXfhqB6jgIAIfAiHisREtwd9EBAYq5A8EBtUoCBk5Av3tRbD1k7gVVMFgABFBJyC4DPxUaGAc6TkBpXIPYAAUQj4Cvk9oQxyAgVhk5r5PEjLmBG_1VQ25AYP4AITVk68ZaQECugiAAa1obAnwNKPX1jqPvYa6RMjY69iRYTyrXvfpcCIMPnxAA_smkUxjFMMxPIAATqWg6hgKASEaCROukF0cwfp-AABZ57hEgeEIAA&query=previewwindow%3Dtests%26file%3D%2F00-generic%2FcompareDesc%2Fvanilla.js\",\n  \"date-fns/00-generic/isAfter\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADCgtAcxgOxgJwgGMB6COAQTABcCSATAQ1vTBzgDoArBZEIgPY5awpCBIkABAAtq1AA5xEEpizacB-TCQBuAJg4BGAMwcUDAUThlKNAgB0cg9tUnBJ5KrXySAvpIBeSXwYAEcAVwgQgAoAclUYVnZYgEpHRxgAD3lNak4AIxgwTRhAj1tvaLwAd0kAEWYYaMMATgAOAHYAGkkANh7DFBSemvrG5vaWgYHDFLScCUCAPklqfHCYdLxs3M4w8MYoMs87fCqYWobaCbapvoGhkYux69bbnv7JQbnHRYCVsCHOCbHAZHb4PIcRinY4VAjnS7jN53T7fJ6I17tbpfGY_BZSf6rdYgkBdEDkABCEBwjHwAE8kICoMDfGS0FhcARiDYvHQTt4OHB5DAiNxeKBnCJqGJnHBXFlhURaPQysBHJJJIViiFEJImcCuurJPtDrr9TBDTgNdDvLq1htLb4trLXAl1GUQhEok1YhwGI0knBUo4XZJ5FBGNSPftvXE_TpGDhoBHg6DhPBqHF-QRYj1oillm4jQqRZm3ewUhxqAIAKIRQ7REtKmD0eYapuZ8ORnCV6t1g5QaLluDzXzzUnkuBUmn0xlAmCskDs7B4QikbP4XSJ5OMMVICVCKUyoRy8q8nxBIeNCg9BIUguEhIUSQrO9bBW7Dhakqw88Il5NG82Koo8kijFcgGTNMXyzPMfwrPaIJgjkEJ7PWRxBBu_4QTcKIPMMYHPDhyIfPhcEEgC87vuCkI2gQv6nNhSJQfcXygeBzGdNBhiwb8FFEhsjgTpS1K0gyiDmouHDyCEcgQAQ-BEPu_CHrg0qICAapWpI9ggMCAC2EC6Wa86WhqulwNSmCwAAiuEAi0MZAkWkaum0vgAjVAACrSuBwE5bk6AIED0LpZk6SAEQOTAXkeYoAUgDJ8AEDomwgI4To4CAi7yIwRAANaMNgYpCMpkpqcpNL6TAYgJIGPKnBO9AwMKODNU48niiAdXqGIBh6AYhgTgAAvkjCFFAJDrMIEDVWIHRGAArBwAAs2W-BtvhAA&query=previewwindow%3Dtests%26file%3D%2F00-generic%2FisAfter%2Fvanilla.js\",\n  \"date-fns/00-generic/isBefore\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADCgtAcxgOxgJwgGMB6COAIRjAHt8YSATAQwBcZ0wc4A6AKwTIQRGjnZikIEiQAEAC1asADnETSW7Ttx51MJAG4AmHgEYAzDxRMaROGUrU6MADo4R3VjOAzyVWvRkAXxkAXhl6AEcAVwh6AAoAcg0OLjgEgEpXVxgADyU6Vl4AI0cAsN9SmDi8AHcZABE2KpMATgAOAHYAGhkANh6TFHSe2oamuNa2loGBk3TMnGlQgD4ZVnwolxxsvILeGGjmKFCfB38q0cb2CfbpvoGhkZg6q-bbnv6ZQfnXJZDVsBHOBbHb5fCFHjMMDsfAnCrnarPMbXSZ3T7fJ4vcaTbpfWY_Rayf4yQFQYGuEBdEC-CA4Zj4ACeSFJwMCVLQWFwBGI9j8Tl5lR4cCUMCI_EEoHc4lYknccE8uRFRHYjBOwFcMhkJXOiDWGxgXQ1MgOUSOupZBqNUJh5qBlpwgSyblE8pkyVSJ0iMXiCR4TCaWjSCzlniUUGYtM9JtiVV9BmYOGg4YyTvY8sS8KcCR6cXSKy8RsVotYcXd3HSPFYNAAoocoHEi8qYIwFprGyWwxGcBWq7XTfWy3AFoEFpTqZRafSmYgLWyQBzsHhCKRM_R44moOHxUhJaJpbKXZ5VzATqWmgBBHrJCh54nJc8yAA8bqaFCdir2PG1TjhZyciKxFF2lxdFHhkS5sXePEvjmBY_lWdZNnfXZwX2Otfz5eIIKAqYPgeYZwKRV4blw-4viGOCiQBO1kLBCFrQIDDKgA5E3lI0CCOwtjcRMfFKPzC0KSpGk6UZZk7TnHglHoRQIAIfAiB3YQ91wGVEBAdUcE1ZwQGBABbCAdNtMl7W03TaUwWAAEUohodgjL1TZDS0mQdPpfAaBqAAFelcDgBy3P0GgIEYHTnLM6I7JgLyPJUAKQGk-ACH0FwQFcR0cBAOclGYIgAGtmGwcVRCUqVVKUuk9JgSRkkDAVzjHRgYBFHAmrcOSJRAWrUkkYxDGMEwxwAASKZgSigEgNjECAqskDpTAAVh4AAWLLAnWwIgA&query=previewwindow%3Dtests%26file%3D%2F00-generic%2FisBefore%2Fvanilla.js\",\n  \"date-fns/00-generic/isDate\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADCgtAcxgOxgJwgGMB6COAEQEMAXGEgE1pnTBzgDoArBZEIgPY46wpCBIkABAAsaNAA5xEEpnVbsOA_JhIA3AEwcAjAGYOKRgKJwylZgB0cg9jUnBJ5anUkBfSQF5JfBgARwBXCGCACgByVRY2OBiASkdHCUkAMS1JKkldKigIBkl4xEcYAA95LRpOAqKSwM9mKLwAd0kvGCjk1JwM_wA-SRp8MJg0gals_FycDxwG4tLmcrxq2s4IJcKV5rs6NphO7qiAOSpzvvSpYdHxyZxbrJy4AQBbGHzCifWqmr4OocOBjHaYAIeQ49GL6FBGAAs6BQ-nQJiMKRe9zAhTgTxes3mkgEACMuDAiDR_psgZxSeTKZCWkdgD5-oMRjioHjHCAADQgcgAIR2VHwAE8kFy8T4BWgsLgCMRbN0VcwQfIKdxeKBnCIaGJnKDJACKXQmm5HJIfo1EA8JnyrYtlgw7WMHU7QYQcJg7dKYI6FsSyWa_biA44fFMja54olIcFwpEYRxGMx1El-jHJPIoFQdgnQhFojFUwUcNA85jnsJ4DRYsyYDE-ZJegERsAnabKVE4-xkhwaAIAKLhQpRbvm_rWydRXP5nADoejsLjvtwfps3kC4WiiVS8OykDy7B4QikRt6KgVqB57VIXVCfWGoTGxuQ-Lt1beHag69EGABDALoHBrDJCTyF1vxgalAWBKCDjODoQKOG5pi_d18XQiCFh2KCygqGlgTwvYLUbY5TlaS5rnZO4RkwqZwLeT5vgaP5CLgzgvXBJloViOFEWRVF0WrDlJH9RiZhya9gwZKkOK2TQQ0ZRDWlZWivwknB-UFOARRwMVJUQf0jw4eRgjkCACHwIgH34J9cANRAQE7IN7BAPEPggdyw25CM3I88FYAARTCAQ6B8-1_OtdyxXwAR2gABTFXA4Ei2LdAEYp3MDGKQHCcKYES-LFHSkBzPgAhdEmEBI15I95CoIgAGsqGwbUhDsvVHLsgyvjEeIMzVOgdIYGBNRwManCsnUQEGxIxEMfRDCMHSAAESSoEkYCgEhxmECB-ucgB2YwAFYOAREAfBum6gA&query=previewwindow%3Dtests%26file%3D%2F00-generic%2FisDate%2Fvanilla.js\",\n  \"date-fns/00-generic/isEqual\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADCgtAcxgOxgJwgGMB6COAUQEcBXAQyhIBM6AXGdMHOAOgCsEyEEQD2OduKQgSJAAQALVqwAOcRDJbtO3HiPyYSANwBMPAIwBmHimYiicMpVoMAOjlHdWs4LPLV6ULIAvrIAvLL4MLQQkQAUAOSaHFxw8QCUbm4ysgCCkbLGsgBSNFAAngUoZgAssigAbIgWKIjVAKzWaLJ0OEwFxaUVxlW1DU0t7TxtXVEBAPxuMAAeynqsvDgirP4MYb5OAbFusrJ4AO6yACJsMLHDNQA0svVPxk8vss1P7U8oaQ_HU4wC7Xdh3EbvV6Qz4ob5tJ7TP5uDI4bKhAB8sjADDgMEyeBWa14s124T8zigRxwJ3OVxu4MezyhTJhcIRaH-gNpoNu92q0LeLK-sh-skRKJRaMxrHwNDxOBADxA5AAQhAcHR8GUkNioLigkq0FhcARiI4doxyQEeHBlDAiPxBKAPBJWFIPHAvMs7UR2H1wsBASSoIhZDK5QDqacthbQ7rcZGgviPV4kik9pFonF4jxmDdtKkUSnZMooHR1RnZjFbjmjD1oGX0vj2J6ElaGPEnrE0mFMYGo977axYmnuGkeKwRBbYoPfTAmCiTrPh6Xyzhx5Pp6O4CigijFcq4GqNVqdTiYAaQEbsHhCKR24xDPWoGXHUhnWJXe6xJ79ha9iONw5E8SQqj2GKyEkOQ8NgrAACoQAAtrc4GhOEoEwTA8FISh-LZHkMD9CU5SVDUdSNM0rQdGgKDdL0RGDKRowURMHSIrIwYLASqz4OsPCbNsFJ7A-VI0sCdJgnyArQsKop_JGYkgvSUksoKHyyfCYocsiWRyBB8byoshK8cSQlkgcDCiUCSmSRCqkybCIqaeKCnWRJvJ2R8alPBp7JIuuum9mGsrygeqrqpq2qIAZl48MokRKBABD4EQ77CJ-uBuogID9icLggLiiEQPlcbnq5-VwOqmCwAAijQWx4kgwURoC-WavgIhnAACpquBwCVshtYYIgQEw-XlSAtANV1HWqAN-XxfABCGI1bhJgql7KHQRAANZ0NgjpiGlLqZWlGrIVISQFuaFIHkwMB2r0uBEElTogFdKRSKYximGYB4AAIAEZ0IDMCMLK4g4VIADs5gdNUIBBEjSNAA&query=previewwindow%3Dtests%26file%3D%2F00-generic%2FisEqual%2Fvanilla.js\",\n  \"date-fns/00-generic/isExists\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADCgtAcxgOxgJwgGMB6COAUQA9yAXOEgEwENaZ0wc4A6AKwWQgiAexxsxSECRIACABa1aABziJpLNhy7dh-TCQBuAJm4BGAMzcUTYUQblqdOAB0cIrrRnAZDmnHoyAL4yALwy-DAAjgCuEBEAFADkGuyccIkAlK6u0jIAYroytHIwMgbMUBCMMimIrjBUSrr03OWV1WG-TvFGKKYAHAA0MijD5qZZOLkhAHxF-NEw2VOyBfhFJT44bVU1rDB1eI3NPBDbFbudlH70PX1DMqZjEzmyszJgFXBLOCCDIOQAEJnZj4ACeSE-UG-gX-aCwuAIxDI1ycKMc_h4cCUMCIfAEoHc4loknc_hkDRxRDYHS8rhkZQujEQ80Wg3pWx2zI-Xxg7JwgWWZM8KTSoXCUViCUS3CY-y06UmwpkSigzDO4oiMTiMCSsvKOGgasyyzY_iSXUxiWG8QyoTmwA5lNxtHioq4GW4tGEFBiFXizupMEYkwZgddqvVOE93t90X97rgk0Ckz-ALgwJwoIhiChMLhGGweEIpEt9EMzENUDV-KQhNExNJonJZbg4viYOGAFthiH7XScAzlSlxXgAO4yAAi-w73d7kw5EVo0Xwg_iHIZKW42Fo07YttCITC1QAZCe9mxtzBaABZBtyA9HsJdmRni8wK-0PLRasATRgoKPkeMhghyybLLkawbKUXLvoclInK0TLiq2dwDMMowyOMkzTHMtALD8rz5IUxSlGcsG1PUxz4C05HIVcGK3L06GPM8OFvHMeY_GmQIguCkK8rCIDcEoS60BABD4EQdZCA2uAkogICOoOMjOCA3xdhAakslx_IMmpcBnJgsAAIrRMIbDaayfIcmpoL4MIY4AAqgrgLhIKpIDMAYwhVGpemeTEFkwE5DkqFZamifABAGEsICuIKvxCUozBEAA1sw2D4qIMlEvJMlZl2MCSCkCrojcCD_IwMA4jg1VuBJBIgKVaSSCYRgmKYaYAAIAEbML1MBQCQCxiBARWSAA7GYACs3AACwgIEy3LUAA&query=previewwindow%3Dtests%26file%3D%2F00-generic%2FisExists%2Fvanilla.js\",\n  \"date-fns/00-generic/isFuture\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADCgtAcxgOxgJwgGMB6COAMQFcAXK_GEgEwEMaZ0wc4A6AKwTIQRAPY524pCBIkABAAsaNAA5xEM1u07ceI_JhIA3AEw8AjAGYeKZiKJwylWvRgAdHKO41ZwWeWp0DLIAvrIAvLIMAI5UEAwAFADkmhxccIkAlO7uMrIAkmCyNCKsAJ5-cLLGAKyyAMowyuwAtgBGBFUoZgAsADT5lRZmsgAiMEQwbR3GXd1-OEXyMLJgzgwA_O4wAB7KejS8q4HLEf5rMPF4AO6jbBczPf1mZv1DGVk4uWEAfEX4VG4cDk5AUiiUWOVyFVag0mpN2vhOo8BrIhqNxvCOmYAJwADhQ80WyyOLk2eF2-14yhYcG8pycx0uMBuIzu8Rx-KeL1RZnewPCvzALCgcEBIF6IHIACEIDgWPhSkghSKYMEJWgsLgCMRHAEXLrzjw4MpxvxBKBPBIaFJPLTZDsTUR2Exwj53LIVudEH8Ab13bJqbTvcrRX6cMFsh4xHaUmlXdFYglEjxmHdtOkPrbvMooCxZfGYDE4hdk0YWDhoLnMpH2LSkmdjol-vEMgK3Qt7btxjR4rHuBkeMUAKIxYXxB3dmBMD4eidO-I5vM4AfD0dQXt3NIfYIfcWSuAyuUKpXC0VqkAa7B4QikBv6wzlyssM1IC1iK026PeO9BCIpNv_r81y3OwLaRrkeSDMMYwTFMiLGMYPSEjQSyescZIOpSPAkr-FR6gkwGsqBCHIs8ry8h8Xy_DQ_yAvykE8uisEIrIHIEvmKHEucGEUvgBw8IGdJ4ecTIsmybFcuRfKfHIPwrKeYoStKsryoqiAhqqEoCQwSgQAQ-BEK-wjvrg1qICAwD-q4ICis0EDWcGClhh61lwLKmCwAAilQIjsA5PowM5sjWfK-AiFcAAK8q4HA_khYYIgQEw1lBdZMS-TAEVhaocUgMoDCivghhuCA7gRjgIDntSRAANYsNgZpiEZlqmUZcrNDAUgpOmBrHHuTCNLgA0eHp5ogN1aRSKYCHmHuAACrQsO0UAkP84gQB1UgAOzmNUPDdJVwRHcEQA&query=previewwindow%3Dtests%26file%3D%2F00-generic%2FisFuture%2Fvanilla.js\",\n  \"date-fns/00-generic/isPast\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADCgtAcxgOxgJwgGMB6COABQEM4AXEgEytpnTBzgDoArBZEIgHscLEUhAkSAAgAWtWgAc4iSUxZsOnQfkwkAbgCZOARgDMnFI0FE4ZSjVoAdHEI60pwKeWp0pAXykAXil8GABHAFcIUIAKAHI1VnY4OIBKZ2dJKSkASTApWkEmAE8vOCkDAFYpAGUYBRYAWwAjAgqUYwAWABpc8oMpACkIqFKDDs6vHAKZGCkFBwB-ZxgADwVtWi4F32DvBxi8AHcpABFmGBjxrt6ANl6DVPScLMCAPgL8CJgMl-lc_KFEplCrVOoNGAtNrXHp9CpDEZjDrVCDTWizeZLFbrTZcMARWgRUJBMo-WiHGAnc4sK7Iu4PJ6ZaTvKRgKhQOA_HAgbogcgAIVRVHwxSQbI5MD8vLQWFwBGIdjJiocnDgChgRB4fFArlEtHErl8a3VRBYDBJwGc2R2tEQn2-3StrIJRJgdvFnMdOD8v0N7kSyRJoUi0UucU4jAuGhSzz98ygVFRQfCUVi4f0VBw0ATaV-LDo8X2dDivRiqSCH0t0ykxo15IDHFSnEKAFFIuyYrXTTAGM9sl3yQoE6im6321AYg24M8_M8eXy4IKcMLRYgPZLpRhsHhCKQi_Q9Jns1QtUgdcI9QbhL59yTEhWpPeADxSY5nC5l35ZHL9BGjdpdFMMxzDayx4Di-BbJwNokvuFJUh-ML0hUjJ_A-tBfFyTJwgMwz_gYBiAUm6IgVi4EbJBeIusSez2AWb7UpcBE3FI9woc8rwfOuzjzgKQoimK7KclKIDQaE8gQAQ-BEGeAgXrg-qICAVbZI4ICco0EBqe6QkwF6qnqaimCwAAihEggsNp9p6U6anCvgghHNQoQcFZdl6IIEAMGp-lSGpkQWTAFAOUobkgAooScvgeg_CAzg-tyIkLEQADWVDYFqwiybqCmycujQwOIiTRsqdDzgw9S4BVLiSdqIDFck4hGARJjzgAAs0VCtFAJBfCIEAFeIADsJiVJwnQgH4U1TUAA&query=previewwindow%3Dtests%26file%3D%2F00-generic%2FisPast%2Fvanilla.js\",\n  \"date-fns/00-generic/isValid\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADCgtAcxgOxgJwgGMB6COANQEMoIATEuqgFxnTBzgDoArBZEEQD2OVqKQgSJAAQALZswAOcRFKat2nLkPyYSANwBMXAIwBmLikZCicMpRr0AOjmGdm04NPLVadaQC-0gC80vgwAI4ArhDhABQA5OpsHHAJAJQuLlLSAGI60syyMNL6jv7JiC4wAB6KOszcZX4h3g5-cXgA7tIAIiwwcYYoJgAsADTSJpNmJumZODnBAHyF-FEwWYsy-fiFxaU0G5Nu-gTMVABGsN6iQtJU0pXVdQ3cp-cQ1yWhPuVx5gAnGYABwoUZgtBoBZLVbMdabHDZHYFIolCA4Zr0J4DKp4V74RpcDFY_y_dr0TowHr9ViJDIwmQraRgGhwREgcYgcgAIQxVHwAE8kKyoOyAly0FhcARiPZfPR5eUuHBFDAiLx-KA3GJmBI3HAPLU1URWGTPC5pIc_Ig1sdLdIPoSvrBbfD7TgrSTyrbRezxi4AlsDR5kqlWuForFBgkuIwBpo0gsQ9JFFAqBiI5EYvFYwYqDhoOmMltWIbEn8_AlJnF0iFVsAHcb1cw4mHOOkuMwhABRaI0OLN00wOgLK1D1tpjM4TvdvtRAftuALAILTncuB8nAC4WIP0wCUgKXYPCEUiVxVlQtQdOapDakS6iQkABU0ngtFE6Do5CuNxwQjoOEhpnmaWBQEIlxstIL4kC4KYXuayT1g6ACE5AAHJUBhcRtgMtyGgWRAwEIYB9PhAD8OKsNItrdORdLJPMXDYMwAAqEAALaDPMWw5Ls-wlKS1EwHixpvFwwnkgqdBUjSAxDCMExTDMcyMvWdqIsieSogczTHI6IhnISf7oncDwiWJBJEk6zAuj8bQyQCZjAmCEJQtC2nMu6WnbDpexorcwnPPi9SEtw3otNJ_z0bSMYMl5qz7i4668vyQoimyB5clwijhAoEAEPgRD3oIj64HqiAgI2nrSE4IDspxED1b6WUBrV9VwBimCwAAilEQisC1mntVa9UCvgQhdAACgKuBwMN436EIzicg69XRINMDTZNyiLSAeXwAQZz1YGKWHooVBEAA1lQ2CaiIpU6hVpXbtxEjJImSp-OudAwGqOB_a4hVaiAn2pBIxiGMYJjrgAAlBlwwFAJDrKIXEwBIADspgAKxcKMIABMTxNAA&query=previewwindow%3Dtests%26file%3D%2F00-generic%2FisValid%2Fvanilla.js\",\n  \"date-fns/00-generic/max\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADCgtAcxgOxgJwgGMB6AWwEMAPEgEwoBcZ0wc4A6AKwWRCIHscTIUhAkSAAgAWDBgAc4icfSYs27fvkwkAbgCZ2ARgDM7FHX5E45agB0cAtgwnAJlKhIC-EgLwT8MACOAK4QAQAUAOQqzKxwkQCU9vbiEgDqUsRSEvxgEgxS8DASMXASEGUFxVCM8AwA_PZk_LTBsOwwVHKaDGV-7uEA2vYSEngA7hIAIrXhhgCcABzzADQSAGxrhigJKyNjMJMzTHNLAOxbW4a7-xPTswvzAKxrmxJ6Nzijd8cwp_MoNaAiTXPY4AC6SRwqR8AD4JABlYJfABSbQkKD0IPmzwxKEQaAJKHsIBWIAqACEIDgKPgAJ5IMAUKBwGCeMloLC4AjEGw0dzsOByGBELg8UCOYQMUSOODOTrCohMWi-A5HB44l4bNYfZIOQRykq1OKqgIhMJ_SLsOi1NTxKGy5xyGrU01BUIRK26Cg4aA1RJ6phyqLuSJrcIJXzw4D7BUihjhGJxBLsBj8ACiIWZ4TjSpgtCho1zCedFGpKbTmeC2aTbChnihpPJcCpNPpjOZrPZIE52DwhFI7m9vqgNTFSAlgilMoNzncqtKUbV9xOAFlGFJ2AN2DvSluKHJE7UlzF2NgGAAVCBkP4JO9QlKSDJZHJ5Kqso1B8qVQoSGpBhomhaNoYA6Loej6NxqCGW5DhXP4FmWV4th2MFvjg35TkWC4QSuT50PVE5Hi1N4PjQ5dMMeYFgVBexIUfJckVRdFMWxXFCQ44kcCbSlqVpBlECZFk2TJdg5ACWQIAIfAiAnPgp1waVEBAGMvgkWwQFZMgIA0xAJCE1lyI0uBqUwWAAEVgn4JhdPyfBghgIyQFpfB-HGAAFWlcDgWyNIoHR-AgWgNKckJrJgdzXIUXyQHEop8B0GANPsTwSW7OQKCIABrChsDFQQ5MlRS5JpG9RBiO0-SbWgYGFHAaocKTxRACq4lEAw9AMQwmwAAQAIwoPqYCgEh7KEa8YFEM4jCedgABYQE8JalqAA&query=previewwindow%3Dtests%26file%3D%2F00-generic%2Fmax%2Fvanilla.js\",\n  \"date-fns/00-generic/min\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADCgtAcxgOxgJwgGMB6AWwhxIBMBDAFxnTBzgDoArBZEIgexyNBSECRIACABb16ABziIxdRs1Zs--TCQBuAJjYBGAMxsUNPkTjlKAHRz9W9ccHEUc4gL7iAvOPwwARwBXCH8ACgByZSYWOAiASjs7MXEAdUliSXE-MHF6SXgYcWi4cQhS_KKYWnwoCHh6AH47Mj5qINg2GAAPWQ16Ut83MIBtO3FxPAB3cQARBhgwgwBOAA5lgBpxADYtgxR4jfHJmBn5xiW1gHY9vYND4-m5hcvlgFYt3fFdB_cTs5eK2WKC2IPE9yOOAAuokqBJvAA-NIwajiABiMAARuCDODruI0IhCWg7CANiBygAhSg1ACeSDAtCgcBgHnJaCwuAIxGsVDcbDgshgRE43FADiE9BEDjgTh6QqIjFRvie50WK1WN3Bd1hdhlTmisR8fkCIXCETYNAWqjisP14lkUFolGN_mCoUWFp0tBw0CdCSSggakTcES2YXiPiRwGO8uF9DChtY8TY9D4AFFgkywnHFSjYRNcwnHc6cCm05mgtmk3BYR5YWSKXBqTg6QymSy2SAOdg8IRSG5vb6oE7RUhxQJJdKBLLXC7fCUo_9nhcALIMSRsYZsHclLe0WSJhZL6JsbD0AAqEDIi3id91cLSGSIWRyeQKLOKC1K5XfVRqdQNM0OCtO0nTyv0gxzjgoyPKcK7qmsmw7HsByQhMqqAtctw4r8GHwWqrwfCh3x4cuhFAmCYIQnYMLJPCSKpCi6JYjieKagSKBElxJI4I2VI0vg9KIIyzKsuSbCyP4Mj1Pg-BEOOvCTrgUqICAMZ_DYIAshQWmIOIoksuh4haXAlCYLAACKQR8Iwel5PgQQwMZWk1PgfBTAACjUuBwPZrnaHwEDUFpLkgMEtkwJ57nyP5IBSYU-DaDAWl2B4pJdrItBEAA1rQ2CigIikSipimtjeIjRDavKNtQMBCjgdX2PUYogFVsQiPouj6AYjYAAKYrQmIwFAJCOYI14wCIVyGG8bAACwgB4y3LUAA&query=previewwindow%3Dtests%26file%3D%2F00-generic%2Fmin%2Fvanilla.js\",\n  \"lodash/array/slice\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngejlCAYxhygHsATFOACwDoArBZEQsgOwBcYukQccAAhqdOABziIB5KrTpsAtjgplCcHAGJ8RGAB12EBWLJpOg4IO3FBAX0Fg0ZBYIDkM6jRf79MAB7HTODp0TCxBAF5LAmIACgBtAEYAGkEAJhSAZhSAFgBdFPTBADYASn0BCIA-QTjBLMFswVzvdjZ2ODMQ7Aia5vYurDii3J6i_QG4gE4RyMmWvwDOIIBXdgoYSHYYCh6rGBiBgpTS8qFw6trV9c3tlKuNiC2KO7WHp5frx-2m_RAkkAgcAAQo90FgkGAUFA4DAbP8BnhoiQ9nQ4GIYIRGMxQG1uLxEKwOB1BAsMdwdpFgPpBIIBogavU8klqYJ7jcKPS4myvs9Wa92R83rc-Z8nvl9DYWm1ie5aD00DAAI7LCAKmIuOikSgeFxlVpEsxiKAoR7ypUqtUanAANxQBigxt1LXWcEIaAgACN9i49i4UjESlVzCzuB11ewTAooYIvTQUNaIGRlmg_YIA0GqewaTTSYRODFZfQBiU6JwyABRZVQmK58nBDDYPXZkn-MkxI0m9j10IlsuV5bVwvdxssmx6kPwfMuGBGThhAa0hWCdbtGCp9PnYNZ7PSswrmHl1t576RWvbOjcp50KNiGLWoNz9FkMCCa1NncG5c8GEAGW1csiIdL3PG87wfLAnxfN8WRpXcv1XAAFY1TUiDtHgvfkeWvFBb3vTdHxgZ9X3HbccyPfN9xgP9ZBoXsKyrKAYkow90WPCh3zI1iKO_GAkM7Oj-2rSjqI8d8xwlPU_gBYFQTQcFEEhaFYXhBtcD2G07WgY0sSQHEODxTg-DgvYegODAUg6dBOBSHh2KDOI6EckJUSRGJLNMGy1hKPofH8EwlmHMJIj2eJkjSTIcnycLij1CpN1qRkfnYfQ4IXSI4j6CZhlGcZVKmGZBDmZKtj8wIMNFE8oh0MzQiOGLTnskUhV5YCWsw94mvZJKpMBEF-jkiEoRhOEQDoMQFVECAYAwQhdMJLgeEMglMxpXQQBhBQIDW-lFJhZltzWuBHgAc1gABFZYyG4bbBE4NBlhgfbVpAEIyAAdwQ9Bvxutb4zICAKDWp7BDW5Urt4xwJB-kBxvgabrT0EAJV-EaxBQQgAGsUGOmAsQ4ObcUWub-gUGA-ELREdCk9Z0VeVopuxEBCz4bI6ASAB2OhUgSKSAAEPRQL0oBwe6uEMMmCU5hIAFY6GyEAbEVxWgA&query=previewwindow%3Dtests%26file%3D%2Farray%2Fslice%2Fvanilla.js\",\n  \"lodash/array/xor\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegB4D2aOUBAJinABYB0AVgsiAMYEB2ALjJ0iDjgAIqHDgAc4ifqQrUarALY4yBZnBwBiQmgA6bCPNFEOA4AK0CAvgLBoC8gQHJplKg92755AK6waMPIZoHHA0XnoAjl4wAgC8ZkQAFADaAEwANAIAjBkALAC6GakZAMwZ6QIAbHkAlLr8sQB8AknZAjklGVXubJ5kPjB-AUYhfaJQEMwoXHCx8WjJra0pBc3l5cU1dYIxTS0led29_YOBwTQAbugQKGQTs1oLK6lPrRuF5fm1bPU7zaVtBzYIDSIAgcAAQhA2OgsEgwCgoHAYBYQehMLgtPgiDQ4KIYMx6IxQKxONwOLwSXBjP48cwuGRZsBdAIBGEIJEYIhmq12gJ_lU0syBKNxpNply9nyCkLLmhrrdmBL_vlBWwLN1KcZnNRZmgYJEIHqEg4aCRyC4HF9NQIxigobr9V5DTBjabLnooFAUJbutMOMatA4Mglqo0TEKafj_dqqNUaBwCABRSIIhKRukwMhfFnp_22qFxhPJrypmNfCxfYGgiFQmFwhFIlEgNHYLHEd3QL2EpDE9hcHiIPiCDhUMHWMJ0iDsASTNgCABG0S8SIZlAEKAEVJQbAopDY0XMEDAAiwBC8AnYUCwWwEMHOMDQAn3mYEEGMCYEAHciABrL9vqgBA4b91zQABzLx5DJOBdGtedazQLAAA0iFmBI0VaNEUlDX4mTnGd2CpddZgwmhICgLh5jwMMAEIsJoKFmCgLwyHgBI8GqbMCLYIj5xIjAUjI6BKPY2jSMY5jWLgdjOO6Fk9Q4Lw0DnABBDBsDI2x5ASfdPwEABlGB_SSGhTJQDJTJoecanLDVCOMcw4gSSyWywOAcKaVyQj1PpmBdeDoUQlC0EKTY2A8bxfBpYZQgiKJ7kSIoslyJ51jKTowp-XYeQ6SpAQivooqGIIRi8MYJimeAEvmSUllS9KpS-LLuX2Q5IoGaKSouK4bjuOIHhaVKXn2d4Uqa7ZdmVQEqzBSFAthRB4URZEQRoUQFI4CAHzQZgexYPsyV4PCWW0EAkXkCBTq5JakVVE6zqhMDYAARS8AguCuoC0CiO6BFOtECE_AAFdBuBgpA_ubc4CAgMhTt-07InemAgdscRPtO9b4Afe9Tt0dUgSbUQUGYH8UDAgYGHYPaSX7ckmGhKDeBjNsq1YvEd24ZgtqJEAY14HIaEyAB2GgUkyKsAAF5xQRcoBwb7OH0GBeFFzIAFYaByEALF13WgA&query=previewwindow%3Dtests%26file%3D%2Farray%2Fxor%2Fvanilla.js\",\n  \"lodash/function/bindKey\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKMBXAdgYwC4QPboD0ARhOgCYDSMAnoVHuQIZwAWAdAFYLIiYHYY6bEhCFCAAlbZsABziJxDZm3b8AtoXJ5McQgGJSFajQA66COtl4ATtgnAJRqrQkBfCWBt51EgOTKLKx-5ub86HD2eMScMDgSALwO5hL-qHAwNn6I_l4w5H4ANCn-AOY2MDDY2Z4YOPjoEgAU5ZW46KWFErJ12KhMuAQAlMmNqRIVfTaNrVVkpRIA1P4ry9isEHDs6ZlL3b39g-glbsXobqHosPbEeBjkiU5kLjRN0bE4XX6z1V8bfkNzDAAB7WOxbSA2SKPW73Jp-ACEAPM4kSAD5_BtPBVyEjLu84th2D9HmgsEdmj95l0euTDg0RsASpNUNMJFSOns_DQmKsJOtNtsMjY9rScPSCOYLsd0CCwdgthlwg8krCKPCkYCiJIEhi_Bsedj8nj0CBCiBNgAhMhMGw0JBgJhQDKncC9BokZ4mT3GWjsOCyOJcHigcKCYSicLQuWE_KPJljSGRHL6iBG3FFEpKgjkFMG3l5DNnaVhAjQwJsR4VACOqAgFXh7HojCCyKwZfssigTDIVZgtfrMEbhAAbkwLFBu23zIJIvDnCYis0RrrRqkYzgmhXWEN2Ng8ABRWtOpobwTkLXr0GEppdnvoXf7o_9KBbltsLVuLVmi1wa3oW17UQR1nRgV0yXqAgfReUdx2gbtgyQUMBCEERED4Dsnl9GhEhKN4Yi6dQqlYRgunYcjbVKOAVzRPDyPYNUL3REpUneABtIj1kYABdJp6MouAyPIxitVLCIohiQl4xKPwdiyFNC0zMZvgqKoaggikWlU9pOn2OkBgZNdxhZNkOQWZY_D5AUtjk0UDgMyUxlOKVLmuJw7goGEvVofCPmwL4fiXVM2zlWwFXYJN7FVDzyA1NtUVXVN0xNcwCRwYltNJd0CEpbTqT08UHIfIyTJmPLOQsw1LLWDYbOFOz9KOFyZVC8F_TiHMYRiuKtQSvV82SkJTXNK0bTtB0nRdc12FkSZcEyGxMCQjDhFQ0QE1SUwQAydQIC2nIQIyM5Nu2-ZYAARVQPBBH2_kbFQGBjokLbbW8AB3AAFW0hDgW6XpHPAIHILanq22trpgD7vHkP6QFm-BMhHGAtuakBXVkJhMAAayYUoYGDAhlrDNbeAAojRG3aCTB_cgYEDCghEwCB4GW7dRAAFnYABGAB2dgACYuZ_AABYgmGIGAoEIe7hEsGBRD5rmAFZ2HZtG3A1twgA&query=previewwindow%3Dtests%26file%3D%2Ffunction%2FbindKey%2Fvanilla.js\",\n  \"lodash/function/rest\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKMBXAdgYwC4QPboD0ATvNoVHgCYCGcAFgHQBWCyImB2M62SIhQgAJ62bAAc4iQZVoNGnALaEqeTHEIBiUnGwAddBEXi8xbEOBCd5gL5CwxPIqEByWXXouDBzul1C4GgBPIQBeKzIACgMhIUiAd3oabAAaIXQaRXgASjCAPhjYoUTkoQBqQtiXV3LK9Mz4RjgoCEwYSIAGNIBaAEZsljwIdEiXNJdcsqFBAJgYIQB9RmGIXBooOsiMrLhGWHQAc2x6ITyhXqEAflc0gDIaxFcJ2vQi-p2AbW3G_aOT7vOAF1psI4HNFns6Pp0NlvOhFNRULBGDAAB4mMxwMIBYKjegwKCUMauBwwKjElwAIxoxHQMCCFPEMEplNgcAmBhmoTOLnxhLw9lIVDS1Np9LuQiZLLZXnQIBSIAgcAAQsMaUEkGB1mCbAq0FhcAQSGRjbomkzMCw2KBfNxePxfP40RbuFRsbyCZRBWSRTS6UEJVLWfBZT4CP53AxsaQAI6oCCkUaMCjUDwcrDh8ziKA0YbRmBxhPtFzJgBuNEMhJo6YM3F0o2sxMiuW5FkKzpgOEikfoA2weAAonH1pEOzgybDXkIx9hItnczDGP2h6gRz3JzZJ_LFSq1cQNYgtVAdXqMDh8ERrIRy5Wc1akDauDw-IgOJmIv5QoV9Zh8oVIpAxC6GkjCgTSBxwC2BRTrEP4AQmwFCOBkFwo65iBCE4TWNEU4JEkqTvDkf4wcU-EvG81TVBUJHfLszStO0XRCH0AzMEMIwUpMIKzPMSwrGsGwkVsDS7L8xynOcVw3EI9zVI8LjPNRby0V8Il7DwfzMUC3FgrxkK6AYk4GAiVBIjAKLoqY2BYuEGF4p6eAUqS5LjKK_qMsywbspOXI8nyXrOb6YoBjJkqeTKBjbkqqoZPumrajAuogIw4ikGIEAwMQxCYA-b68M-_DAIUeggGCigQCVjxHmCKTFaVwwHLAACKqB4NwlVCNgxCoDAtVTiVNKOPEAAKNI8HAHUDaWQxUCVfWxCVcZtTAw2OJIk0gKl8CZaWMAlQYNiRUl4g0JgADWNAHOZrAELltoFew3z8D2pp8AqVAwEy6AfVgGXWiAPb8AALIwvQAOyMAATL024AALUpSBIkBguBZPwEO9AArIwQMgDY-P40AA&query=previewwindow%3Dtests%26file%3D%2Ffunction%2Frest%2Fvanilla.js\",\n  \"lodash/function/spread\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKMBXAdgYwC4QPboD0cADgE4wCGAJoVHtZXABYB0AVgsiJgdjOmxIQhQgAJm2bCTiJR9Ri1a8AtoWp5McQgGJSFGgB10EFSTxlsY4GP1VqYgL5iwZPCrEByBU2afjxrzocFZwlACeYgC8tuT2ABRoWLgEYvEA7sx4ADRimZTYAJTWxmJiFNioZOh5WWIA1F62EXBNjfnYxo6FAegwAB7mlnCsAEZMEJjRzeHxANqerjDUnrmezDBQ9J4Auj1E4lEAfF5LDmHhrRtbeP7ogQQhYuioKqMwZK0xAApuKhBwGCsShbea_dwAoEUOB4KAANxg8QALAAGQq5cH_QGsaGwhHxADMADZCntegMhtgRuQIYDpi83h8RtgNuh4qVYgZqIkMDh8DV4v1cuFisAOWUKlUav0GmJwhzusZ9qJoidKGJMZCxHgwGIAOxE4wgbIgAEAIQg6EoZHCSDAIMBjhNST5BGIcRo7q5rFIMEwHC4oCC_EEwiCTwpfv4DhiYpqYnGcEmiFOFHOLQkm222Q5NKxMBTBpz6EcvXDVh8LGmFAAjqgIBR4p5WHQGL5PPty2ISFBKJbqzA6w3Ec3CHDKCYtpQO71qPBMGQIO8m3YaKs0sVjiV4_wQk3E5N1_FNyc42UypGcPFK2wD5hCqxsHgAKJ1kHxS_RsYTe_isSf-Iez7dBvyTe9HxfN8oGvNslDvfYykVe4d3gbAmzzSF1yYcIsA3VVt3PMQuxvAAleBpkodI-wrWC2AwwE_y7IDLTIr4xEo6ju17S1WHomBekIgDSPgB8n1fVB30_ZZeL-SEEPPADmPQVjRMgiToOEuB5KQpDjVNOALStG07QdGAnXAXkUiIVdaHHSdewDJAgz4AQhEQHhHlCD0YxcXl8OtABzL4ThdeJWHCwKtLLTyZmmGyeWSfk0kyHJagKUUOUlapajwWVPBmVp8vaZgCi6fZjApCwqVAyY4oieZFjTdd1izW4yQOfDGuWArMxuO4HmCKwGXeT5pk1bEQWguZxqheA8URVF0Q1WTsVxeFEWJUlyr6QYqupFaYHpV4RuZVl2XjeKXSstIhTlDL4wlGBKmymVGnleMkOVQ41WW2lDp1fVDXQPTzUta1bUQe0oEdE0ZKe3APjITAnI8wRXOEM8xEMEBAX-bGUyhwFizKbGk3QALYAARVQPB-HxsRsDIVAYGJrGQGtNx0m-a0BDgenscoOE8AgahsdZ7G61pmBwRkfmQDiQEyARbGuiNcySEoTAAGtKACoFOAIFHg3R7grRUGBhBvL17D0ucSAEOcsAgeAUZvYQkVYABGPVWAAJk9vSAAFxneKBCCZwRTAt9yfc9gBWVgkRARwU5ToA&query=previewwindow%3Dtests%26file%3D%2Ffunction%2Fspread%2Fvanilla.js\",\n  \"lodash/array/pull\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAhgJzSgngegA4CuUUOUA9gCYpwAWAdAFYLIgDGZAdgC4zdIg4cAAhpcueOIkHkqtOuwC2OCmVZwcAYkLEAOhwgK8ZNFyHAh2qEIC-QsGjIKhAchnUazvXoBu6IekwsIQBeIQBtZxRnABoXACMYl1ZEyJSE2OdkgF09SwAKAOwMqIzkgEovDgVKIhg6GAAPIxM4EP8MbD1BEIA-cOd0-OccjhBokAg4ACEIDnQsJDAUKDgYa3HC3Et8Iig6ODwYVkZmUHZuXi5-c7hTRsPWHgo2iMGB4cqb0zdaNrQYACOBAg_zyzjopEo7mcFQ4XwsUBQsz-gOBoPBOF8-mIUVheh4tzBlkSeTKvTMeiEQnuRy4eR-NDKdC4ZAAokDlnkaY8YBRYVTuXS8IjZkyWeyCJyGbDrLCxhNprN5otlqt1iBNjtiJiUNjESckGdODw-Ig2JxbhZdm0Ch0sLE6I7fFACPAycE-sBKUJna64HQwMZWShWDQ8r6YOSvRwqVSAO40aCR22BOizVguijwcPLV1lMnR2Oxzb7YUQVgwFPYNMcLMNADyYBzLpgZViAEZ-bHrN7Zd7_lwCGgY5s9D2OD4_JsXqkMm9ksU0ilsrldlX7S4SkkYZVqhRavUmsYuK1QqOON0Pf03gkRvLJjM5mgFoglis1uM6HgB1wIDAMKwhrmhcpogIWQg6CAqwKBAkGIHYqowNE3qQXAswAOawAAigQZA8HBQhcGgrrITGEEahgZBxgACugvBwARkEoN4ZAQBQkGkVSkFAnhMDUQ4EiMSA37wP-3gwJBY56CA6p4CGADWKDoXUTCcEB5wmlcLBzAoMD8AyWpQPKWaHLWvCsH-pwgAy_AACx0O2ADsdAAEztvKAACcQoHEMAkMR3AGHpZrOe2ACsdC2TJ1gxdYQA&query=previewwindow%3Dtests%26file%3D%2Farray%2Fpull%2Fvanilla.js\",\n  \"date-fns/08-month/lastDayOfMonth\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADADgLQFsD2A7AFwAsB6KAQzgIBFyBPAeTAFl9iSATcgmDMPOADoAVgmQgAxmxiEkIEiQAERAgQAOcRAq48-AwTgBOAcxIA3AEyCLATkEBmTjglwylGvSatCRADp4pAQJFYEUKKlpGFjYiRQBfRQBeRUMYAEcAVwhUgAoAch1efjg8gEp_fwVFAHEYYOIYMPdFLjpFHDBFckVcH0F_XA4M2EEYAA81IwI4JKaIz2ifHLwYAHdFWh4cixQARgAWABpFXeOLAFZS0sECHE2YAGUCQwg8YxzyvCrEgD5FADEXgCYAAjRQWNDgvb7fwgQ4gCBwABCr3IhjoSDA5CgcBgcXh6GwMTc8yi3nY4Q8ZJigjgahgEhEYlAgR4skQknwVEU43pEh4HFmeUBEGBYIhUIOeQqAS5wUKxVmqUy2Rg-UEnG4RQEZX8gW5agoryV6SyuTyGrM5Dw0Aourw_h4VHylMiXhieWOHySf2A_kUPImDIIOQVAmutwAoplsTlecGYBxPgH4_ycobyK8IzhoxlY2G4J84p84Qjkaj0Zjsbj8SBCb0Ke43Yt2FabVAKEykCzpOzwBkAgQIPg5lT3UtCqUQv7FPr5VqAMJQfCNZIrdb3UNawTGOoAFQgWDVVxnc56MVmhSXK53dXJRA-M6vy5WtLqm92yZai5fMDfBHvHIG1iABqE4v2fG9cQ8LYUE-GdUgIDJDDwb8eGvFZ_DiGUqlqeoiEaSlvzaDounPPoBhwIYRl5KYZmSV0FkA9cNi1bZoWOU5wUubN7ieF43kfL4lF-AEgX-UFwUhHYDlheFERRPA0QxRAsRxPF4UENREKHGBDEMCRu05QgZAIOQ_VQxRfBAXEsAgazEEUNTcUOGdrLgV5jFgABFDIcB4BzFGeDIYFcyzrLRQwcFWAAFNEZDgQKIrMHAIA4aywoDazMn8mAYqijQkpAbT4D0swYGsrDYVrNRyAkABrchdyZfAjNZUyjKUo85EKPRXEY6kfFLDgYHpPARoCCB4CM3rijkKwIUEFBSwAARBcgQRgKASEMAch26jkAHZBF2c5BH2EA4iuq6gA&query=previewwindow%3Dtests%26file%3D%2F08-month%2FlastDayOfMonth%2Fvanilla.js\",\n  \"lodash/lang/isArrayLike\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgQQCdDUBPAGQgGsZsoB7AE1TgAsA6AKwWRAGN66AC4xhSENmwACVkKEAHOIkkNmbdgIC22RvT5xsAYjxESFajAA66CJvn1CQqcCkniZSjSkBfKWEL0mlIA5KosrMHW1jAAHvaOcOyo7qRSALyuBCmeMAAUANoAjAA0UgBMpQDMALoAlNaS6QB8UkKEAK5W6NFxDkKJyWY56ZmmHha5unztmqJC7ABGTKQarNCMhKL16I1pLW2dUeix8f3scG0QWCNuQxPBqAt8wdu7-x1dPaeJ9AucN1k7jRci5UIgpIUfK9pHs_KgoHBPsdegl2GB2ug-E4MrdxsDcrVms5vNCiWB4YjrCBiiA8AAhK7JUhIckImDeGloLC4QF42i48w0c7yGB8Lg8UACYRzcRSi5SE6ikSMEbAaxSKSDMjgg4wYrqzXZCw6j769Aai6EK6YE2dM0a36ccGsxH2vwYrHOil66zeI5ypxhNgjTYAR3aEE2uWC7DoTHCL2sAak8jQVxDMHDkbyMewADcMNA0InutKLtGBTlgqUCUS1eaFXElbkg6xauwhPQAKLh-G5RVYmCMbYagdCXKp1BXdudnvtPut7Ykqk0-mMwjMxAu9mcjA4SsWfOFqBocVISWCERiRD8QTyg9eDKoZoGoSkEX0MCaqQAQjSGWCdFMSECBBGCKQADIIINVAAH52FgLAhFYKQmgyAAGSDoIbOCENETBkKkAAeDIADkZgWGBCHYABZfAAA0AH0AGV8AAMS7RiAElSIAFS7ABxLsACUjhOPoBhSAExkFPIilKCopBqUlYV1MSUTOLVZOko1gSmGY5kWZZVnWTZ0BU95DlLcTUUta0dKBHNHmeCzWg-dTvnYR0HL5EFNXBSFlx2GEWm3DyJLRD1sVGXS8lrWFgCCt44TZFdaTgBl0CZFlvQ5EB2HkTY5AgKjCD4c9b2la8QHrDVLBARFNAgeqvTZN16rga1YAARXaegRBaty7QNerBnoAB3AAFZJRDgQbRrzegIEYer2pAcN-pgSaAkUeaQEK-AqLzKwQF9Kk8vkVA-CoVBMBgcVBAqqUryECqstmcRWx5GScmpEBGBgEV0ABzESolEBW3EAAWdhCgAdnYMpCj-gABBZHhgKBsA6YRbBgcQEcKABWdgoZAbwKYpoA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisArrayLike%2Fvanilla.js\",\n  \"lodash/string/kebabCase\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKOAXAThAdgcwPQDWMARgIbEDCpcMeUA9gCbUAWAdAFYLIgDG9WVDEFIQePAAIWqVAAc4icQ2Zx2_ALZ5G9XnDwBiImUrUYAHSwR1s-ulQTgEo-So0JAXwlh09dRIDkyqz-ANwWFjAAHjZ2cGxg9PQAyrKkvDAAQqToEgC8TiQupgAU_gBiiRJZ6P4AlGFY4nkAfAEJ9AC0ZDUR0baoce3VeQXGrjClQ9l1DU25rf7tXdO9MQPxiQD63SOjRTSlm5tlAPInmxkAggBKRzMWcwtL3f6r_XEAbtkV9MP5eyYDmYQD9qsD6g9JPM2ollj0sFE1p9sgA5ACuUCgu2cgImWAxUAhjShC1eCL6sTYX3Ql0xDAA7jB0LxTNjCrjSqQ6fRGczTPdiS0AlzMTymSyaGTEe8qdlaVAWbIIKgRTAZEy4GyxiV_JcADJ6iiXAAKAEkACr6vUAUXN5ut1ySAsewsxiuVqvV6DgUop62p1usqAAnlr9hN_M6SRJgbHyUjZegyly3P8ceNimAUzAiS7gVmoDQ49LKdSAKpYRgwSAIxhhjloyvV7AwRi56OxkBvUvZABaTPo9YzAAZ20LgcPi37kegqOoYFBxkOSsCWfPF6ZwbMO3xSOuOhLzF34zLqScEWXZLImUu0-yM8DLlvIeOQKQpwmzwiGTfWXftUCIDEM-grQsCwHHiW_qomi6jEEyy6AQAjCBeYgChkHTomKL0KgtKyCwpBIYhEzAgA_KhO4fqeqK4fhhEAEwkcUwIdJRr7UZSFBomgvgABoALJ6sa2Q0Dk_7hixIDcbx6gAFSCXqckid6TLsWBfA8agvgdJE6hQB0qSqegnHrCapplNgVbiRIAIPiA5mWU2JkgGOGmkEqHQ1tZplxAAUkkJwotc8A2FgNAACKkCqzHAgFQUhXAYWRdF76udur5cAIHToKFAg0B0zAqr5bDGhqAgMcOlyMIwuVwJqEkcsCZXehVVU1XVcDqa0wLXq1WAdJVHSkB18BdZhCZlmJ5mVdalY2Ng9iNfZU1MjNw5zYwC2CN1MYgDxTLDZ5Q3CFt9CLSV1KVeQvARTAsUgNdxC3Uebk9Y9w7Dc9hVHt20HoAAzMOYA4Cwpp-Q9QMg2Dfm7cCQNeaDHQQBwcYgAANCAEBwBk2DZMGSAFjQ7iY2gmC4IQ96mJTAEwGwSUwLwnDcKA_CCMIqCiGzaASIijNCHW-TABYtntCkaSZNkiAwp0LzoyLXiJNU0uLLCcsK-02xSzLcL-PLWC2dSoLa6rsvTPrhswZiKt6wr1Lyj-fI0CrIqO4etsGxI9tuh5HqYmqQjei7PtKiq_tej6Fte9kgayCG0udlHRvZgn4DZsCSfZBWVY1q2qcZ3bfYDqnk4Y4Xs57gu4yp2uC4HpuZee1-MCXn11d7WlmfoOeC5ihXzt7RBXfonBTKpxhw90VABFEfnjeW-gOF4dPjFz1HMnaeoikqWJNdaTpekGUZYkF57jlWWPHeed5anzxI8XBXl4UwFFKqp1lA11clMCFalp-2S1OAbVqq1TGqnPqQCBpDRGqA-q_8JCrRpGaWa81zqCFTgddAR0ICDU-qdbaqB4FXWHDdO6qdoHfSrEQ7IUNQbg1TgjaGyNUaN3cOELA3N7BBFUCMXKABHNEEBcqlDYHQJgwRagWE4RIWQUBSDYF4TAARQiIyiK-JYTEpA6jsKEGgUo6Z-TowkMUWoQphaez5rwVAxRuEsFqGwbS1oBFcmKJYgWkiLHRH5sUWR8isD2Mcc4qANjxGqA8e4DxGMsY4zxugAmiAiYwBJiAMm2B8AGJoHgdR0A5HMyQKzAQQgRCID4PlewGT7r5DJi0BWtlihJAwGk4o1SyJkT2uCNg6hoq8BYMUPAxQADan0ACcABdAA1AAH0GZcDovZRkDNIB0AAXhM2okzFkrImdMgZsz5njNqMUMiABCTZqzai1DwDgUxrSJADM7KMjxtlnnPM6R5YoxRIimOhJEBx9A9R9wzBc2pLyJCcDQVJNi6V2FQUGIkcW6Q_h2R1D8Ko0w3o6xeH9OFvxsgjAqZMJW6KMrQlNrrbFGx6Baxssig4_gjinHOFcW4mwoxCjJVik8PYkxEppQS4ExsXIYo5SsLl_10SYmYviTEwrfSfjlNyXkh5mL-Fdn3d2wq1VKv5BS72CpfZh1gBHFVVojRmktAaW09pHRstJSKd0hqA4ajlTRdAscQwqtte9S63xszMUSRi_M6cJquuzs2WszFGw5xbG2El3qQ3cv7D4Zio4417VLrq7Ic4q5_lsvy3c65xhwwLXXQ8Pru4XivL-VMeaqaASfNC0C700qZorb3Xkt5a20ykhBQNQFy0j3gnyutpF0LFowq2pe9EiIPQoo2tCA6p4zyYstFcIAoV9pKhvfiQkd4IVXYBbd8lFLKVErfPtvB97qF0vpQyZ6XIUvPs5B6T6fLzp3L7LyF8H1iv8oFR-SV8ov1Sg9B-iVv6vzSn2j-OUn4FSKi239pVypYEqiAzqD1AHANGnA99r4IHZWgTh8aFLEHrU2gQh6ZHkEbVQRdPDGlMHYNwR0fBaDCEJv-k9F6D1uN3WLRQ3gP1y20JhpDYGdDYYMfeowpGKM0aY2xrjLA-NCbZmSWwWQuUZAQCZMyfJpT2bFJAOY2ywIaDqAgMCaWiSo7mbSbAAAimiXCR5pYYDRDAOzb50A-HpCpYQ41U6kA-OdRg8DgQCNc8aHw8hrN7S0_AJkHxfpYDYVgEAyTUi8AIKQHAdMP4GbZkUzmPAVPzlELYmm4YolVmvE2DhumWYgFsaIAALGwJCAB2NgDEkJRIAALGAXHgdAjZUBWBgKIHrSEACsbA2uZfcMt9wQA&query=previewwindow%3Dtests%26file%3D%2Fstring%2FkebabCase%2Fvanilla.js\",\n  \"lodash/lang/isMatch\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgWVQBcBjAC2ygHsATVOMgOgCsFkQSr0iZukRs2AARkiRAA5xEg6nQaNOAW2w0qJONgDEeQqTIAddBEXiqAJyJDgQncXJCAvkLBmqioQHJZ9Mh8OHOdDhLKgAjZhgSSwBeK09UD0QhAEYAGk9QxKEAJnSSJOtUJOzHdJokgG00nPSAZgBddJgCpwd_dBgAD1MLOEZFOzIhWNs9AAowiKj06w9M4scASkNBYYA-ISIzAFcYdq6eoj70Kl17EYJBifDIohmMrOSlleFojbBUKDg99EMD8yO_UGADl4DwaMMbJdxpNbvcPCQsoUFq1luhVm9Njsfn9ugDjqcQWCYBCLmcyNcpnc4gikUIikJao5nujXu9Pt99njekC9ABBMxmVAAT0ho3IlLhNJoWSq6VyjPqLIxGy2uy5hz6Az0AAVUBYIJ8BULRWSrrDptLZdklQ40Sqserfh1uYCTuTjSKxdCJRbqbMZSj7WznBycS7NYwYCYiKaoeTJZbZjAkaiXutHT8QKkQHgAEIQdD64VID5fGAOHNoLC4H0UcVMODiSIsNigQI8PiIDhcYJCA63EmQ4CGIRCbXkJJqmCpUdCd2DJJl76z9BjidkUHBElT7GrscLvRb8FLsP78eDT3C3e7c8bvUGo2CkU3mdzw_kK-n8vn6PiWOvqubTOoEfbeAwkJmDAACO2wQFBYweIwlC0D4HhoqBljiGghaQTBcEIUh2AAG4YNAaDoe0PDBIhDYeOkYyLBmI5rv23S3GM4FkIsjBEFQACisGfGMA5RCSaJjqJRBjNhqCFjxfGCdswlcWidqGNmuZwAWRZmCWiDLhWVYYDgDYkWRUBoK2SDtlwnZEPwmHxoMkKJtScBUNsZgkDATGYixY5gOYQicTAlgANYwKKuEeV5PlMQFY5CKsABiwX6iacBCAA7jAQjUFQ4XOMF4j6kQhpQBeejwHOY4QGAIVXoweBXmMsXeTAFSRcK9RMQAZH1QhNS1z7Cm5XVRb1CW1UlUFEF5a7tT5E09VGxEwHpYzERmforfUzXoCQUDbDQ8BbYsElJcBSXJcIaVmPS6CilQRBkBtQh0EQqCbMKzY5XlBVFUFD34Z8ECxkIVANa9eWkcdNWsWOc0LT9zZQ0IS2dd1SrRLjnh-n4iNJQA_M5MI3FEe3pJje2XTdSS7djwx4zT2NzsBc6rAAKmQeAY2QnlQBCJAudGEiisEOxRF5CNI2FKMAFIAMoAPLAowkuFpg9VjX6fl48rasa1sWs621nkdWp7ROX6w7xI86RzFkCr5HEDIlJWH2VNUCoNE0LSOBq-K8ucZO-hT_oPEG6aYtOQc8h-QxmuTVLwvMKTKiGhnx4CG7HkOyfh6nNKIgU9IopnGZx86_wJ4SR7EqSYcUn68Kl27SRMmmrIZtnNeulql6jd6Cat1a3vynUtrBlX2I54PuplRVV4j-aEfwoGQgVDalex3P_eRonK-Fy36_jzku_suW89RjGcYNm58IpgH6k93vTqafmhbFqWYaViAjBxBzXKhtbyNkezcF4A5bsiV9AgG-IoCAcDvwrjnHAuAWtYAAEVtgvT2EgTM544EZSoNlB8vA4DIKEMQ4iVAIA0DgUQkAsE8E6lcJIKhcCgHwA2utOBhhgIgH_qVEg4VUCYBgK2Lg4COxQPAUWRQMB-BcVrOSTSp1mzoFOodCA8BwFcX4AAFkYMkAA7IwbIyRNIAAFQioFCDAKA2AdjcGMEo7s5jkgAFZGCGKEQ4AJDggA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisMatch%2Fvanilla.js\",\n  \"lodash/lang/isSafeInteger\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgZVTBgEl0AXGTGAJ2ygHsATVOACwDoArBZEAYwYUYFJCGzYABG3LkADnEQTGLdh0EBbbEwb842AMR5CxMpWo0AOugga5DGuUnBJxoqWEXJAX0lgaDBqSAOQqrGzB1tYwAB72jnAc6ACuGgBGtJIAvK4E7mZUtAAUAMwAlNYS2QB8kuQ0yTBR6LHx5IkaEOgAaqhQjdm5Jh7mxQByqRk0HACyJGMA-t0AggAyAKoAohXoVVm1YH1wTejRcQ7tHF2QNuQAnoNupp7FZDcQ9zt7B0cnZ22JOD1LqYR55Z6jGhFYIlYJfKT7Py_awgAA0IDwACEuqgaHckIcoMdvOi0FhcOCRoU6E8qRYOHA5DB-NxeKBBMJRIgBEIgZJWszKExBsBrJJJCl0rREHUGjBUWLJJ0en1GjLCccFehxdcuh87urflrxUCaCDDUT5dZvM0OXywuxBjQYABHZIQZ3Qjj0ZjhOHWO1OORoLpO13uz3Bb0ANww0DQ_tOwiB0NpBQswVRkiKZRqzkVAv45CKDrYZQ45AYmzdfSKhaFO3F9aKwdQXXLleryVrpZ23h2aIxcGx6Fx-MQGpgJJAZJwaZedFjNigaFZSHZQkoXJ56D588hg21iImUum--pRXQO3-F0SkqmYOG6eK5UqCNq9UazVat44yt6_QwI--QLkUJ5TLM8xLGsWzwnmk7fucCRXOg7z3MBEIXm8eqfG-8HIkmP7IaaIIYXSxQwom3xIpaKLoliOJ4gSvzThwcjOrIEC0DQ_DrjuW7kGIorapIlggMcnRiRamqKmJcAgrAACKyQMJQUmyo0xqiSAuIBAA7gACriIhwOpYmoNGDAQEwYlaWJbqqTABkBAoZkgOx8C0NGTQgNaKLTnIqD8AA1qg1CskIfEcgJfGjhoMBiKWFJPgug5MDATLoOl6D8FxbIzr67BiAALBwACMADsHAAExlYOAACaSoBkUDYA0FC2Al3JVWVACsHDFSA3jDcNQA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisSafeInteger%2Fvanilla.js\",\n  \"lodash/string/deburr\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKOAXAThAdgcwPQAmMARgK7rp5QD2BAhnABYB0AVgsiAMbVaox8kIPHgAEjVKgAOcRCJr0mzHgFtC1LnDwBiImQoAdLBBVTq6VKOCi95dKIC-osOmorRAcgUNGHo0ZgADzMLOGY4EylYUQBeGxI7AAoPAgBL1gAD0QA3Ug8ASiMRTyJWOhy8_yxiqXQYSQgYdABaCBwscxgjHiw0UTgpGC4IOigAYUY6dDhYgG0PABOPABoPADOVjwA3zcBlQE2AH82AEc2AMc2AHc2ANc3AJUBNgAHNgEHNgCHNgGGTzYBRzaAAEBNoAgQE2gBBATYZTYAQ82ACPNgBjzYAU82gEBATaAYEBNoBQQE2AHHNoAwQE2gAhATaAKEBNoAYQE2AHPNoBwQE2gEhATaAaEBNoBYQE2AAXNoA4QE2gARATYAB82gHhATaAREBNgAJzYASc2ACnNgBpzaAJEBNoAUQE2gDRATaADEBNoAsQE2AAvNqlNgArzYAa82gGRATaAVEBNoB0QE2gExATaAbEBNoAcQE2gDxATaAAkBNoAiQE2gFxATaAfEBNoBCQE2gGJATaAEkBNoAyQE2gFJATaAckBNgAZzYAWc2ADnNgB5zaACkBNoAqQE2gBpATaAOkBNoAGQE2ABvNgBbzYAO82AHvNoBKQE2gGpATaAWkBNoB6QE2gEZATaAFkBNoBWQE2gDZATaAdkBNoAOQE2gE5ATaAbkBNoBeQE2gH5ATaAQUBNgAZTZAC5ATZAB5ATZAD5ATZAAFATZACFATYAEXNkAYUBNkAUUBNkAcUBNkAKUBNgAR82QARQE2QAxQE2QAJQE2QBpQE2AAlzYAGXNgAFc2ABVzZABlATZADlATZAAVATYAA3NgAJ82ABnzYABfNgAV82QBZQE2QBFQE2AAPzZABVATZADVATZAA1ATZAFVATZAHVATZAE1ATZAC1ATZAB1ATZAD1ATZAANATZAG1ATZAF1ATZAH1ATZAENATZAH9ATZACNATZABNATZADNATZAGNATZAFNATZAHNATYAE3NgALc2ABtzZAAtATZACtATZABtATZADtATZAAdATZACdATYAE_NgAL82ABvzZAEtATZAGtATZAFtATZAHtATZAEdATZAGdATYAF3NkAD0BNkAN0BNgAX82AB_zZAHdATZABdATZAFdATZAE9ATZAG9ATZAF9ATZAC9ATZAB9ATZAD9ATYAD3NgAP_OTYAH3NkAJkBNkAZkAPAAXQCYJzFQMJVCiIJYn6QZhlGCYpjCFQ6CkRJbAoQpqjEeY6E2OgYE2agaep1Y8lWABBTYmfpjwAFVNgAeR59mWeZ1mhcFkWPAFsXhY8CnVmlqXKflmWFbl1Yxk2VWVbVzXVi4TYde13WDdWAARTYTeNzYCAtq3VgAUU2O3bftp3HZdjwHbdzZ2a9z2fdWb2_d9jwAHFNhD1Yw-DzYcCjmPVmj1YAAlNiT1ZfFTzYAElM-z1Ys9znOPDzwuC4gTZS9WcuPEr6uy9rivNgAKU2VhNgAaU2ABrTuAJ71ZAL73uPH7rxNigUfx9WMfVgAOU2WeZ7nxfViwTYV-X1eN9WXmt553ed_3jxt8PmmT9WWmz9Pjxz6vzYACU74f1Z0E2Z-n82ABlD-v9WT_VjgTZ_5_wAcA1YAAVTY4CwGbFQNA2BqwubwM2AgzmSDUGIPQSghmmxGYeBwXg7BBCsFEI8AATU2GQ1YFCPAAE9Ni0NWPQjwAB1TYAB3TYAAtTh3DVgAC9Nj8L4RAtOHhUAiLZgAwBhcm4VxbrDLAIBlggAgHAAAQtgKY1CkBgFGHAGADglFoEwLgQgCQKCmP0OgcIGM2AcFAD0fgghEDcF4H0IIGN-AEDRsAIwoh-iRFgIgEoMAygVBWL40QIhaj1FQI0FobQOh1AicjWAgQgnk0puza-1B2Y4PFhIjBR9ub80lvk0p5TRayyqUrapis6keHVg0rWTSNb6zaR4PWHTDYeDNj0021sUgDPdsM52HtXYjNdv7DwUyZmB3ZhHBZodY4eHjis5ZKcPAbJESIouuyC57Pzoc4u9cTlVzrmc05NdTkyI8C3VY7dVhd0eYPYeryXkTxHpPD5U8PDz1-Uvf5C917Ao8GvUFm9j4HyKXvSFsKj7ZMvgii-yKPD31WGi1FL8sVvx_t_Dwv98UgI8FIklRLIEeHJeSmBqxqWiLQZghlyCmX0uZcQ_BbLCG4M5TgqhvK6H8oYZsFhqx2GrC4WKnhHhBFSoEcI6B4j2ZwCkRnG5EA5HLCMA4KoPQ-jeCYGjOoABHUgEA6jJGYFQWgPgCjdFcZYKIdBsAGpgMa01MBzV4GyHQYwUAoAUxJkYfgaBkhE1fqIRI-RYgAD4rARPcUMVAiQ9WMHyMwVA1AbbGtGIkeNXBPEkz8bmxNDrsCpvTZm0g2bk0kwcCTRRyi1EaPQFoxAOioB6IMSAIx2B8Chs9d66AfrbFIHsbwRxqAhA6ssKGtGRjo39AwMwRJeMoAQF4e635AAxE2qa6gOq4O6vABgDBSGAEbEYXBMCxK4A4PAOBSDLE8DarAcMQiI3CAEmAaNQ0hvSFkXIz7igpBCeUADVRijvwwD27Qy7Rhrq_bwKA1D-ikCkG-mY5Q4CkGIHoyw1AwCiDEV-gA-swGdPRshNAiK45gRQxCbvMKIFQnRRDYDAOYPGsTeDiDoJR0Q5QaDUA7vxywRGbAaFICoAQqA6BcawKIbjABZI209EB0fEJIGQchTGUZoIMKxzHeGDroMwcwvaNBaCYSQPADdeN0HfpeiAUhUB4FvjAMATQBAHrwEHGgxBRjEe5sQVgCatCQeMfgWDq7110fUyQ6gpAmNtAkKIYgX7IBYC_awiAYjCOMAQ6QPDBGxPEGoIEFDaGEapcK3llRrHTCwCk3wWTEBeDqd0dQUQPBKPTH4wQAgPb-OiHQN6nACGCNBAwOULgkwRt5qo7R0m6mjYZ3fmMf8TMM6KZtrfIJYnV19GiXovgMAvEqGS5YDolg0tdbcNE_LvQICUYAITartV12bin8beIiVfamQSPD7A1fJzwVMPAA42MDvxYt_ueAuFDzwxTweeEeAjvpAOBQAB8jaY4lGjy2APJSY4IJjxUaOk4A5LGj3wAOqxo6zgD0caPS4A4PGjruAP7xo8AgDz8mO_xo7HgD6CmOEJo9ngD_CaOV4A7omj3mAOxJo9pgD7SaP_4A4imj8BAPEpo5gQDrK2uaeeF-vrk3HgAbq4154EG9Om4A_BszluAOobA61S-rAU7hswGY5Rm2gQpvY163EOdMQo0RKCyFvNzBpOYHgIkGbUwvtSF3ad0gB7EiJCMY-2YUWVGncfQMIYIxxizehpG8PsaQd-K9fYOoaNMusNEG5nAAeCbF8xmXqYj61kFr8T71A5B5NGOYHuv1me6iPvz3ogg_eDELvQAGr373JsCCIAQI2Zj7Ch4wPOuofuYAB6D7NuAhNt_Z4wPkZfNQ6gNCaK0donRbW9EsJ30vweZgxHmEsVYkPth7CHB_CrDw4eDXCrB3CrCo4eAvCrDvCrBfCrC_CrCnCrCAirAgirDgirBQirAwirDwirBIirCoirAYirDYirB4irCEirAkirDkirBUirC0irAMirDMirBsirCcirA8irD8irBCirCiirB44eDSirByirBk4eAqirDqirBairC6irAGirDGirBmirCWirA2irD2irCOirAuirDuirBeirC-irABirDBirBhirCRirAxirDxirBJirCpirAZirDZirB5irCFirBU4eDlirB04eC1irANirDNirBtirCdirA9irD9irBDirBM4eATirDTirBzirCLirArirDrirBbirC7irBs4eDHirBnirCXirA3irBc4eBPirCvirAfirDfirAC5DzARgSQQwTwRISoQYTYR4SEQkTkRUS0QMTMRsScQ8T8RCSiQSTSRySKQqTqRaS6QGTGRmSWQ2T2ROSuQeTeR-SBQhThRRSxQJTJRpSZQ5T5RFSlQVTVR1SNQtTtRdS9QDTDRjSTQzTzRLSrQbTbR7SHQnTnRXS3QPTPRvSfQ_T_SAyrB24eBO4eBQzyLuIIxIx3apKzoYwf6n7MB4wExr5YAb5b6WIkzFAZIyxZJ0ycr5LszIJFIlKixlK8kVISz1K1LKwinCmyyNISnNKNKdIyndKdK9IKkDKWyrDKljJqkTLqmjIamzIBy6nTJzKByLLhxLJxzLKrKrIbJbKbA7L7K2lHIHLHIXJOlXLOnnIuk3J3IeAPIeBPI-nvIDwBlDGBk_IhnfIAp_IRkApgrRkQpgrQpQowrxmwpIo3woopnXwYqZnYoeCvw5l4oEoFlEqkpAIlkUoQLlk0pwJ0oYKsqMosr1kcqNlcpNnsqkLkLtmCqdk0JCpsKSrioeD9nSpDlyo0oKqSKZyqpyJGD1oqLqJYCaLaK6L6JKLMDRL34UBcAjouInZOIgA-Ig4GBdq-4QCHlBJtp6II6HkRC4CwAACKpA1A_Ap5hG6ApAMAl5IAUwrgrCAAClMAIHAM-YebxtQBAAQIeR-cao-TAD-a4DIEBSAEdk0JRoeZqtOZ2lIHQFwB3HQGNrYrwFuQ4tJlufOVJkIMmhYnYPWkQIMLSV5o0HYiAMmkIAACzMAACMAA7MwAAEzsX1oAAC_maWUAeAr5fAJgMAQg3F7FAArMwCxSAA4MpcpUAA&query=previewwindow%3Dtests%26file%3D%2Fstring%2Fdeburr%2Fvanilla.js\",\n  \"lodash/number/random\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKAdgVwLYCMYCcD0uAhigCYD2G-U5pRcAFgHQBWCyIAxuSgC4x8kIfPgAEDXrwAOcRCJp1GTblQqc4-AMTEylADooIGKeVy9RwUTooZRAX1FhclUQHIF9Bq4MGYADxMzOCYIPhgAczwABgBWUQBeKxIbAAoogBpRGIBKAxEEgD5RElFQ_kjcURxeAHcYAVEo4rIsnxR_QN5gsoi8OMTrShScvLF4oqIoOHJm0rCKqpha-pRG5tJWlF8A0y6mMBoiXlDw_qTdDGHM3lw0GFyUfPHix0PjlHCAWhMy0XRsPCLZYNJrJTbbTrBA7kI4nBLnVIARiYACZMjFUQ8nhNXjD3l8fnw_pgcJVqnUGsiUessqi2h1dt15oCBskhlixkUmqZRIj6Tsgkx2uFYQA3GDwwaXT6IjmFUQy0Q8qIGEDpEAQOAAIVCRFwAE8kGBJnAYHZ1f9SYQ2VQpUw4FIYJxWOxQNwwoJEFweHBzB5GJKYABHNAQXAwFKuJjUWieVwPd2-0RSKBEUKBkNhiNR_CikjQVPxtr8X2RqVpdHZVyZFLZeXAAyiUQdJ28FL-5g9CqxbJMXjkLUwADi4aOeAAKgwSAB5XAAURDkzSDybLc4bZTaZQIWZuB7fYHw9H_Fwk5n88XUGXjebAVb7djSi70RyB8HABl4HAzyhZwu0EuIyrLejrrikm6hDu5Qvr2_Yfl-P5_pewwriB94ANoZLymRoqIADMmQACzogAurB5AAMI8LwW4Poona7j2N5rm2mGZIiOGZARojEVkZEHlRfC0RB27PnuQF2A8Bglm2rjljk1aiLW9bMXeYEdlBvS4K-cFHjAY6nlOv4XgBV5RKhLHgamkFiTph4jvpJ6ISZS7mapoFthptnkfBcDfkZSGmSh7n3iJmkVHZvn-ee_6ARZamsVhHGiLh3G8TE_H9oJNGhHRnjhX08UeSkbHYSlXFEaR5HZcJ1mibuElSWEpZyTaVyiDcdxVjWdbPA2wGWRp0Kwh8kV6QZzmxWZRWhXV-xvCcY0ORNAUudNIXqY-zDDfiY2fn5k3IUBq4JVZW7zXii0-TA-3RcZU3BQNp2lclqWVXxvYoOQvACdRtFDQto0zWBL2cfh70ZZ932_UJuVhTtV0GJJxbwLJ5ZUuimKKcpfUbZ5W0XSN4TXctTmrQ9VLAxuc0Ix8JPHhO5PIZTeN5UotPE2-N0IUzQUYiiVNnZBHPXbdh185irOg-V4M8VVQrQ1lf25QDl101LSVg2l8tfT9SuwygQvbiLSNNTJZZtd1Sm9UU_UncVL2ZZRyuG15u6C471Uu0bBW4A8yNbM1aNtTKVs47brMacKYr3FzYu865gthdHxziqLPMxchblPQ7WEyk7NUqwTKcQGnGuZPnXsGz7JdlygAdqhq2q6gaRommaFokng1oXLm-ZQKmLpIG61ECLwQiJuYUrwg-dSVIkWFoFIjq4JkIsqcBEBgEpvD6o65Db0vK8JPEiSuFg5DkLAJDxhYN5Nhz8JH3gN52G0TZb0pmoAHJEN_KTPz9nWO2TZRCAPhDQOeogAA8awAD8axEC8lfu_Uo28Ui733tvR-p8z5oDIDASA7RSC3xAQ_QG4R4QAEJv5d1wCEOAABJXcs88B1gAD7sNEDQuhDDmHQVwAA5ebCUGBybJPBElBaEAnnqIAAskcZg5Y6wAColLgM-KISBbDRAAGotHkDnjecMvA0C4FWI_BBUppGklEEghRvAlHkHwaQFI1i6H-35JCX2sRJRtSwkBbEswxJAgpKsUELQYheMZL7M48k5TPBNDMEoITyQrDWGCKJgcGSCg5nEtqMRri3HuKMeURBcRE2-OQX4lpARpJBDSLJEIYk4MkZcDGtIBalMSRU_EVSal0NCekqkjS6TZIFHsEJrILi1m6VyJUlQ-TjO8bXCU0zUihzmQqRECzGiqnVJqHUKA9SGkQMaKYHcQBMCkCY44eBcCcGHt6D048vQgL0CAU0GAIAfKQec006QbwfLgCcWAABFNA30YC_I6sUwFwEPl6mcDUAACnqAQcAYWItFNU0gHz4VNg-SGKFKLnAyCxSAG58A8Dig-UjVU5pKVEE4AAayIJEF0PAnnun4J6VARAMAwCEB2HuNhG6kBgI6AhKBOAQHgE8jsQhCJMERAAdlRIiRuAABLARAcBQEIPg44gqhDqsRBiQiIA7DWutUAA&query=previewwindow%3Dtests%26file%3D%2Fnumber%2Frandom%2Fvanilla.js\",\n  \"date-fns/01-interval/eachDayOfInterval\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKADARgLQQHYBcYBOAbgIZQD0MJAxgBYAiJAngPJgCSehpFAJifgxhscAHQArBMhDUA9lzxIQ5cgAJauXAAc4iFf0HCxsggHNyRAMyiArKJTles6nEo0GzNp3zEyAHWwIAFstE1xVYFUqOkZWDi5fKFUAX1UwAlkg1QByAxghEWyAgJgAD1CCXDFeGDASAFcocIBeKPdYrwSeAApgANVVOFwSSsRVbBgAd1VGfG6AJnQAFgAaVQBONYA2AEoV_qjsXjGJ6dmYBeW1zdU0FD2A5J2AlWaAPlUAbRe1AYBZeSqFjUcIoLaqRZoJaqFAoRCw-EofbYFQDVQAFXqMCBIJhAHYIcsYXCEbDkaiBgB1GC8HGggAchKhxMRiPJvwxtHqdJh6yZ0NJJKRPzRADECBAeXd-SzBSKALrFCblMJiIYwLRaGmqVrRDxxbzcMjdA59bBowbDUbjKYzAQXSGrDbbB7mtEwI4nW3nS5Q65rO6ugbJZEDSLqrRjSwpALPbA_d5fEVU7XA0Hgx2yoXstEA81p3kywVshUBEArEAQOAAIRwIyYSDqUDgMBDIHQWC6ZDcMU88R8PB7-s6A7IojgWuoEikoDkClwSjnQyi5RgIO1rTNA1ytQaTWyY2-boGpztc0d_tUu1EuFkAGVcBLsKZukG0aefRfnao8Tsb_fHxwF83xPb17V9J0bnpP9bwfJ9gNDd8wPPK5v3WGCAPg19ENAs5wK_G5A3_OCgOwg55UQ7IIy1XgDy-D98NQm5r1gwDn2wm08JQv00Iwkj2J2CjHiVJdwjyIwdVUAgYAAR3qCBpO6bJREce0CjgbI41E1QtCgEgcEk6S5IUi5lIsEhAigPTNKVfAhiUvUOn7I0oGyNZXx1D4txXSdcF6A4BhqOpGlwMZxJEUQgr3XBRCCEgtG6EhPNUEhiLY4CQMtDUaLC-0jHHfBNRpWL4sS5LUtYrCdjfJ5_wAUTk40yl8mk4wGZq1z87zAt3EKxl0_TsEi3qmhKhKksTCrMNI6qcKyorjh0vScAK7Liri8byrSqqaowhr6ia1d114OMnjLCsq1rbB60bMgWzbDscFHChHL7Q1EnMyy9OnJBZ3kfBFEQGR5GXV6DS7JJWl6S0RlwNYPVpEMInmlJJPDQqxjQFIdmS7ztOk3AAEECAISTPkVN0hlh8cYFwAAJWR6gIOBuiRGE1jZ-4DgRmn6cZ5nWY5oWYTjA4nAiAKpNp4mCFELR6jgWhugYuYqcqURTFp9Fgguaq2rRNWYpbXAfUNjXaZ9HGAGp5v11JJloaBsW6M3NdwbWgl11QAB5dSOc33Z119RbdAmmfNAmZeE-NlQqKphuCppJLBkcXP8ymrVCzizwdJiXUQhGvS43OeMI-5kTOmPXg-I8KVUPMeTBIshRLFEOUxbECxQAlM2LMlk1UalaS7xle5b_u27RdEuUbvkx9ZCe6_FSUC2lee5UnimShVSo1UKmjk_aN6IZNN1uph60VZLyD88lwvs8_PPbnLg4Q1NeaoxjbA42rpNJ5TYeuIm7r2zAPBuI9m4L2FJvc6lYax1gIA2RATZ7oVjlgTXAEBCAEGoL9YG84lDeT8CAFsQQIDELGCgmAiFiFwCArAAAivUWQ-AKGqEfFiGhIARgZEmAABRGB6OAbDiEkCILICAvBiFcLkiwmAfCMg6BESALQ0kWzEBgMQ6OIA2xaBoAAaxIJrac8g8FzgBguaQ11PZKDyOpIcTl3o8HLCAGoWojgemoFgmcri1JGCUNYOwKAXEAAEABGJAwkwAoAQeoeAdZKDxKINAdglg6OSBk5IQA&query=previewwindow%3Dtests%26file%3D%2F01-interval%2FeachDayOfInterval%2Fvanilla.js\",\n  \"lodash/lang/isEmpty\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQTgUQFsAHAFwE9soB7AE1TgAsA6AKwWRAGNr1SY-SENmwACRqVLE4iETXpNmPQtlrUucbAGI8RMuQA66CCWoAnUqOCjdJCqIC-osGeqFRAcnkNGHo0ZgAD2JzUjhmdABXKChRAF4bAjtyAAoomIBKIxF4gD5RUjNImH90IJCLcIAjampYDHjEvQoUwuKs9By4_LaS9ADg0PCowiqYM0bbfRSARg6unqK-gYqw5jhCiCxJpOmPdGpLGGSPebFu51QoOGWywcr1mEsEqZaygHdRAGUnlIBtGYAGlEACZgQBmAC6GTOeQKS1K5SGzEIqGIO2aqQ-ogAsmj_n8PKgPMCZpDobCLmArjdEfc1qgzGZUOQMcl_kDQRDodlzvlqddbkiHtQqqwYFxnk12dYiR5EKIZo5KfyaUL6eFjvoAIJMlls6Z_HmdPnw4p01aa5JfTbbF67FoeU68uG9C3IrUUH5S15YmCfb0pGEui5u_p3S3MT3kPHo-2YtL-3H44Mm10I9AgQEgPAAIS2jPISAFNwc2bQWFwDsovvWxAlbA4oB4fAEpCELY2onKEv4tEawCMolEjOZ5AVJZggKH3eSurHCt60_Qw-jscXS2Xq-tTw3xS3s_0NrMW0we6nM9RxAnaoP6Sg57vkVG40fM9F4slN8FB5qdRgGBviuog3KQ343AeGwnlg4EXugDilJ2ljeEwjRmDAACOkQQOhKQeMwVB0D4zroEhojEGgWxoZh2G4fh2AAG4YNAaAkUY_AbHhvokqIQZwoOwE9pKKQoYwGTMKQ1D4FhVwpEJfYdKuwS9ikFGoFs4mSdJkSyaJHQOB0WY5nA-boIWxZqmWIAVjgvqMcxMSoI2SDNrw_CCIg3C8F2vqNB-eQzgAhAA8mKvZRnwJ7wCk_kAD6xVYBnMLAWCkIwogAGQZaIgUfgA_MlAiYGlmXZblYoFXAEAAF7qpG94Gm80RQCqZp1cif71Cu8bsr0rVhisyIjGMEw9dMcwhos5rhsKaxQaejWpPshyHhQJELJcgrug8oGLYmAa_ACwJgqIUKphtk7bWsV57disYEnKpLkudpqXTNGrMKO-pjS0R1cqdxoXWqV3hB-vZ7bKxIKkqBmTZttLvZG0bzt90qGoDpoDRGHrWramB7U6_UZoNDzRt6t1JoGL3ptNJNrGuaIU5893U6GGZGXmBZmEWiCTlZzDEOhkgQOMZhcC5Xmth5IACcOBggDchAQPLsEHvLVVYLAACKkSHCUSBtWrICjtQ7wAAqMgIcAq6I8uoAx1AQLQ8tG1hetm640g2_LgvwOMDH60YCGZlZxCoFwADWqCYDAja8BLLbue2nBmYQMBCKJVaYkZtAwPW6C56RItNtZRFMEIAAszAzAA7MwIIzEZAACVSoGMUDYEUfAmOnnl1zMACszAVyADhj2PQA&query=previewwindow%3Dtests%26file%3D%2Flang%2FisEmpty%2Fvanilla.js\",\n  \"lodash/string/words\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKOAXAThAdgcwPQDuA9ugCZx5RGkCGcAFgHQBWCyIAxkVqjD0iDx4ABPVSoADnERCqtBoy4BbPKSIcKAYmJk4AHSwQlEkqmHBhO8sIC-wsOiJLhAcjl16LgwZgAPE-iocIx8AK5KMOg0qBDcwgC8liTkABQuDjCkADTCAEY06FgwAJ45AGTCEjC5ubBwLgCUBkIJAHzCANrp6JkuOS75hSV9rlU1dS4AugYgWSAQcABC2AXFSGA0UHAwNnNomLiEyRRWwXBVHCxsoFw8fKgCt2jCfhe8pAnmBsIvWOGR0ViWEQnW6vX6gyKxRGLjGtXgUyyBhs3iwTzM7gYnx6AEdQhAemlGJRqB5GgZ0ZUoDRsNiYHiCTAiXgAG40QxQankrAGXhoNKnEYpBptL5YH6vGAcVApTH0BqMVBEACieM2KUl0syTXFL38UplEmp2AVStVoXVcp1Nh1s3mSxW6DWiA2Wx2eww2Hwp1Z7Og1KuSBu3F4_EQnG4z1On32ouA32ElO2OAid3QnyKBGEAEkeFBGABlGAp-6RNJ8EYWHBRP7UzCoYoglxWFy2HU_HqoUKFYQAQXQUWKjAcThSydTvHQjHH9zHGAa7Z-wmH0EnKRSFgWAHVkgAZCAAaxgbdF273h5gi5-jCUNAk64sM54J_i7SfqGtqNepmCYQiURiOJElONIMmyPICihcpKmqeF6h1FpX1BMCYUhYZ-jhCZpiwO0FmWLBVnWTZtl2EBGAkTsYkidAOCDCM7jDEB411PQQG2JQIFYkFXW2JEWLYr1YAARVCIheC44QMFCGA-J-ViCkcAgAAUCj4fQkGEeSWSICBSFY2TNJAPExJgJTHCkCTWIo-BIhZGBWORGZSIkGgOAPGgcBgK5uDo25QwedgCIiAQ5SOXQ7VIGAqiwSK0QgeA6LlAQABZGAARgAdkYAAmNK7QAAXyXIYCgPB0FCHgjBgAQsrSgBWRhkpAGwWpaoA&query=previewwindow%3Dtests%26file%3D%2Fstring%2Fwords%2Fvanilla.js\",\n  \"lodash/lang/cloneDeep\": \"https://codesandbox.io/api/v1/sandboxes/define?parameters=N4IgZglgNgpgziAXKKBDAdgcwPQGMoD26MAIjDAA7YBW8ALgHSQAeD1CyIuRdM6dSENgBUAAghw6GAEYBXKOMzoCAJxijIsUcOwAddBAC2FVXVEApAMokA8gFkAougBuEFUUN8zYd4dEByWkkAWj5Xd3RPfmD2ABMCQ399fWxsUQALOjoKOERUzAg6dNlpBm5DbDBUXBhpAgIAaxp6bGlCaWxnACYATgYAFgYAZmwAd1q4QphOmBVJohhYgH143DgZuYgiYN6B7ABhIkhMWRVUOi30BkNYgGJeSTC3Dy9gyRUILH0YZhMVM1iMCq8jM-FQcDgogAYhBmFZbI4XM9Il5RD9eOhYpD4fYnOEXvxRMB9KJRNx0O9ZLg6KoABQMBmoFSYOAASiJJNJojgsgos3pjOZbOS6C5olS0IAkgANRwZLI5PLYApFEplBI0ODxCpxDUSHnwbBDIYANiGnNJRQkDEw7VQUAYlOpp0W-0IxFEAF5uXQVFS6C7Ym6FpyAL76cPoEAAGhAEgAQp8mQBPJBVKBwGCh2NoLB4d2kchUQixcHpNgcUDkjECRBCNKZbK5VIlsvqiqrda3fALMiUfRGP5mYBkgt9iiiUMaXwBVtwdJJdD6ZxM0QEaS0amQ70AbRH_lQ_kQogAjJPo0SAtIj6IupOALoilcqUSAyhe0e9ou09ebujCpdIgIWJ5BgBgfiHbdXyLHcAAZ7y9T1vV_GAtzgx90AlT0AD4NHtTN9BjOM4ETdAUzTfCsxzDAcB7Yhx3zL9KEdPlcArJAqx4LxBBEYQSTEAABII6FCJEIiiMwGGwOAVFwPAuP4bA53SJSaMY-ii2aSQmFhCt-L0QDyUkNFflQ3hYg_dMCMMohjOUj81AAR1kNwYFpfwpOU_xWX0IyzAoNBPgcmBnNc9ypJXAwoDQbyRQeOh3LowtKH8C9aXZHCOVFEzWIS5TWQYGkHGc-1aQgszFh87LyupWkAtQT4CqKkqoFpfKIyqoiEyTFRU0QKyqJAXNaLHTTIugNB2M4atuLrPzPw099kI3MyvVwp0AzUIMCx_FbqSq5dVxQrcPz3AJD2PM9s0vfxr2PO9Qwww6XzfCdvSS8ddr_AD9EMYDQPA35TCg170MQ5bvvQlI0kygbCNjbqyN6iiM0GhgKDULIIFmWSOK4BTaxAYlst0EBM0MCBSePAbo05UnJiwWAAEVZAIXgqdEX1ZBgWmSZAJl3FGAAFJk-DgDnSdQZwCAgWJSd50lSectmYCF9wcglkAMfgWZnBgUmI0I7MteqBpUEwMD2CIPGZv4PGyM8QRlPU5KKCIwE-UxPhcGxyshuAstBEGE8AHYGC6E8iIE6RUGkGAoGwP1-CMGBBDDk8AFYBhAUNc9zoA&query=previewwindow%3Dtests%26file%3D%2Flang%2FcloneDeep%2Fvanilla.js\"\n}\n"
  },
  {
    "path": "src/code-sandbox.json",
    "content": "{\n  \"date-fns/01-timestamp/fromUnixTime\": \"https://codesandbox.io/s/idfxz?previewwindow=tests&file=/01-timestamp/fromUnixTime/vanilla.js\",\n  \"date-fns/01-timestamp/getTime\": \"https://codesandbox.io/s/wr80k?previewwindow=tests&file=/01-timestamp/getTime/vanilla.js\",\n  \"date-fns/01-timestamp/getUnixTime\": \"https://codesandbox.io/s/0puzc?previewwindow=tests&file=/01-timestamp/getUnixTime/vanilla.js\",\n  \"date-fns/02-millisecond/addMilliseconds\": \"https://codesandbox.io/s/pc88o?previewwindow=tests&file=/02-millisecond/addMilliseconds/vanilla.js\",\n  \"date-fns/02-millisecond/differenceInMilliseconds\": \"https://codesandbox.io/s/xpemb?previewwindow=tests&file=/02-millisecond/differenceInMilliseconds/vanilla.js\",\n  \"date-fns/02-millisecond/getMilliseconds\": \"https://codesandbox.io/s/b75h6?previewwindow=tests&file=/02-millisecond/getMilliseconds/vanilla.js\",\n  \"date-fns/02-millisecond/setMilliseconds\": \"https://codesandbox.io/s/r246r?previewwindow=tests&file=/02-millisecond/setMilliseconds/vanilla.js\",\n  \"date-fns/02-millisecond/subMilliseconds\": \"https://codesandbox.io/s/1c6bd?previewwindow=tests&file=/02-millisecond/subMilliseconds/vanilla.js\",\n  \"date-fns/02-second/addSeconds\": \"https://codesandbox.io/s/h5b08?previewwindow=tests&file=/02-second/addSeconds/vanilla.js\",\n  \"date-fns/02-second/differenceInSeconds\": \"https://codesandbox.io/s/vs9f5?previewwindow=tests&file=/02-second/differenceInSeconds/vanilla.js\",\n  \"date-fns/02-second/endOfSecond\": \"https://codesandbox.io/s/zx4gn?previewwindow=tests&file=/02-second/endOfSecond/vanilla.js\",\n  \"date-fns/02-second/getSeconds\": \"https://codesandbox.io/s/5ufjt?previewwindow=tests&file=/02-second/getSeconds/vanilla.js\",\n  \"date-fns/02-second/isSameSecond\": \"https://codesandbox.io/s/y2tpl?previewwindow=tests&file=/02-second/isSameSecond/vanilla.js\",\n  \"date-fns/02-second/isThisSecond\": \"https://codesandbox.io/s/7kugy?previewwindow=tests&file=/02-second/isThisSecond/vanilla.js\",\n  \"date-fns/02-second/setSeconds\": \"https://codesandbox.io/s/m7ve5?previewwindow=tests&file=/02-second/setSeconds/vanilla.js\",\n  \"date-fns/02-second/startOfSecond\": \"https://codesandbox.io/s/ej315?previewwindow=tests&file=/02-second/startOfSecond/vanilla.js\",\n  \"date-fns/02-second/subSeconds\": \"https://codesandbox.io/s/686cw?previewwindow=tests&file=/02-second/subSeconds/vanilla.js\",\n  \"date-fns/03-minute/addMinutes\": \"https://codesandbox.io/s/uk8kq?previewwindow=tests&file=/03-minute/addMinutes/vanilla.js\",\n  \"date-fns/03-minute/differenceInMinutes\": \"https://codesandbox.io/s/kvzz8?previewwindow=tests&file=/03-minute/differenceInMinutes/vanilla.js\",\n  \"date-fns/03-minute/endOfMinute\": \"https://codesandbox.io/s/9j0nx?previewwindow=tests&file=/03-minute/endOfMinute/vanilla.js\",\n  \"date-fns/03-minute/getMinutes\": \"https://codesandbox.io/s/usb6b?previewwindow=tests&file=/03-minute/getMinutes/vanilla.js\",\n  \"date-fns/03-minute/isSameMinute\": \"https://codesandbox.io/s/fj526?previewwindow=tests&file=/03-minute/isSameMinute/vanilla.js\",\n  \"date-fns/03-minute/isThisMinute\": \"https://codesandbox.io/s/o9dlg?previewwindow=tests&file=/03-minute/isThisMinute/vanilla.js\",\n  \"date-fns/03-minute/roundToNearestMinutes\": \"https://codesandbox.io/s/btysq?previewwindow=tests&file=/03-minute/roundToNearestMinutes/vanilla.js\",\n  \"date-fns/03-minute/setMinutes\": \"https://codesandbox.io/s/guv8i?previewwindow=tests&file=/03-minute/setMinutes/vanilla.js\",\n  \"date-fns/03-minute/startOfMinute\": \"https://codesandbox.io/s/bg09b?previewwindow=tests&file=/03-minute/startOfMinute/vanilla.js\",\n  \"date-fns/03-minute/subMinutes\": \"https://codesandbox.io/s/gcp35?previewwindow=tests&file=/03-minute/subMinutes/vanilla.js\",\n  \"date-fns/04-hour/addHours\": \"https://codesandbox.io/s/eohcn?previewwindow=tests&file=/04-hour/addHours/vanilla.js\",\n  \"date-fns/04-hour/differenceInHours\": \"https://codesandbox.io/s/3q5ix?previewwindow=tests&file=/04-hour/differenceInHours/vanilla.js\",\n  \"date-fns/04-hour/endOfHour\": \"https://codesandbox.io/s/wll4f?previewwindow=tests&file=/04-hour/endOfHour/vanilla.js\",\n  \"date-fns/04-hour/getHours\": \"https://codesandbox.io/s/lfzlv?previewwindow=tests&file=/04-hour/getHours/vanilla.js\",\n  \"date-fns/04-hour/isSameHour\": \"https://codesandbox.io/s/7te9e?previewwindow=tests&file=/04-hour/isSameHour/vanilla.js\",\n  \"date-fns/04-hour/isThisHour\": \"https://codesandbox.io/s/i01d6?previewwindow=tests&file=/04-hour/isThisHour/vanilla.js\",\n  \"date-fns/04-hour/setHours\": \"https://codesandbox.io/s/hfjlr?previewwindow=tests&file=/04-hour/setHours/vanilla.js\",\n  \"date-fns/04-hour/startOfHour\": \"https://codesandbox.io/s/hqe5j?previewwindow=tests&file=/04-hour/startOfHour/vanilla.js\",\n  \"date-fns/04-hour/subHours\": \"https://codesandbox.io/s/kqsl4?previewwindow=tests&file=/04-hour/subHours/vanilla.js\",\n  \"date-fns/05-day/addDays\": \"https://codesandbox.io/s/upiiy?previewwindow=tests&file=/05-day/addDays/vanilla.js\",\n  \"date-fns/05-day/differenceInDays\": \"https://codesandbox.io/s/171z6?previewwindow=tests&file=/05-day/differenceInDays/vanilla.js\",\n  \"date-fns/05-day/getDate\": \"https://codesandbox.io/s/5wcf2?previewwindow=tests&file=/05-day/getDate/vanilla.js\",\n  \"date-fns/05-day/getDayOfYear\": \"https://codesandbox.io/s/q7m18?previewwindow=tests&file=/05-day/getDayOfYear/vanilla.js\",\n  \"date-fns/05-day/isSameDay\": \"https://codesandbox.io/s/j3kw9?previewwindow=tests&file=/05-day/isSameDay/vanilla.js\",\n  \"date-fns/05-day/isToday\": \"https://codesandbox.io/s/pc91e?previewwindow=tests&file=/05-day/isToday/vanilla.js\",\n  \"date-fns/05-day/isTomorrow\": \"https://codesandbox.io/s/qv3d9?previewwindow=tests&file=/05-day/isTomorrow/vanilla.js\",\n  \"date-fns/05-day/isYesterday\": \"https://codesandbox.io/s/odmsp?previewwindow=tests&file=/05-day/isYesterday/vanilla.js\",\n  \"date-fns/05-day/setDate\": \"https://codesandbox.io/s/wpri3?previewwindow=tests&file=/05-day/setDate/vanilla.js\",\n  \"date-fns/05-day/subDays\": \"https://codesandbox.io/s/1kt9x?previewwindow=tests&file=/05-day/subDays/vanilla.js\",\n  \"date-fns/06-weekday/getDay\": \"https://codesandbox.io/s/3hyqf?previewwindow=tests&file=/06-weekday/getDay/vanilla.js\",\n  \"date-fns/06-weekday/getISODay\": \"https://codesandbox.io/s/428l0?previewwindow=tests&file=/06-weekday/getISODay/vanilla.js\",\n  \"date-fns/06-weekday/isFriday\": \"https://codesandbox.io/s/gds8f?previewwindow=tests&file=/06-weekday/isFriday/vanilla.js\",\n  \"date-fns/06-weekday/isMonday\": \"https://codesandbox.io/s/94h6n?previewwindow=tests&file=/06-weekday/isMonday/vanilla.js\",\n  \"date-fns/06-weekday/isSaturday\": \"https://codesandbox.io/s/k7n2p?previewwindow=tests&file=/06-weekday/isSaturday/vanilla.js\",\n  \"date-fns/06-weekday/isSunday\": \"https://codesandbox.io/s/2d8rs?previewwindow=tests&file=/06-weekday/isSunday/vanilla.js\",\n  \"date-fns/06-weekday/isThursday\": \"https://codesandbox.io/s/qoz5r?previewwindow=tests&file=/06-weekday/isThursday/vanilla.js\",\n  \"date-fns/06-weekday/isTuesday\": \"https://codesandbox.io/s/zo53s?previewwindow=tests&file=/06-weekday/isTuesday/vanilla.js\",\n  \"date-fns/06-weekday/isWednesday\": \"https://codesandbox.io/s/vbxd3?previewwindow=tests&file=/06-weekday/isWednesday/vanilla.js\",\n  \"date-fns/06-weekday/isWeekend\": \"https://codesandbox.io/s/8xvuy?previewwindow=tests&file=/06-weekday/isWeekend/vanilla.js\",\n  \"date-fns/07-week/addWeeks\": \"https://codesandbox.io/s/3hhty?previewwindow=tests&file=/07-week/addWeeks/vanilla.js\",\n  \"date-fns/07-week/subWeeks\": \"https://codesandbox.io/s/8ryxo?previewwindow=tests&file=/07-week/subWeeks/vanilla.js\",\n  \"date-fns/08-month/addMonths\": \"https://codesandbox.io/s/7pxt6?previewwindow=tests&file=/08-month/addMonths/vanilla.js\",\n  \"date-fns/08-month/getMonth\": \"https://codesandbox.io/s/jqquk?previewwindow=tests&file=/08-month/getMonth/vanilla.js\",\n  \"date-fns/08-month/isFirstDayOfMonth\": \"https://codesandbox.io/s/ltltp?previewwindow=tests&file=/08-month/isFirstDayOfMonth/vanilla.js\",\n  \"date-fns/08-month/isLastDayOfMonth\": \"https://codesandbox.io/s/d9veq?previewwindow=tests&file=/08-month/isLastDayOfMonth/vanilla.js\",\n  \"date-fns/08-month/lastDayOfMonth\": \"https://codesandbox.io/s/mnvxk3?previewwindow=tests&file=/08-month/lastDayOfMonth/vanilla.js\",\n  \"date-fns/08-month/isSameMonth\": \"https://codesandbox.io/s/04clz?previewwindow=tests&file=/08-month/isSameMonth/vanilla.js\",\n  \"date-fns/08-month/isThisMonth\": \"https://codesandbox.io/s/4u126?previewwindow=tests&file=/08-month/isThisMonth/vanilla.js\",\n  \"date-fns/08-month/setMonth\": \"https://codesandbox.io/s/jcvuk?previewwindow=tests&file=/08-month/setMonth/vanilla.js\",\n  \"date-fns/08-month/subMonths\": \"https://codesandbox.io/s/nc0uf?previewwindow=tests&file=/08-month/subMonths/vanilla.js\",\n  \"date-fns/09-year/addYears\": \"https://codesandbox.io/s/fp2lv?previewwindow=tests&file=/09-year/addYears/vanilla.js\",\n  \"date-fns/09-year/differenceInCalendarYears\": \"https://codesandbox.io/s/cp077?previewwindow=tests&file=/09-year/differenceInCalendarYears/vanilla.js\",\n  \"date-fns/09-year/differenceInYears\": \"https://codesandbox.io/s/hrc9s?previewwindow=tests&file=/09-year/differenceInYears/vanilla.js\",\n  \"date-fns/09-year/getYear\": \"https://codesandbox.io/s/ykvgf?previewwindow=tests&file=/09-year/getYear/vanilla.js\",\n  \"date-fns/09-year/isLeapYear\": \"https://codesandbox.io/s/hsboh?previewwindow=tests&file=/09-year/isLeapYear/vanilla.js\",\n  \"date-fns/09-year/isSameYear\": \"https://codesandbox.io/s/hb8py?previewwindow=tests&file=/09-year/isSameYear/vanilla.js\",\n  \"date-fns/09-year/isThisYear\": \"https://codesandbox.io/s/jyelm?previewwindow=tests&file=/09-year/isThisYear/vanilla.js\",\n  \"date-fns/09-year/setYear\": \"https://codesandbox.io/s/296hz?previewwindow=tests&file=/09-year/setYear/vanilla.js\",\n  \"lodash/array/chunk\": \"https://codesandbox.io/s/t9j2k?previewwindow=tests&file=/array/chunk/vanilla.js\",\n  \"lodash/array/compact\": \"https://codesandbox.io/s/nqx5k?previewwindow=tests&file=/array/compact/vanilla.js\",\n  \"lodash/array/concat\": \"https://codesandbox.io/s/wzn0f?previewwindow=tests&file=/array/concat/vanilla.js\",\n  \"lodash/array/difference\": \"https://codesandbox.io/s/eg1jyg?previewwindow=tests&file=/array/difference/vanilla.js\",\n  \"lodash/array/differenceBy\": \"https://codesandbox.io/s/lzufb2?previewwindow=tests&file=/array/differenceBy/vanilla.js\",\n  \"lodash/array/drop\": \"https://codesandbox.io/s/nl553?previewwindow=tests&file=/array/drop/vanilla.js\",\n  \"lodash/array/dropRight\": \"https://codesandbox.io/s/9o71b?previewwindow=tests&file=/array/dropRight/vanilla.js\",\n  \"lodash/array/fill\": \"https://codesandbox.io/s/zpkl0?previewwindow=tests&file=/array/fill/vanilla.js\",\n  \"lodash/array/findIndex\": \"https://codesandbox.io/s/5pd6u?previewwindow=tests&file=/array/findIndex/vanilla.js\",\n  \"lodash/array/findLastIndex\": \"https://codesandbox.io/s/c9cqzn?previewwindow=tests&file=/array/findLastIndex/vanilla.js\",\n  \"lodash/array/flatMap\": \"https://codesandbox.io/s/terrd?previewwindow=tests&file=/array/flatMap/vanilla.js\",\n  \"lodash/array/flatten\": \"https://codesandbox.io/s/hkvzr?previewwindow=tests&file=/array/flatten/vanilla.js\",\n  \"lodash/array/flattenDeep\": \"https://codesandbox.io/s/f18t6?previewwindow=tests&file=/array/flattenDeep/vanilla.js\",\n  \"lodash/array/fromPairs\": \"https://codesandbox.io/s/tex9b?previewwindow=tests&file=/array/fromPairs/vanilla.js\",\n  \"lodash/array/head\": \"https://codesandbox.io/s/q4fuq?previewwindow=tests&file=/array/head/vanilla.js\",\n  \"lodash/array/indexOf\": \"https://codesandbox.io/s/c5eqk?previewwindow=tests&file=/array/indexOf/vanilla.js\",\n  \"lodash/array/initial\": \"https://codesandbox.io/s/hzv21?previewwindow=tests&file=/array/initial/vanilla.js\",\n  \"lodash/array/intersection\": \"https://codesandbox.io/s/58ypc?previewwindow=tests&file=/array/intersection/vanilla.js\",\n  \"lodash/array/join\": \"https://codesandbox.io/s/e73z8?previewwindow=tests&file=/array/join/vanilla.js\",\n  \"lodash/array/last\": \"https://codesandbox.io/s/0xuxd?previewwindow=tests&file=/array/last/vanilla.js\",\n  \"lodash/array/lastIndexOf\": \"https://codesandbox.io/s/o1pnv?previewwindow=tests&file=/array/lastIndexOf/vanilla.js\",\n  \"lodash/array/nth\": \"https://codesandbox.io/s/4zg5q?previewwindow=tests&file=/array/nth/vanilla.js\",\n  \"lodash/array/pullAt\": \"https://codesandbox.io/s/o29jy?previewwindow=tests&file=/array/pullAt/vanilla.js\",\n  \"lodash/array/reject\": \"https://codesandbox.io/s/b12iz?previewwindow=tests&file=/array/reject/vanilla.js\",\n  \"lodash/array/remove\": \"https://codesandbox.io/s/ng87y?previewwindow=tests&file=/array/remove/vanilla.js\",\n  \"lodash/array/reverse\": \"https://codesandbox.io/s/txe5b?previewwindow=tests&file=/array/reverse/vanilla.js\",\n  \"lodash/array/sortedIndexOf\": \"https://codesandbox.io/s/zsu2p?previewwindow=tests&file=/array/sortedIndexOf/vanilla.js\",\n  \"lodash/array/sortedLastIndexOf\": \"https://codesandbox.io/s/ypvi3?previewwindow=tests&file=/array/sortedLastIndexOf/vanilla.js\",\n  \"lodash/array/sortedUniq\": \"https://codesandbox.io/s/8c86b?previewwindow=tests&file=/array/sortedUniq/vanilla.js\",\n  \"lodash/array/tail\": \"https://codesandbox.io/s/xe409?previewwindow=tests&file=/array/tail/vanilla.js\",\n  \"lodash/array/take\": \"https://codesandbox.io/s/8ul39?previewwindow=tests&file=/array/take/vanilla.js\",\n  \"lodash/array/takeRight\": \"https://codesandbox.io/s/fvlse?previewwindow=tests&file=/array/takeRight/vanilla.js\",\n  \"lodash/array/toPairs\": \"https://codesandbox.io/s/4ilyv?previewwindow=tests&file=/array/toPairs/vanilla.js\",\n  \"lodash/array/union\": \"https://codesandbox.io/s/9em0r?previewwindow=tests&file=/array/union/vanilla.js\",\n  \"lodash/array/uniq\": \"https://codesandbox.io/s/36xnh?previewwindow=tests&file=/array/uniq/vanilla.js\",\n  \"lodash/array/unzip\": \"https://codesandbox.io/s/hs6m8?previewwindow=tests&file=/array/unzip/vanilla.js\",\n  \"lodash/array/without\": \"https://codesandbox.io/s/6prvn?previewwindow=tests&file=/array/without/vanilla.js\",\n  \"lodash/array/zip\": \"https://codesandbox.io/s/2rvh2?previewwindow=tests&file=/array/zip/vanilla.js\",\n  \"lodash/array/zipObject\": \"https://codesandbox.io/s/zkohx?previewwindow=tests&file=/array/zipObject/vanilla.js\",\n  \"lodash/collection/every\": \"https://codesandbox.io/s/8men5?previewwindow=tests&file=/collection/every/vanilla.js\",\n  \"lodash/collection/filter\": \"https://codesandbox.io/s/nedqe?previewwindow=tests&file=/collection/filter/vanilla.js\",\n  \"lodash/collection/find\": \"https://codesandbox.io/s/zlcxr?previewwindow=tests&file=/collection/find/vanilla.js\",\n  \"lodash/collection/forEach\": \"https://codesandbox.io/s/pwkfk?previewwindow=tests&file=/collection/forEach/vanilla.js\",\n  \"lodash/collection/forEachRight\": \"https://codesandbox.io/s/ju1yv?previewwindow=tests&file=/collection/forEachRight/vanilla.js\",\n  \"lodash/collection/includes\": \"https://codesandbox.io/s/l62er?previewwindow=tests&file=/collection/includes/vanilla.js\",\n  \"lodash/collection/map\": \"https://codesandbox.io/s/7x2lk?previewwindow=tests&file=/collection/map/vanilla.js\",\n  \"lodash/collection/reduce\": \"https://codesandbox.io/s/bkz3j?previewwindow=tests&file=/collection/reduce/vanilla.js\",\n  \"lodash/collection/reduceRight\": \"https://codesandbox.io/s/rpeir?previewwindow=tests&file=/collection/reduceRight/vanilla.js\",\n  \"lodash/collection/size\": \"https://codesandbox.io/s/49n4q?previewwindow=tests&file=/collection/size/vanilla.js\",\n  \"lodash/collection/some\": \"https://codesandbox.io/s/vcw3d?previewwindow=tests&file=/collection/some/vanilla.js\",\n  \"lodash/date/now\": \"https://codesandbox.io/s/b7fq5?previewwindow=tests&file=/date/now/vanilla.js\",\n  \"lodash/function/after\": \"https://codesandbox.io/s/pmew96?previewwindow=tests&file=/function/after/vanilla.js\",\n  \"lodash/function/ary\": \"https://codesandbox.io/s/7jvw8?previewwindow=tests&file=/function/ary/vanilla.js\",\n  \"lodash/function/before\": \"https://codesandbox.io/s/vx6w1p?previewwindow=tests&file=/function/before/vanilla.js\",\n  \"lodash/function/bind\": \"https://codesandbox.io/s/hwqht?previewwindow=tests&file=/function/bind/vanilla.js\",\n  \"lodash/function/curry\": \"https://codesandbox.io/s/rjz9o?previewwindow=tests&file=/function/curry/vanilla.js\",\n  \"lodash/function/curryRight\": \"https://codesandbox.io/s/3i27g?previewwindow=tests&file=/function/curryRight/vanilla.js\",\n  \"lodash/function/debounce\": \"https://codesandbox.io/s/nlxh9g?previewwindow=tests&file=/function/debounce/vanilla.js\",\n  \"lodash/function/delay\": \"https://codesandbox.io/s/81fwe7?previewwindow=tests&file=/function/delay/vanilla.js\",\n  \"lodash/function/flip\": \"https://codesandbox.io/s/32gwy?previewwindow=tests&file=/function/flip/vanilla.js\",\n  \"lodash/function/negate\": \"https://codesandbox.io/s/ib0le?previewwindow=tests&file=/function/negate/vanilla.js\",\n  \"lodash/function/once\": \"https://codesandbox.io/s/yyne80?previewwindow=tests&file=/function/once/vanilla.js\",\n  \"lodash/function/overArgs\": \"https://codesandbox.io/s/99lcx?previewwindow=tests&file=/function/overArgs/vanilla.js\",\n  \"lodash/function/partial\": \"https://codesandbox.io/s/jont6?previewwindow=tests&file=/function/partial/vanilla.js\",\n  \"lodash/function/partialRight\": \"https://codesandbox.io/s/307je?previewwindow=tests&file=/function/partialRight/vanilla.js\",\n  \"lodash/function/rearg\": \"https://codesandbox.io/s/e5pi6?previewwindow=tests&file=/function/rearg/vanilla.js\",\n  \"lodash/function/unary\": \"https://codesandbox.io/s/coqf9?previewwindow=tests&file=/function/unary/vanilla.js\",\n  \"lodash/function/wrap\": \"https://codesandbox.io/s/vb3db?previewwindow=tests&file=/function/wrap/vanilla.js\",\n  \"lodash/lang/castArray\": \"https://codesandbox.io/s/7of99?previewwindow=tests&file=/lang/castArray/vanilla.js\",\n  \"lodash/lang/conformsTo\": \"https://codesandbox.io/s/0yqlb?previewwindow=tests&file=/lang/conformsTo/vanilla.js\",\n  \"lodash/lang/gt\": \"https://codesandbox.io/s/6oeck?previewwindow=tests&file=/lang/gt/vanilla.js\",\n  \"lodash/lang/gte\": \"https://codesandbox.io/s/tkuhb?previewwindow=tests&file=/lang/gte/vanilla.js\",\n  \"lodash/lang/isArray\": \"https://codesandbox.io/s/rrwwk?previewwindow=tests&file=/lang/isArray/vanilla.js\",\n  \"lodash/lang/isBoolean\": \"https://codesandbox.io/s/csdjd?previewwindow=tests&file=/lang/isBoolean/vanilla.js\",\n  \"lodash/lang/isDate\": \"https://codesandbox.io/s/p9iok?previewwindow=tests&file=/lang/isDate/vanilla.js\",\n  \"lodash/lang/isError\": \"https://codesandbox.io/s/4fbdc?previewwindow=tests&file=/lang/isError/vanilla.js\",\n  \"lodash/lang/isFinite\": \"https://codesandbox.io/s/d9p9d?previewwindow=tests&file=/lang/isFinite/vanilla.js\",\n  \"lodash/lang/isInteger\": \"https://codesandbox.io/s/d9yjl?previewwindow=tests&file=/lang/isInteger/vanilla.js\",\n  \"lodash/lang/isNaN\": \"https://codesandbox.io/s/d3uzj?previewwindow=tests&file=/lang/isNaN/vanilla.js\",\n  \"lodash/lang/isNil\": \"https://codesandbox.io/s/8i93t?previewwindow=tests&file=/lang/isNil/vanilla.js\",\n  \"lodash/lang/isNull\": \"https://codesandbox.io/s/nxqkr?previewwindow=tests&file=/lang/isNull/vanilla.js\",\n  \"lodash/lang/isNumber\": \"https://codesandbox.io/s/oo9hb?previewwindow=tests&file=/lang/isNumber/vanilla.js\",\n  \"lodash/lang/isObject\": \"https://codesandbox.io/s/5yp8w?previewwindow=tests&file=/lang/isObject/vanilla.js\",\n  \"lodash/lang/isRegExp\": \"https://codesandbox.io/s/nokhc?previewwindow=tests&file=/lang/isRegExp/vanilla.js\",\n  \"lodash/lang/isString\": \"https://codesandbox.io/s/whho5?previewwindow=tests&file=/lang/isString/vanilla.js\",\n  \"lodash/lang/isUndefined\": \"https://codesandbox.io/s/5t1o7?previewwindow=tests&file=/lang/isUndefined/vanilla.js\",\n  \"lodash/lang/lt\": \"https://codesandbox.io/s/vtkgv?previewwindow=tests&file=/lang/lt/vanilla.js\",\n  \"lodash/lang/lte\": \"https://codesandbox.io/s/dx330?previewwindow=tests&file=/lang/lte/vanilla.js\",\n  \"lodash/math/add\": \"https://codesandbox.io/s/3dg8g?previewwindow=tests&file=/math/add/vanilla.js\",\n  \"lodash/math/ceil\": \"https://codesandbox.io/s/f2w2n?previewwindow=tests&file=/math/ceil/vanilla.js\",\n  \"lodash/math/divide\": \"https://codesandbox.io/s/nh4g1?previewwindow=tests&file=/math/divide/vanilla.js\",\n  \"lodash/math/floor\": \"https://codesandbox.io/s/uenpn?previewwindow=tests&file=/math/floor/vanilla.js\",\n  \"lodash/math/max\": \"https://codesandbox.io/s/02mnd?previewwindow=tests&file=/math/max/vanilla.js\",\n  \"lodash/math/maxBy\": \"https://codesandbox.io/s/7xr3d?previewwindow=tests&file=/math/maxBy/vanilla.js\",\n  \"lodash/math/mean\": \"https://codesandbox.io/s/546z8?previewwindow=tests&file=/math/mean/vanilla.js\",\n  \"lodash/math/meanBy\": \"https://codesandbox.io/s/uwnci?previewwindow=tests&file=/math/meanBy/vanilla.js\",\n  \"lodash/math/min\": \"https://codesandbox.io/s/pp5b8?previewwindow=tests&file=/math/min/vanilla.js\",\n  \"lodash/math/minBy\": \"https://codesandbox.io/s/1i4dz?previewwindow=tests&file=/math/minBy/vanilla.js\",\n  \"lodash/math/multiply\": \"https://codesandbox.io/s/rxnyx?previewwindow=tests&file=/math/multiply/vanilla.js\",\n  \"lodash/math/round\": \"https://codesandbox.io/s/y9bs2?previewwindow=tests&file=/math/round/vanilla.js\",\n  \"lodash/math/subtract\": \"https://codesandbox.io/s/nqoru?previewwindow=tests&file=/math/subtract/vanilla.js\",\n  \"lodash/math/sum\": \"https://codesandbox.io/s/tcgpt?previewwindow=tests&file=/math/sum/vanilla.js\",\n  \"lodash/math/sumBy\": \"https://codesandbox.io/s/r7q7l?previewwindow=tests&file=/math/sumBy/vanilla.js\",\n  \"lodash/number/clamp\": \"https://codesandbox.io/s/hf6k5?previewwindow=tests&file=/number/clamp/vanilla.js\",\n  \"lodash/number/inRange\": \"https://codesandbox.io/s/bklpm?previewwindow=tests&file=/number/inRange/vanilla.js\",\n  \"lodash/object/assign\": \"https://codesandbox.io/s/jrrtw?previewwindow=tests&file=/object/assign/vanilla.js\",\n  \"lodash/object/create\": \"https://codesandbox.io/s/2n41y?previewwindow=tests&file=/object/create/vanilla.js\",\n  \"lodash/object/defaults\": \"https://codesandbox.io/s/ol04k?previewwindow=tests&file=/object/defaults/vanilla.js\",\n  \"lodash/object/get\": \"https://codesandbox.io/s/km0wm?previewwindow=tests&file=/object/get/vanilla.js\",\n  \"lodash/object/has\": \"https://codesandbox.io/s/hr2v7?previewwindow=tests&file=/object/has/vanilla.js\",\n  \"lodash/object/invert\": \"https://codesandbox.io/s/25wjo?previewwindow=tests&file=/object/invert/vanilla.js\",\n  \"lodash/object/keys\": \"https://codesandbox.io/s/7ze4x?previewwindow=tests&file=/object/keys/vanilla.js\",\n  \"lodash/object/mapKeys\": \"https://codesandbox.io/s/ldsmz?previewwindow=tests&file=/object/mapKeys/vanilla.js\",\n  \"lodash/object/omit\": \"https://codesandbox.io/s/d9s71?previewwindow=tests&file=/object/omit/vanilla.js\",\n  \"lodash/object/omitBy\": \"https://codesandbox.io/s/un1n6?previewwindow=tests&file=/object/omitBy/vanilla.js\",\n  \"lodash/object/pick\": \"https://codesandbox.io/s/gq4mi?previewwindow=tests&file=/object/pick/vanilla.js\",\n  \"lodash/object/set\": \"https://codesandbox.io/s/987y2?previewwindow=tests&file=/object/set/vanilla.js\",\n  \"lodash/object/unset\": \"https://codesandbox.io/s/mz23n?previewwindow=tests&file=/object/unset/vanilla.js\",\n  \"lodash/object/values\": \"https://codesandbox.io/s/ln58p?previewwindow=tests&file=/object/values/vanilla.js\",\n  \"lodash/string/capitalize\": \"https://codesandbox.io/s/4dp1m?previewwindow=tests&file=/string/capitalize/vanilla.js\",\n  \"lodash/string/endsWith\": \"https://codesandbox.io/s/dj67k?previewwindow=tests&file=/string/endsWith/vanilla.js\",\n  \"lodash/string/escape\": \"https://codesandbox.io/s/yjlvh?previewwindow=tests&file=/string/escape/vanilla.js\",\n  \"lodash/string/lowerFirst\": \"https://codesandbox.io/s/239fy?previewwindow=tests&file=/string/lowerFirst/vanilla.js\",\n  \"lodash/string/pad\": \"https://codesandbox.io/s/kqg8y?previewwindow=tests&file=/string/pad/vanilla.js\",\n  \"lodash/string/padEnd\": \"https://codesandbox.io/s/yu3uk?previewwindow=tests&file=/string/padEnd/vanilla.js\",\n  \"lodash/string/padStart\": \"https://codesandbox.io/s/z9xkn?previewwindow=tests&file=/string/padStart/vanilla.js\",\n  \"lodash/string/parseInt\": \"https://codesandbox.io/s/bg6rs?previewwindow=tests&file=/string/parseInt/vanilla.js\",\n  \"lodash/string/repeat\": \"https://codesandbox.io/s/web8r?previewwindow=tests&file=/string/repeat/vanilla.js\",\n  \"lodash/string/replace\": \"https://codesandbox.io/s/du7ru?previewwindow=tests&file=/string/replace/vanilla.js\",\n  \"lodash/string/split\": \"https://codesandbox.io/s/755myg?previewwindow=tests&file=/string/split/vanilla.js\",\n  \"lodash/string/startsWith\": \"https://codesandbox.io/s/tpzvi?previewwindow=tests&file=/string/startsWith/vanilla.js\",\n  \"lodash/string/toLower\": \"https://codesandbox.io/s/8h9zc?previewwindow=tests&file=/string/toLower/vanilla.js\",\n  \"lodash/string/toUpper\": \"https://codesandbox.io/s/rbm0y?previewwindow=tests&file=/string/toUpper/vanilla.js\",\n  \"lodash/string/trim\": \"https://codesandbox.io/s/ytzpv?previewwindow=tests&file=/string/trim/vanilla.js\",\n  \"lodash/string/trimEnd\": \"https://codesandbox.io/s/uvv7w?previewwindow=tests&file=/string/trimEnd/vanilla.js\",\n  \"lodash/string/trimStart\": \"https://codesandbox.io/s/ikhew?previewwindow=tests&file=/string/trimStart/vanilla.js\",\n  \"lodash/string/upperFirst\": \"https://codesandbox.io/s/jztw1?previewwindow=tests&file=/string/upperFirst/vanilla.js\",\n  \"lodash/util/attempt\": \"https://codesandbox.io/s/k4049?previewwindow=tests&file=/util/attempt/vanilla.js\",\n  \"lodash/util/cond\": \"https://codesandbox.io/s/9ccnpk?previewwindow=tests&file=/util/cond/vanilla.js\",\n  \"lodash/util/constant\": \"https://codesandbox.io/s/97bs0?previewwindow=tests&file=/util/constant/vanilla.js\",\n  \"lodash/util/defaultTo\": \"https://codesandbox.io/s/u1hhw?previewwindow=tests&file=/util/defaultTo/vanilla.js\",\n  \"lodash/util/flow\": \"https://codesandbox.io/s/71hoj?previewwindow=tests&file=/util/flow/vanilla.js\",\n  \"lodash/util/flowRight\": \"https://codesandbox.io/s/bz7hj?previewwindow=tests&file=/util/flowRight/vanilla.js\",\n  \"lodash/util/identity\": \"https://codesandbox.io/s/f46vy?previewwindow=tests&file=/util/identity/vanilla.js\",\n  \"lodash/util/noop\": \"https://codesandbox.io/s/hx5xc?previewwindow=tests&file=/util/noop/vanilla.js\",\n  \"lodash/util/nthArg\": \"https://codesandbox.io/s/sey5w?previewwindow=tests&file=/util/nthArg/vanilla.js\",\n  \"lodash/util/over\": \"https://codesandbox.io/s/wml9h?previewwindow=tests&file=/util/over/vanilla.js\",\n  \"lodash/util/overEvery\": \"https://codesandbox.io/s/c7rmv?previewwindow=tests&file=/util/overEvery/vanilla.js\",\n  \"lodash/util/overSome\": \"https://codesandbox.io/s/e8c4q?previewwindow=tests&file=/util/overSome/vanilla.js\",\n  \"lodash/util/range\": \"https://codesandbox.io/s/flkf8?previewwindow=tests&file=/util/range/vanilla.js\",\n  \"lodash/util/rangeRight\": \"https://codesandbox.io/s/65fm8?previewwindow=tests&file=/util/rangeRight/vanilla.js\",\n  \"lodash/util/stubArray\": \"https://codesandbox.io/s/mu8s6?previewwindow=tests&file=/util/stubArray/vanilla.js\",\n  \"lodash/util/stubFalse\": \"https://codesandbox.io/s/o6o05?previewwindow=tests&file=/util/stubFalse/vanilla.js\",\n  \"lodash/util/stubObject\": \"https://codesandbox.io/s/b9fzs?previewwindow=tests&file=/util/stubObject/vanilla.js\",\n  \"lodash/util/stubString\": \"https://codesandbox.io/s/c7t7g?previewwindow=tests&file=/util/stubString/vanilla.js\",\n  \"lodash/util/stubTrue\": \"https://codesandbox.io/s/5w26j?previewwindow=tests&file=/util/stubTrue/vanilla.js\",\n  \"lodash/util/times\": \"https://codesandbox.io/s/ph2lp?previewwindow=tests&file=/util/times/vanilla.js\",\n  \"lodash/util/toPath\": \"https://codesandbox.io/s/kte0s?previewwindow=tests&file=/util/toPath/vanilla.js\",\n  \"lodash/util/uniqueId\": \"https://codesandbox.io/s/k6zki?previewwindow=tests&file=/util/uniqueId/vanilla.js\",\n  \"lodash/array/flattenDepth\": \"https://codesandbox.io/s/dm13m?previewwindow=tests&file=/array/flattenDepth/vanilla.js\",\n  \"lodash/array/intersectionBy\": \"https://codesandbox.io/s/wrnsh?previewwindow=tests&file=/array/intersectionBy/vanilla.js\",\n  \"lodash/array/unionBy\": \"https://codesandbox.io/s/023uv?previewwindow=tests&file=/array/unionBy/vanilla.js\",\n  \"lodash/array/uniqBy\": \"https://codesandbox.io/s/zmpt6?previewwindow=tests&file=/array/uniqBy/vanilla.js\",\n  \"lodash/lang/isSet\": \"https://codesandbox.io/s/6ex7vi?previewwindow=tests&file=/lang/isSet/vanilla.js\",\n  \"lodash/lang/isSymbol\": \"https://codesandbox.io/s/2c9fnb?previewwindow=tests&file=/lang/isSymbol/vanilla.js\",\n  \"lodash/lang/isTypedArray\": \"https://codesandbox.io/s/18rldj?previewwindow=tests&file=/lang/isTypedArray/vanilla.js\",\n  \"lodash/lang/isWeakMap\": \"https://codesandbox.io/s/8yoscd?previewwindow=tests&file=/lang/isWeakMap/vanilla.js\",\n  \"lodash/lang/isWeakSet\": \"https://codesandbox.io/s/3humi7?previewwindow=tests&file=/lang/isWeakSet/vanilla.js\",\n  \"lodash/lang/isArrayBuffer\": \"https://codesandbox.io/s/go55n6?previewwindow=tests&file=/lang/isArrayBuffer/vanilla.js\",\n  \"lodash/lang/isFunction\": \"https://codesandbox.io/s/5297dt?previewwindow=tests&file=/lang/isFunction/vanilla.js\",\n  \"lodash/lang/isMap\": \"https://codesandbox.io/s/yscj30?previewwindow=tests&file=/lang/isMap/vanilla.js\",\n  \"date-fns/00-generic/closestIndexTo\": \"https://codesandbox.io/s/b434ye?previewwindow=tests&file=/00-generic/closestIndexTo/vanilla.js\",\n  \"date-fns/00-generic/closestTo\": \"https://codesandbox.io/s/210e7f?previewwindow=tests&file=/00-generic/closestTo/vanilla.js\",\n  \"date-fns/00-generic/compareAsc\": \"https://codesandbox.io/s/45ug0b?previewwindow=tests&file=/00-generic/compareAsc/vanilla.js\",\n  \"date-fns/00-generic/compareDesc\": \"https://codesandbox.io/s/x78lpo?previewwindow=tests&file=/00-generic/compareDesc/vanilla.js\",\n  \"date-fns/00-generic/isAfter\": \"https://codesandbox.io/s/ic14vs?previewwindow=tests&file=/00-generic/isAfter/vanilla.js\",\n  \"date-fns/00-generic/isBefore\": \"https://codesandbox.io/s/qx522r?previewwindow=tests&file=/00-generic/isBefore/vanilla.js\",\n  \"date-fns/00-generic/isDate\": \"https://codesandbox.io/s/grr7cm?previewwindow=tests&file=/00-generic/isDate/vanilla.js\",\n  \"date-fns/00-generic/isEqual\": \"https://codesandbox.io/s/9rdjjk?previewwindow=tests&file=/00-generic/isEqual/vanilla.js\",\n  \"date-fns/00-generic/isExists\": \"https://codesandbox.io/s/f1wi2u?previewwindow=tests&file=/00-generic/isExists/vanilla.js\",\n  \"date-fns/00-generic/isFuture\": \"https://codesandbox.io/s/vg7w7u?previewwindow=tests&file=/00-generic/isFuture/vanilla.js\",\n  \"date-fns/00-generic/isPast\": \"https://codesandbox.io/s/pct43t?previewwindow=tests&file=/00-generic/isPast/vanilla.js\",\n  \"date-fns/00-generic/isValid\": \"https://codesandbox.io/s/ytiq4m?previewwindow=tests&file=/00-generic/isValid/vanilla.js\",\n  \"date-fns/00-generic/max\": \"https://codesandbox.io/s/qu3t56?previewwindow=tests&file=/00-generic/max/vanilla.js\",\n  \"date-fns/00-generic/min\": \"https://codesandbox.io/s/h5ekz9?previewwindow=tests&file=/00-generic/min/vanilla.js\",\n  \"lodash/array/slice\": \"https://codesandbox.io/s/swzxve?previewwindow=tests&file=/array/slice/vanilla.js\",\n  \"lodash/array/xor\": \"https://codesandbox.io/s/bnf6zr?previewwindow=tests&file=/array/xor/vanilla.js\",\n  \"lodash/function/bindKey\": \"https://codesandbox.io/s/nle1o9?previewwindow=tests&file=/function/bindKey/vanilla.js\",\n  \"lodash/function/rest\": \"https://codesandbox.io/s/tvct0k?previewwindow=tests&file=/function/rest/vanilla.js\",\n  \"lodash/function/spread\": \"https://codesandbox.io/s/4lp6oj?previewwindow=tests&file=/function/spread/vanilla.js\",\n  \"lodash/lang/isArrayLike\": \"https://codesandbox.io/s/1z23q1?previewwindow=tests&file=/lang/isArrayLike/vanilla.js\",\n  \"lodash/string/kebabCase\": \"https://codesandbox.io/s/lw2h9e?previewwindow=tests&file=/string/kebabCase/vanilla.js\",\n  \"lodash/array/pull\": \"https://codesandbox.io/s/w21u39?previewwindow=tests&file=/array/pull/vanilla.js\",\n  \"lodash/lang/isMatch\": \"https://codesandbox.io/s/rt6l0y?previewwindow=tests&file=/lang/isMatch/vanilla.js\",\n  \"lodash/lang/isSafeInteger\": \"https://codesandbox.io/s/qnjwlo?previewwindow=tests&file=/lang/isSafeInteger/vanilla.js\",\n  \"lodash/string/deburr\": \"https://codesandbox.io/s/eimm97?previewwindow=tests&file=/string/deburr/vanilla.js\",\n  \"lodash/number/random\": \"https://codesandbox.io/s/1m9u5r?previewwindow=tests&file=/number/random/vanilla.js\",\n  \"date-fns/01-interval/eachDayOfInterval\": \"https://codesandbox.io/s/gv4w2v?previewwindow=tests&file=/01-interval/eachDayOfInterval/vanilla.js\",\n  \"lodash/lang/isEmpty\": \"https://codesandbox.io/s/8yv474?previewwindow=tests&file=/lang/isEmpty/vanilla.js\",\n  \"lodash/string/words\": \"https://codesandbox.io/s/ftt9qy?previewwindow=tests&file=/string/words/vanilla.js\",\n  \"lodash/lang/cloneDeep\": \"https://codesandbox.io/s/s6t9nh?previewwindow=tests&file=/lang/cloneDeep/vanilla.js\"\n}\n"
  },
  {
    "path": "src/components/AnchoredBlock.js",
    "content": "import React, { Fragment, memo } from 'react'\nimport styled from 'styled-components'\nimport Heading from './Heading'\n\nconst normaliseTitle = title => title.replace(/^([0-9]+-)/, '')\n\nconst Anchor = styled.a`\n  text-decoration: none;\n  cursor: pointer;\n  position: relative;\n\n  &::before {\n    position: absolute;\n    left: -0.7em;\n    font-family: monospace;\n    content: '  ';\n    line-height: initial;\n    white-space: pre;\n  }\n\n  &:hover::before {\n    content: '# ';\n  }\n`\n\nexport default memo(({ title, hierarchy, children }) => (\n  <Fragment>\n    {title ? (\n      <Heading hierarchy={hierarchy}>\n        <Anchor href={`#${normaliseTitle(title)}`} name={normaliseTitle(title)}>\n          {normaliseTitle(title)}\n        </Anchor>\n      </Heading>\n    ) : null}\n    {children}\n  </Fragment>\n))\n"
  },
  {
    "path": "src/components/Badge.js",
    "content": "import styled from 'styled-components'\n\nconst Badge = styled.a`\n  position: fixed;\n  top: 0;\n  right: 0;\n\n  svg {\n    fill: var(--nc-tx-1);\n  }\n`\n\nexport default () => (\n  <Badge\n    target=\"_blank\"\n    href=\"https://github.com/cedmax/youmightnotneed\"\n    rel=\"noopener noreferrer\"\n  >\n    <svg height=\"60\" width=\"60\" viewBox=\"0 0 80 80\">\n      <path d=\"M42.48 32.81c-1.27-.6-3.04-2-2.32-4.87 0 0 .58-2.05-.67-3.52 0 0-1.35-1.38-.93.73 0 0 .48 1.31-.48 3.52 0 0-1.57 3.05 2.58 5.95l-2.2 2.18H36.8L0 0h80v80L45.44 45.44l-.4-.88c-.07-.35-.1-.7.08-.88l3.74-3.71c1.28-1.28 1.67-2.56 1.6-3.46 3.4 2.69 7.75 4.74 13-.51a7.5 7.5 0 0 0 2.27-5.09 6.95 6.95 0 0 0 3.49-3.74s-.8-1.5-5.19-2.34c-.77-1.4-1.79-2.75-2.94-3.9a18.77 18.77 0 0 0-3.87-2.95c-.87-4.38-2.37-5.15-2.37-5.15-2.63 1.12-3.55 2.98-3.75 3.49a7.52 7.52 0 0 0-5.08 2.24c-5.22 5.25-3.2 9.6-.52 13-.73-.07-1.7.18-2.72.95z\"></path>\n    </svg>\n  </Badge>\n)\n"
  },
  {
    "path": "src/components/CodeComparison.js",
    "content": "import React, { Fragment, memo, useState, useCallback } from 'react'\nimport styled from 'styled-components'\nimport Linkify from 'react-simple-linkify'\nimport Hightlight from 'react-highlight/lib/optimized'\nimport Heading from './Heading'\nimport Spec from './Spec'\n\nconst LineBlock = styled.div`\n  padding-bottom: 5.5rem;\n  margin: auto;\n\n  code {\n    display: block;\n    padding: 15px;\n    background: var(--custom-bk-code);\n    border: 0;\n    border-left: 3px solid var(--nc-lk-1);\n    border-radius: 0;\n  }\n\n  @media (min-width: 800px) {\n    display: flex;\n    justify-content: space-between;\n\n    & > div {\n      overflow: hidden;\n      width: 48%;\n\n      pre {\n        margin-bottom: 0;\n      }\n    }\n  }\n`\n\nconst NotesLinks = styled.div`\n  max-width: 768px;\n\n  a {\n    padding: 0 3px;\n  }\n\n  code {\n    color: var(--nc-tx-1);\n    background: var(--custom-bk-code);\n    border-radius: 7px;\n    padding: 3px 5px;\n  }\n`\n\nconst Resources = styled.span`\n  font-size: 85%;\n\n  a {\n    margin-left: 0.5rem;\n    text-decoration: underline;\n    text-decoration-style: dotted;\n  }\n`\n\nconst LookAtTestButton = styled.button`\n  margin: 1em 0 2em;\n`\n\nconst Link = ({ url }) => (\n  <a href={url} rel=\"noopener noreferrer\" target=\"_blank\">\n    {url}\n  </a>\n)\n\nconst showTestStr = 'check the tests for more details'\nconst ForceShowTestLink = memo(({ children, setForceShowTest }) => {\n  const { children: code } = children.props.children.props\n  const onClick = useCallback(() => setForceShowTest(true), [setForceShowTest])\n\n  if (code.includes(showTestStr)) {\n    const splitCode = code.replace(`\\n// => ${showTestStr}`, '')\n\n    return (\n      <>\n        <Hightlight className=\"javascript\">\n          <Linkify component={Link}>{splitCode}</Linkify>\n        </Hightlight>\n        <LookAtTestButton onClick={onClick}>{showTestStr}</LookAtTestButton>\n      </>\n    )\n  }\n\n  return children\n})\n\nconst handleCopyEvent = e => {\n  const text = `// WARNING: This is not a drop in replacement solution and\n// it might not work for some edge cases. Test your code! \n${window.getSelection().toString()}`\n\n  e.clipboardData.setData('text/plain', text)\n  e.preventDefault()\n}\n\nconst Variant = memo(\n  ({ variant, methodData, setForceShowTest, id, openModal }) => (\n    <div onCopy={variant == 'plain js' ? e => handleCopyEvent(e) : () => {}}>\n      <Heading hierarchy=\"4\">\n        {variant}\n        {variant == 'plain js' ? (\n          <>\n            <button\n              className=\"button button-clear\"\n              onClick={() => openModal(id)}\n            >\n              codesandbox.io\n            </button>\n          </>\n        ) : (\n          ''\n        )}\n      </Heading>\n      <ForceShowTestLink setForceShowTest={setForceShowTest}>\n        <Hightlight className=\"javascript\">\n          <Linkify component={Link}>{methodData[variant]}</Linkify>\n        </Hightlight>\n      </ForceShowTestLink>\n      {variant === 'plain js' && methodData.resources && (\n        <Resources dangerouslySetInnerHTML={{ __html: methodData.resources }} />\n      )}\n    </div>\n  )\n)\n\nconst Block = memo(({ methodData, setForceShowTest, id, openModal }) =>\n  Object.keys(methodData)\n    .filter(variant => !['notes', 'resources', 'spec'].includes(variant))\n    .map(variant => (\n      <Variant\n        id={id}\n        openModal={openModal}\n        setForceShowTest={setForceShowTest}\n        key={variant}\n        methodData={methodData}\n        variant={variant}\n      />\n    ))\n)\n\nexport default memo(({ methodData, showTests, id, openModal }) => {\n  const [forceShowTest, setForceShowTest] = useState(false)\n  return (\n    <Fragment>\n      <NotesLinks dangerouslySetInnerHTML={{ __html: methodData.notes }} />\n      <LineBlock>\n        <Block\n          id={id}\n          openModal={openModal}\n          setForceShowTest={setForceShowTest}\n          methodData={methodData}\n        />\n      </LineBlock>\n      {methodData.spec && (showTests || forceShowTest) ? (\n        <Spec code={methodData.spec} />\n      ) : null}\n    </Fragment>\n  )\n})\n"
  },
  {
    "path": "src/components/ContentBlock.js",
    "content": "import styled from 'styled-components'\n\nconst Content = styled.div`\n  padding: 3em 3em 1em;\n  max-width: 50em;\n  margin: auto;\n\n  h1 {\n    font-size: 2.6rem;\n    strong {\n      font-size: clamp(3.9rem, -0.875rem + 8.333vw, 5.2rem);\n      display: block;\n    }\n  }\n\n  & + & {\n    padding-top: 0;\n  }\n\n  a del {\n    font-size: 85%;\n    color: var(--nc-tx-2);\n  }\n\n  p {\n    line-height: 1.8;\n  }\n`\n\nexport default Content\n"
  },
  {
    "path": "src/components/Embed.js",
    "content": "import React from 'react'\nimport codesandboxUrls from '../code-sandbox.json'\nimport styled from 'styled-components'\n\nconst Embed = styled.iframe`\n  width: 100%;\n  height: 100%;\n  border: 0;\n  position: relative;\n`\n\nexport default ({ id }) => {\n  console.log(id)\n  const url = codesandboxUrls[id]\n  return (\n    <Embed\n      src={\n        url.replace('/s/', '/embed/').replace('&file=', '&module=') +\n        '&autoresize=1'\n      }\n    />\n  )\n}\n"
  },
  {
    "path": "src/components/Footer.js",
    "content": "import React from 'react'\nimport Content from './ContentBlock'\n\nexport default ({ footer }) => (\n  <footer>\n    <Content dangerouslySetInnerHTML={{ __html: footer }} />\n  </footer>\n)\n"
  },
  {
    "path": "src/components/Heading.js",
    "content": "import React from 'react'\nimport styled from 'styled-components'\n\nconst Heading = styled.h1`\n  text-transform: capitalize;\n  margin: auto;\n  text-align: ${({ hierarchy }) =>\n    parseInt(hierarchy, 10) < 3 ? 'center' : 'left'};\n`\n\nexport default ({ hierarchy, children }) => (\n  <Heading as={`h${hierarchy}`} hierarchy={hierarchy}>\n    {children}\n  </Heading>\n)\n"
  },
  {
    "path": "src/components/LibPage.js",
    "content": "import React, { Fragment, useCallback, useState, memo, useEffect } from 'react'\nimport ScrollToTop from 'react-scroll-up'\nimport styled from 'styled-components'\nimport Content from './ContentBlock'\nimport AnchoredBlock from './AnchoredBlock'\nimport Search from './Search'\nimport CodeComparison from './CodeComparison'\nimport dataFilter from '../helpers/data-filter'\nimport ShowTests from './ShowTests'\nimport Modal from './Modal'\n\nconst Row = styled.div`\n  background: var(--nc-bg-1);\n  padding: 3em;\n\n  &:nth-child(2n) {\n    background: var(--nc-bg-2);\n    border-bottom: 1px solid var(--nc-bg-2);\n  }\n`\n\nconst Section = memo(({ method, data, section, showTests, frw, openModal }) => (\n  <AnchoredBlock key={method} title={method} hierarchy=\"3\">\n    <CodeComparison\n      openModal={openModal}\n      id={`${frw}/${section}/${method}`}\n      showTests={showTests}\n      methodData={data[method]}\n    />\n  </AnchoredBlock>\n))\n\nconst Block = memo(({ data, showTests, section, frw, openModal }) =>\n  Object.keys(data).map(method => (\n    <Section\n      openModal={openModal}\n      frw={frw}\n      showTests={showTests}\n      method={method}\n      section={section}\n      data={data}\n      key={`${section}-${method}`}\n    />\n  ))\n)\n\nexport default memo(({ data: initialData, frw }) => {\n  const [showTests, setShowTests] = useState(false)\n  const [value, setValue] = useState('')\n  const [data, setData] = useState(initialData)\n  const [embed, setEmbed] = useState()\n\n  const onChange = useCallback(\n    ({ target: { value } }) => {\n      setValue(value)\n      setData(dataFilter(initialData, value))\n    },\n    [initialData]\n  )\n\n  useEffect(() => {\n    setShowTests(false)\n    setValue('')\n    setData(initialData)\n  }, [initialData])\n\n  const showTestsToggle = useCallback(\n    () => setShowTests(showTests => !showTests),\n    []\n  )\n\n  const closeModal = useCallback(() => setEmbed(), [])\n  const openModal = useCallback(id => setEmbed(id), [])\n\n  return (\n    <Fragment>\n      <Content>\n        <Search value={value} onChange={onChange} />\n        <ShowTests value={showTests} onChange={showTestsToggle} />\n      </Content>\n      {Object.keys(data).map(section => (\n        <Row key={section}>\n          <AnchoredBlock title={section} hierarchy=\"2\">\n            <Block\n              openModal={openModal}\n              frw={frw}\n              section={section}\n              showTests={showTests}\n              data={data[section]}\n            />\n          </AnchoredBlock>\n        </Row>\n      ))}\n\n      <ScrollToTop\n        style={{\n          fontSize: 23,\n          bottom: 30,\n          background: 'rgba(255, 255, 255, .5)',\n          borderRadius: 5,\n          aspectRatio: 1,\n          height: 30,\n          display: 'flex',\n          justifyContent: 'center',\n          alignItems: 'center',\n          border: '1px solid var(--nc-bg-3)',\n        }}\n        showUnder={160}\n      >\n        <span role=\"img\" aria-label=\"Go To Top\">\n          🔝\n        </span>\n      </ScrollToTop>\n      <Modal id={embed} close={closeModal} />\n    </Fragment>\n  )\n})\n"
  },
  {
    "path": "src/components/Modal.js",
    "content": "import React, { memo, Suspense, lazy } from 'react'\nimport Modal from 'react-modal'\nimport styled from 'styled-components'\nimport { isMobile } from 'is-mobile'\n\nconst EmbedComponent = lazy(() => import('./Embed'))\n\nModal.setAppElement('#modal-root')\n\nconst Loader = styled.div`\n  width: 100%;\n  height: 100%;\n  background: rgba(255, 255, 255, 0.9);\n\n  @keyframes spinner {\n    to {\n      transform: rotate(360deg);\n    }\n  }\n\n  &:before {\n    content: '';\n    box-sizing: border-box;\n    position: absolute;\n    z-index: 0;\n    top: 50%;\n    left: 50%;\n    width: 20px;\n    height: 20px;\n    margin-top: -10px;\n    margin-left: -10px;\n    border-radius: 50%;\n    border: 2px solid #ccc;\n    border-top-color: #000;\n    animation: spinner 0.6s linear infinite;\n  }\n`\n\nconst CloseBtn = styled.button`\n  z-index: 10;\n  border: 0;\n  cursor: pointer;\n  background: #222;\n  border-radius: 50px;\n  display: inline-block;\n  width: 20px;\n  height: 20px;\n  overflow: hidden;\n  text-decoration: none;\n  padding: 0;\n  font-size: 10px;\n  color: white;\n  line-height: 2;\n  box-shadow: 1px 1px 3px #999;\n  position: absolute;\n  right: -10px;\n  top: -10px;\n\n  span {\n    text-indent: 100px;\n  }\n\n  &::before {\n    content: '✕';\n    display: block;\n  }\n`\n\nconst style = {\n  overlay: {\n    zIndex: 1000,\n    background: 'rgba(0,0,0,.5)',\n  },\n  content: {\n    overflow: 'visible',\n    color: 'black',\n    background: 'none',\n    border: 0,\n    padding: 0,\n    right: 'calc(2vw + 10px)',\n    top: 'calc(2vw + 10px)',\n    left: 'calc(2vw + 10px)',\n    bottom: 'calc(2vw + 10px)',\n  },\n}\n\nconst useScrollBodyLock = () => {\n  const lock = () => {\n    if (isMobile()) {\n      const scrollY = `${window.scrollY}px`\n      const body = document.body\n      body.style.position = 'fixed'\n      body.style.top = `-${scrollY}`\n      return\n    }\n  }\n\n  const unlock = () => {\n    if (isMobile()) {\n      const body = document.body\n      const scrollY = body.style.top\n      const parsedScrollY = parseInt(scrollY || '0') * -1\n\n      body.style.position = ''\n      body.style.top = ''\n\n      if (parsedScrollY) {\n        window.scrollTo(0, parseInt(scrollY || '0') * -1)\n      }\n      return\n    }\n  }\n\n  return { lock, unlock }\n}\n\nexport default memo(({ close, id }) => {\n  const { lock, unlock } = useScrollBodyLock()\n\n  return (\n    <Modal\n      onAfterOpen={lock}\n      onAfterClose={unlock}\n      style={style}\n      onRequestClose={close}\n      isOpen={!!id}\n    >\n      <CloseBtn onClick={close}>\n        <span>close</span>\n      </CloseBtn>\n\n      {id && (\n        <Suspense fallback={<Loader />}>\n          <Loader>\n            <EmbedComponent id={id} />\n          </Loader>\n        </Suspense>\n      )}\n    </Modal>\n  )\n})\n"
  },
  {
    "path": "src/components/Nav.js",
    "content": "import React, { memo } from 'react'\nimport Link from 'next/link'\nimport { useRouter } from 'next/router'\nimport Badge from './Badge'\n\nexport default memo(({ themeToggler }) => {\n  const router = useRouter()\n\n  return (\n    <nav>\n      <Link href=\"/\">\n        <a aria-current={router.asPath == '/' ? 'page' : undefined}>\n          You Might Not Need\n        </a>\n      </Link>\n      <Link href=\"/lodash\">\n        <a aria-current={router.asPath == '/lodash' ? 'page' : undefined}>\n          lodash\n        </a>\n      </Link>\n      <Link href=\"/date-fns\">\n        <a aria-current={router.asPath == '/date-fns' ? 'page' : undefined}>\n          date-fns\n        </a>\n      </Link>\n      <Link href=\"/css\">\n        <a aria-current={router.asPath == '/css' ? 'page' : undefined}>css</a>\n      </Link>\n\n      <button onClick={themeToggler}>toggle dark mode</button>\n      <Badge />\n    </nav>\n  )\n})\n"
  },
  {
    "path": "src/components/Page.js",
    "content": "import React, { Fragment } from 'react'\nimport Head from 'next/head'\nimport Content from './ContentBlock'\nimport Footer from './Footer'\n\nexport default ({ content, title, children, footer, siteRoot }) => (\n  <Fragment>\n    <Head>\n      <title>{title}</title>\n      <meta name=\"msvalidate.01\" content=\"0B159474AD5BF3967C81DAEA4C4F9F2B\" />\n      <meta\n        name=\"description\"\n        content='A collection of \"You might not need ${something}\" resources'\n      />\n      <meta property=\"og:image\" content={`${siteRoot}/share.jpg`} />\n    </Head>\n    <Content dangerouslySetInnerHTML={{ __html: content }} />\n    {children}\n    <Footer footer={footer} />\n  </Fragment>\n)\n"
  },
  {
    "path": "src/components/ResponsiveVideo.js",
    "content": "import React from 'react'\nimport styled from 'styled-components'\nimport Content from './ContentBlock'\n\nconst VideoContainer = styled.div`\n  margin: auto;\n  position: relative;\n  padding-bottom: 56.25%;\n  padding-top: 35px;\n  height: 0;\n  overflow: hidden;\n\n  iframe {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n  }\n`\n\nexport default ({ title, embedUrl }) => (\n  <Content>\n    <VideoContainer>\n      <iframe\n        title={title}\n        width=\"560\"\n        height=\"315\"\n        src={embedUrl}\n        frameBorder=\"0\"\n        allowFullScreen=\"\"\n      />\n    </VideoContainer>\n  </Content>\n)\n"
  },
  {
    "path": "src/components/Search.js",
    "content": "import React from 'react'\nimport styled from 'styled-components'\n\nconst Input = styled.input`\n  width: 100%;\n  padding: 0.5em;\n  font-size: 120%;\n`\n\nexport default props => <Input placeholder=\"Search...\" {...props} />\n"
  },
  {
    "path": "src/components/ShowTests.js",
    "content": "import React, { memo } from 'react'\nimport styled from 'styled-components'\n\nconst ShowTests = styled.div`\n  text-align: right;\n`\n\nexport default memo(({ onChange, checked }) => (\n  <ShowTests>\n    <label htmlFor=\"showTests\">\n      Show tests?{' '}\n      <input\n        id=\"showTests\"\n        type=\"checkbox\"\n        onChange={onChange}\n        checked={checked}\n      />\n    </label>\n  </ShowTests>\n))\n"
  },
  {
    "path": "src/components/Spec.js",
    "content": "import React from 'react'\nimport styled from 'styled-components'\nimport Hightlight from 'react-highlight/lib/optimized'\nimport Heading from './Heading'\n\nconst Tests = styled.div`\n  padding-bottom: 4em;\n\n  code {\n    display: block;\n    padding: 15px;\n    background: var(--custom-bk-code);\n    border: 0;\n    border-left: 3px solid var(--nc-lk-1);\n    border-radius: 0;\n  }\n`\n\nexport default ({ code }) => (\n  <Tests>\n    <Heading hierarchy=\"4\">Test</Heading>\n    <Hightlight className=\"javascript\">{code}</Hightlight>\n  </Tests>\n)\n"
  },
  {
    "path": "src/content/.eslintrc",
    "content": "{\n  \"rules\": {\n    \"no-console\": 0\n  }\n}\n"
  },
  {
    "path": "src/content/css.md",
    "content": "# YOU MIGHT NOT NEED **CSS**\n\nSorry, this was clickbait.\n\nThis topic polarised the community in the last few years; you might have landed here either excited or frustrated – in which case I recommend reading [Why is CSS Frustrating?](https://css-tricks.com/why-is-css-frustrating/)\n\nAll I can offer is this talk, which helped me understand where some of the following [experiments](https://github.com/MicheleBertoli/css-in-js) came from. Arguably, some of the solutions out there aren't suitable for most use cases. But having a sense of why people invested in them and what problems they were trying to solve could prove helpful.\n"
  },
  {
    "path": "src/content/date-fns/00-generic/closestIndexTo/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/closestIndexTo\nimport { closestIndexTo } from 'date-fns'\n\n// Which date is closer to 6 September 2015?\nconst dateToCompare = new Date(2015, 8, 6)\nconst datesArray = [\n  new Date(2015, 0, 1),\n  new Date(2016, 0, 1),\n  new Date(2017, 0, 1),\n]\n\nmodule.exports = closestIndexTo(dateToCompare, datesArray)\n// => 1\n"
  },
  {
    "path": "src/content/date-fns/00-generic/closestIndexTo/notes.md",
    "content": "Return an index of the closest date from the array comparing to the given date."
  },
  {
    "path": "src/content/date-fns/00-generic/closestIndexTo/spec.js",
    "content": "const expected = 1\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('closestIndexTo', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/00-generic/closestIndexTo/vanilla.js",
    "content": "const closestIndexTo = (dateToCompare, datesArray) => {\n  const distances = datesArray.map(date => Math.abs(date - dateToCompare))\n  return distances.indexOf(Math.min(...distances))\n}\n\n// Which date is closer to 6 September 2015?\nconst dateToCompare = new Date(2015, 8, 6)\nconst datesArray = [\n  new Date(2015, 0, 1),\n  new Date(2016, 0, 1),\n  new Date(2017, 0, 1),\n]\nmodule.exports = closestIndexTo(dateToCompare, datesArray)\n// => 1\n"
  },
  {
    "path": "src/content/date-fns/00-generic/closestTo/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/closestTo\nimport { closestTo } from 'date-fns'\n\n// Which date is closer to 6 September 2015: 1 January 2000 or 1 January 2030?\nconst dateToCompare = new Date(2015, 8, 6)\nmodule.exports = closestTo(dateToCompare, [\n  new Date(2000, 0, 1),\n  new Date(2030, 0, 1),\n])\n// => Tue Jan 01 2030 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/00-generic/closestTo/notes.md",
    "content": "Return a date from the array closest to the given date."
  },
  {
    "path": "src/content/date-fns/00-generic/closestTo/spec.js",
    "content": "const expected = new Date(2030, 0, 1)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('closestTo', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/00-generic/closestTo/vanilla.js",
    "content": "const closestTo = (dateToCompare, datesArray) => {\n  const distances = datesArray.map(date => Math.abs(date - dateToCompare))\n  return datesArray[distances.indexOf(Math.min(...distances))]\n}\n\n// Which date is closer to 6 September 2015: 1 January 2000 or 1 January 2030?\nconst dateToCompare = new Date(2015, 8, 6)\nmodule.exports = closestTo(dateToCompare, [\n  new Date(2000, 0, 1),\n  new Date(2030, 0, 1),\n])\n// => Tue Jan 01 2030 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/00-generic/compareAsc/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/compareAsc\nimport { compareAsc } from 'date-fns'\n\n// Compare 11 February 1987 and 11 February 1987:\nexports.equal = compareAsc(new Date(1987, 1, 11), new Date(1987, 1, 11))\n// => 0\n\n// Compare 11 February 1987 and 10 July 1989:\nexports.compare = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n// => -1\n\n// Sort the array of dates:\nexports.sort = [\n  new Date(1995, 6, 2),\n  new Date(1987, 1, 11),\n  new Date(1989, 6, 10),\n].sort(compareAsc)\n// => [\n//   Wed Feb 11 1987 00:00:00,\n//   Mon Jul 10 1989 00:00:00,\n//   Sun Jul 02 1995 00:00:00\n// ]\n"
  },
  {
    "path": "src/content/date-fns/00-generic/compareAsc/notes.md",
    "content": "Compare the two dates and return -1, 0 or 1."
  },
  {
    "path": "src/content/date-fns/00-generic/compareAsc/spec.js",
    "content": "const expected = {\n  compare: -1,\n  equal: 0,\n  sort: [new Date(1987, 1, 11), new Date(1989, 6, 10), new Date(1995, 6, 2)],\n}\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('compareAsc', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/00-generic/compareAsc/vanilla.js",
    "content": "const compareAsc = (dateA, dateB) => {\n  if (dateA.getTime() === dateB.getTime()) return 0\n  return dateA > dateB ? 1 : -1\n}\n\n// Compare 11 February 1987 and 11 February 1987:\nexports.equal = compareAsc(new Date(1987, 1, 11), new Date(1987, 1, 11))\n// => 0\n\n// Compare 11 February 1987 and 10 July 1989:\nexports.compare = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n// => -1\n\n// Sort the array of dates:\nexports.sort = [\n  new Date(1995, 6, 2),\n  new Date(1987, 1, 11),\n  new Date(1989, 6, 10),\n].sort(compareAsc)\n// => [\n//   Wed Feb 11 1987 00:00:00,\n//   Mon Jul 10 1989 00:00:00,\n//   Sun Jul 02 1995 00:00:00\n// ]\n"
  },
  {
    "path": "src/content/date-fns/00-generic/compareDesc/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/compareDesc\nimport { compareDesc } from 'date-fns'\n\n// Compare 11 February 1987 and 11 February 1987:\nexports.equal = compareDesc(new Date(1987, 1, 11), new Date(1987, 1, 11))\n// => 0\n\n// Compare 11 February 1987 and 10 July 1989:\nexports.compare = compareDesc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n// => -1\n\n// Sort the array of dates in reverse chronological order:\nexports.sort = [\n  new Date(1995, 6, 2),\n  new Date(1987, 1, 11),\n  new Date(1989, 6, 10),\n].sort(compareDesc)\n// => [\n//   Sun Jul 02 1995 00:00:00,\n//   Mon Jul 10 1989 00:00:00,\n//   Wed Feb 11 1987 00:00:00\n// ]\n"
  },
  {
    "path": "src/content/date-fns/00-generic/compareDesc/notes.md",
    "content": "Compare the two dates reverse chronologically and return -1, 0 or 1."
  },
  {
    "path": "src/content/date-fns/00-generic/compareDesc/spec.js",
    "content": "const expected = {\n  compare: 1,\n  equal: 0,\n  sort: [new Date(1995, 6, 2), new Date(1989, 6, 10), new Date(1987, 1, 11)],\n}\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('compareDesc', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/00-generic/compareDesc/vanilla.js",
    "content": "const compareDesc = (dateA, dateB) => {\n  if (dateA.getTime() === dateB.getTime()) return 0\n  return dateA > dateB ? -1 : 1\n}\n\n// Compare 11 February 1987 and 11 February 1987:\nexports.equal = compareDesc(new Date(1987, 1, 11), new Date(1987, 1, 11))\n// => 0\n\n// Compare 11 February 1987 and 10 July 1989:\nexports.compare = compareDesc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n// => -1\n\n// Sort the array of dates in reverse chronological order:\nexports.sort = [\n  new Date(1995, 6, 2),\n  new Date(1987, 1, 11),\n  new Date(1989, 6, 10),\n].sort(compareDesc)\n// => [\n//   Sun Jul 02 1995 00:00:00,\n//   Mon Jul 10 1989 00:00:00,\n//   Wed Feb 11 1987 00:00:00\n// ]\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isAfter/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isAfter\nimport { isAfter } from 'date-fns'\n\nexports.before = isAfter(new Date(1987, 6, 10), new Date(1989, 1, 11))\n// => true\n\nexports.equal = isAfter(new Date(1989, 6, 10), new Date(1989, 6, 10))\n// => false\n\nexports.after = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isAfter/notes.md",
    "content": "Is the first date after the second one?"
  },
  {
    "path": "src/content/date-fns/00-generic/isAfter/spec.js",
    "content": "const expected = {\n  before: false,\n  equal: false,\n  after: true,\n}\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isAfter', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isAfter/vanilla.js",
    "content": "const isAfter = (dateA, dateB) => dateA > dateB\n\nexports.before = isAfter(new Date(1987, 6, 10), new Date(1989, 1, 11))\n// => true\n\nexports.equal = isAfter(new Date(1989, 6, 10), new Date(1989, 6, 10))\n// => false\n\nexports.after = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isBefore/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isBefore\nimport { isBefore } from 'date-fns'\n\nexports.before = isBefore(new Date(1987, 6, 10), new Date(1989, 1, 11))\n// => true\n\nexports.equal = isBefore(new Date(1989, 6, 10), new Date(1989, 6, 10))\n// => false\n\nexports.after = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n// => false\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isBefore/notes.md",
    "content": "Is the first date before the second one?"
  },
  {
    "path": "src/content/date-fns/00-generic/isBefore/spec.js",
    "content": "const expected = {\n  before: true,\n  equal: false,\n  after: false,\n}\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isBefore', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isBefore/vanilla.js",
    "content": "const isBefore = (dateA, dateB) => dateA < dateB\n\nexports.before = isBefore(new Date(1987, 6, 10), new Date(1989, 1, 11))\n// => true\n\nexports.equal = isBefore(new Date(1989, 6, 10), new Date(1989, 6, 10))\n// => false\n\nexports.after = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n// => false\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isDate/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isDate\nimport { isDate } from 'date-fns'\n\n// For a valid date:\nexports.valid = isDate(new Date())\n// => true\n\n// For an invalid date:\nexports.invalid = isDate(new Date(NaN))\n// => true\n\n// For some value:\nexports.string = isDate('2014-02-31')\n// => false\n\n// For an object:\nexports.object = isDate({})\n// => false\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isDate/notes.md",
    "content": "Is the given value a date?"
  },
  {
    "path": "src/content/date-fns/00-generic/isDate/spec.js",
    "content": "const expected = {\n  valid: true,\n  invalid: true,\n  string: false,\n  object: false,\n}\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isDate', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isDate/vanilla.js",
    "content": "const isDate = date => date instanceof Date\n\n// For a valid date:\nexports.valid = isDate(new Date())\n// => true\n\n// For an invalid date:\nexports.invalid = isDate(new Date(NaN))\n// => true\n\n// For some value:\nexports.string = isDate('2014-02-31')\n// => false\n\n// For an object:\nexports.object = isDate({})\n// => false\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isEqual/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isEqual\nimport { isEqual } from 'date-fns'\n\n// Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\nexports.notEqual = isEqual(\n  new Date(2014, 6, 2, 6, 30, 45, 0),\n  new Date(2014, 6, 2, 6, 30, 45, 500)\n)\n// => false\n\nexports.equal = isEqual(\n  new Date(2014, 6, 2, 6, 30, 45, 500),\n  new Date(2014, 6, 2, 6, 30, 45, 500)\n)\n// => true\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isEqual/notes.md",
    "content": "Are the given dates equal?"
  },
  {
    "path": "src/content/date-fns/00-generic/isEqual/spec.js",
    "content": "const expected = {\n  equal: true,\n  notEqual: false,\n}\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isEqual', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isEqual/vanilla.js",
    "content": "const isEqual = (dateA, dateB) => dateA.getTime() === dateB.getTime()\n\n// Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\nexports.notEqual = isEqual(\n  new Date(2014, 6, 2, 6, 30, 45, 0),\n  new Date(2014, 6, 2, 6, 30, 45, 500)\n)\n// => false\n\nexports.equal = isEqual(\n  new Date(2014, 6, 2, 6, 30, 45, 500),\n  new Date(2014, 6, 2, 6, 30, 45, 500)\n)\n// => true\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isExists/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isExists\nimport { isExists } from 'date-fns'\n\n// For the valid date:\nexports.valid = isExists(2018, 0, 31)\n// => true\n\n// For the invalid date:\nexports.invalid = isExists(2018, 1, 31)\n// => false\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isExists/notes.md",
    "content": "Is the given date exists?"
  },
  {
    "path": "src/content/date-fns/00-generic/isExists/spec.js",
    "content": "const expected = {\n  valid: true,\n  invalid: false,\n}\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isExists', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isExists/vanilla.js",
    "content": "const isExists = (y, m, d) => {\n  const date = new Date(y, m, d)\n\n  return (\n    date.getDate() === d && date.getMonth() === m && date.getFullYear() === y\n  )\n}\n\n// For the valid date:\nexports.valid = isExists(2018, 0, 31)\n// => true\n\n// For the invalid date:\nexports.invalid = isExists(2018, 1, 31)\n// => false\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isFuture/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isFuture\nimport { isFuture } from 'date-fns'\n\n// If today is 25 September 2014, Is 31 December 2014 in the future?\nexports.future = isFuture(new Date(2014, 11, 31))\n// => true\n\n// If today is 25 September 2014, Is 31 December 1980 in the future?\nexports.past = isFuture(new Date(1980, 11, 31))\n// => false\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isFuture/notes.md",
    "content": "Is the given date in the future?"
  },
  {
    "path": "src/content/date-fns/00-generic/isFuture/spec.js",
    "content": "const expected = {\n  future: true,\n  past: false,\n}\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isFuture', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isFuture/vanilla.js",
    "content": "const isFuture = date => date > new Date()\n\n// Is 31 December 2214 in the future?\nexports.future = isFuture(new Date(2214, 11, 31))\n// => true\n\n// Is 31 December 1980 in the future?\nexports.past = isFuture(new Date(1980, 11, 31))\n// => false\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isPast/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isPast\nimport { isPast } from 'date-fns'\n\n//  If today is 25 September 2014, Is 2 July 2014 in the past?\nexports.past = isPast(new Date(2014, 6, 2))\n// => true\n\n//  If today is 25 September 2014, Is 2 July 2015 in the past?\nexports.future = isPast(new Date(2015, 6, 2))\n// => false\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isPast/notes.md",
    "content": "Is the given date in the past?"
  },
  {
    "path": "src/content/date-fns/00-generic/isPast/spec.js",
    "content": "const expected = {\n  past: true,\n  future: false,\n}\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isPast', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isPast/vanilla.js",
    "content": "const isPast = date => date < new Date()\n\n// Is 2 July 2014 in the past?\nexports.past = isPast(new Date(2014, 6, 2))\n// => true\n\n// Is 2 July 2214 in the past?\nexports.future = isPast(new Date(2214, 6, 2))\n// => false\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isValid/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isValid\nimport { isValid } from 'date-fns'\n\n// For the valid date:\nexports.valid = isValid(new Date(2014, 1, 31))\n// => true\n\n// For the value, convertable into a date:\nexports.convertible = isValid(1393804800000)\n// => true\n\n// For the invalid date:\nexports.invalid = isValid(new Date(''))\n// => false\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isValid/notes.md",
    "content": "Is the given date valid?"
  },
  {
    "path": "src/content/date-fns/00-generic/isValid/spec.js",
    "content": "const expected = {\n  valid: true,\n  convertible: true,\n  invalid: false,\n}\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isValid', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/00-generic/isValid/vanilla.js",
    "content": "/* eslint-disable no-restricted-globals */\nconst isValid = date =>\n  !isNaN((date instanceof Date ? date : new Date(date)).getTime())\n\n// For the valid date:\nexports.valid = isValid(new Date(2014, 1, 31))\n// => true\n\n// For the value, convertable into a date:\nexports.convertible = isValid(1393804800000)\n// => true\n\n// For the invalid date:\nexports.invalid = isValid(new Date(''))\n// => false\n"
  },
  {
    "path": "src/content/date-fns/00-generic/max/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/max\nimport { max } from 'date-fns'\n\n// Which of these dates is the latest?\nmodule.exports = max([\n  new Date(1989, 6, 10),\n  new Date(1987, 1, 11),\n  new Date(1995, 6, 2),\n  new Date(1990, 0, 1),\n])\n// => Sun Jul 02 1995 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/00-generic/max/notes.md",
    "content": "Return the latest of the given dates."
  },
  {
    "path": "src/content/date-fns/00-generic/max/spec.js",
    "content": "const expected = new Date(1995, 6, 2)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('max', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/00-generic/max/vanilla.js",
    "content": "const max = dates => new Date(Math.max(...dates.map(date => date.getTime())))\n\n// Which of these dates is the latest?\nmodule.exports = max([\n  new Date(1989, 6, 10),\n  new Date(1987, 1, 11),\n  new Date(1995, 6, 2),\n  new Date(1990, 0, 1),\n])\n// => Sun Jul 02 1995 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/00-generic/min/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/min\nimport { min } from 'date-fns'\n\n// Which of these dates is the earliest?\nmodule.exports = min([\n  new Date(1989, 6, 10),\n  new Date(1987, 1, 11),\n  new Date(1995, 6, 2),\n  new Date(1990, 0, 1),\n])\n// => Wed Feb 11 1987 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/00-generic/min/notes.md",
    "content": "Return the earliest of the given dates."
  },
  {
    "path": "src/content/date-fns/00-generic/min/spec.js",
    "content": "const expected = new Date(1987, 1, 11)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('min', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/00-generic/min/vanilla.js",
    "content": "const min = dates => new Date(Math.min(...dates.map(date => date.getTime())))\n\n// Which of these dates is the earliest?\nmodule.exports = min([\n  new Date(1989, 6, 10),\n  new Date(1987, 1, 11),\n  new Date(1995, 6, 2),\n  new Date(1990, 0, 1),\n])\n// => Wed Feb 11 1987 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/01-interval/areIntervalsOverlapping/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/areIntervalsOverlapping\nimport { areIntervalsOverlapping } from 'date-fns'\n\nexports.overlapping = areIntervalsOverlapping(\n  { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n  { start: new Date(2014, 0, 17), end: new Date(2014, 0, 21) }\n)\n//=> true\n\nexports.nonOverlapping = areIntervalsOverlapping(\n  { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n  { start: new Date(2014, 0, 21), end: new Date(2014, 0, 22) }\n)\n//=> false\n\nexports.adjacent = areIntervalsOverlapping(\n  { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n  { start: new Date(2014, 0, 20), end: new Date(2014, 0, 24) }\n)\n//=> false\n\nexports.inclusive = areIntervalsOverlapping(\n  { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n  { start: new Date(2014, 0, 20), end: new Date(2014, 0, 24) },\n  { inclusive: true }\n)\n//=> true\n"
  },
  {
    "path": "src/content/date-fns/01-interval/areIntervalsOverlapping/notes.md",
    "content": "Is the given time interval overlapping with another time interval? Adjacent intervals do not count as overlapping unless inclusive is set to true.\n\nResources: [Date#getTime](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime)\n"
  },
  {
    "path": "src/content/date-fns/01-interval/areIntervalsOverlapping/spec.js",
    "content": "const expected = {\n  'adjacent': false,\n  'inclusive': true,\n  'nonOverlapping': false,\n  'overlapping': true,\n}\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('areIntervalsOverlapping', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/01-interval/areIntervalsOverlapping/vanilla.js",
    "content": "const areIntervalsOverlapping = (\n  { start: rxStart, end: rxEnd },\n  { start: ryStart, end: ryEnd },\n  { inclusive } = {}\n) =>\n  !!(\n    (ryStart > rxStart && ryStart < rxEnd) ||\n    (ryEnd > rxStart && ryStart < rxEnd) ||\n    (inclusive && rxEnd.getTime() === ryStart.getTime()) ||\n    (inclusive && ryEnd.getTime() === rxStart.getTime())\n  )\n\nexports.overlapping = areIntervalsOverlapping(\n  { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n  { start: new Date(2014, 0, 17), end: new Date(2014, 0, 21) }\n)\n//=> true\n\nexports.nonOverlapping = areIntervalsOverlapping(\n  { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n  { start: new Date(2014, 0, 21), end: new Date(2014, 0, 22) }\n)\n//=> false\n\nexports.adjacent = areIntervalsOverlapping(\n  { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n  { start: new Date(2014, 0, 20), end: new Date(2014, 0, 30) }\n)\n//=> false\n\nexports.inclusive = areIntervalsOverlapping(\n  { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n  { start: new Date(2014, 0, 20), end: new Date(2014, 0, 24) },\n  { inclusive: true }\n)\n//=> true\n"
  },
  {
    "path": "src/content/date-fns/01-interval/eachDayOfInterval/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/eachDayOfInterval\nimport { eachDayOfInterval } from 'date-fns'\n\nexports.default = eachDayOfInterval({\n  start: new Date(2014, 9, 6),\n  end: new Date(2014, 9, 10),\n})\n//=> [\n//   Mon Oct 06 2014 00:00:00,\n//   Tue Oct 07 2014 00:00:00,\n//   Wed Oct 08 2014 00:00:00,\n//   Thu Oct 09 2014 00:00:00,\n//   Fri Oct 10 2014 00:00:00\n// ]\n\nexports.stepped = eachDayOfInterval(\n  {\n    start: new Date(2014, 9, 6),\n    end: new Date(2014, 9, 10),\n  },\n  { step: 3 }\n)\n\n//=> [\n//   Wed Oct 06 2014 00:00:00,\n//   Mon Oct 09 2014 00:00:00,\n// ]\n"
  },
  {
    "path": "src/content/date-fns/01-interval/eachDayOfInterval/notes.md",
    "content": ""
  },
  {
    "path": "src/content/date-fns/01-interval/eachDayOfInterval/spec.js",
    "content": "const expected = {\n  'default': [\n    new Date(2014, 9, 6).toString(),\n    new Date(2014, 9, 7).toString(),\n    new Date(2014, 9, 8).toString(),\n    new Date(2014, 9, 9).toString(),\n    new Date(2014, 9, 10).toString(),\n  ],\n  'stepped': [new Date(2014, 9, 6).toString(), new Date(2014, 9, 9).toString()],\n}\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('eachDayOfInterval', () => {\n  expect({\n    default: datefns.default.map(a => a.toString()),\n    stepped: datefns.stepped.map(a => a.toString()),\n  }).toEqual(expected)\n  expect({\n    default: plain.default.map(a => a.toString()),\n    stepped: plain.stepped.map(a => a.toString()),\n  }).toEqual(expected)\n})\n"
  },
  {
    "path": "src/content/date-fns/01-interval/eachDayOfInterval/vanilla.js",
    "content": "const eachDayOfInterval = ({ start, end }, { step } = { step: 1 }) => {\n  const retArr = []\n  start.setHours(0, 0, 0, 0)\n  end.setHours(0, 0, 0, 0)\n\n  do {\n    retArr.push(new Date(start.getTime()))\n    start.setDate(start.getDate() + step)\n  } while (start.getTime() <= end.getTime())\n\n  return retArr\n}\n\nexports.default = eachDayOfInterval({\n  start: new Date(2014, 9, 6),\n  end: new Date(2014, 9, 10),\n})\n\n//=> [\n//   Mon Oct 06 2014 00:00:00,\n//   Tue Oct 07 2014 00:00:00,\n//   Wed Oct 08 2014 00:00:00,\n//   Thu Oct 09 2014 00:00:00,\n//   Fri Oct 10 2014 00:00:00\n// ]\n\nexports.stepped = eachDayOfInterval(\n  {\n    start: new Date(2014, 9, 6),\n    end: new Date(2014, 9, 10),\n  },\n  { step: 3 }\n)\n//=> [\n//   Wed Oct 06 2014 00:00:00,\n//   Mon Oct 08 2014 00:00:00,\n// ]\n"
  },
  {
    "path": "src/content/date-fns/01-interval/isWithinInterval/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isWithinInterval\nimport { isWithinInterval } from 'date-fns'\n\nexports.in = isWithinInterval(new Date(2014, 0, 3), {\n  start: new Date(2014, 0, 1),\n  end: new Date(2014, 0, 7),\n})\n//=> true\n\nexports.out = isWithinInterval(new Date(2014, 0, 10), {\n  start: new Date(2014, 0, 1),\n  end: new Date(2014, 0, 7),\n})\n//=> false\n\nconst date = new Date()\n\nexports.start = isWithinInterval(date, {\n  start: date,\n  end: new Date(2500, 0, 1),\n})\n// => true\n\nexports.end = isWithinInterval(date, {\n  start: new Date(2020, 0, 1),\n  end: date,\n})\n// => true\n"
  },
  {
    "path": "src/content/date-fns/01-interval/isWithinInterval/notes.md",
    "content": ""
  },
  {
    "path": "src/content/date-fns/01-interval/isWithinInterval/spec.js",
    "content": "const expected = { 'in': true, 'out': false, 'start': true, 'end': true }\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isWithinInterval', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/01-interval/isWithinInterval/vanilla.js",
    "content": "const isWithinInterval = (date, { start, end }) =>\n  date.getTime() >= start.getTime() && date.getTime() <= end.getTime()\n\nexports.in = isWithinInterval(new Date(2014, 0, 3), {\n  start: new Date(2014, 0, 1),\n  end: new Date(2014, 0, 7),\n})\n//=> true\n\nexports.out = isWithinInterval(new Date(2014, 0, 10), {\n  start: new Date(2014, 0, 1),\n  end: new Date(2014, 0, 7),\n})\n//=> false\n\n// new Date is mocked as\n// new Date(2014, 8, 25, 18, 30, 15, 500)\nconst date = new Date()\n\nexports.start = isWithinInterval(date, {\n  start: date,\n  end: new Date(2020, 0, 1),\n})\n// => true\n\nexports.end = isWithinInterval(date, {\n  start: new Date(2000, 0, 1),\n  end: date,\n})\n// => true\n"
  },
  {
    "path": "src/content/date-fns/01-timestamp/fromUnixTime/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/fromUnixTime\nimport { fromUnixTime } from 'date-fns'\n\n// Create the date 29 February 2012 11:45:05:\nmodule.exports = fromUnixTime(1330515905)\n// => Wed Feb 29 2012 11:45:05\n"
  },
  {
    "path": "src/content/date-fns/01-timestamp/fromUnixTime/notes.md",
    "content": "Create a date from a Unix timestamp."
  },
  {
    "path": "src/content/date-fns/01-timestamp/fromUnixTime/spec.js",
    "content": "const expected = new Date(Date.UTC(2012, 1, 29, 11, 45, 5))\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('fromUnixTime', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/01-timestamp/fromUnixTime/vanilla.js",
    "content": "const fromUnixTime = unixTime => new Date(unixTime * 1000)\n\n// Create the date 29 February 2012 11:45:05:\nmodule.exports = fromUnixTime(1330515905)\n// => Wed Feb 29 2012 11:45:05\n"
  },
  {
    "path": "src/content/date-fns/01-timestamp/getTime/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/getTime\nimport { getTime } from 'date-fns'\n\n// Get the timestamp of 29 February 2012 11:45:05.123:\nmodule.exports = getTime(new Date(Date.UTC(2012, 1, 29, 11, 45, 5, 123)))\n// => 1330515905123\n"
  },
  {
    "path": "src/content/date-fns/01-timestamp/getTime/notes.md",
    "content": "Get the milliseconds timestamp of the given date."
  },
  {
    "path": "src/content/date-fns/01-timestamp/getTime/spec.js",
    "content": "const expected = 1330515905123\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('getTime', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/01-timestamp/getTime/vanilla.js",
    "content": "const getTime = date => date.getTime()\n\n// Get the timestamp of 29 February 2012 11:45:05.123:\nmodule.exports = getTime(new Date(Date.UTC(2012, 1, 29, 11, 45, 5, 123)))\n// => 1330515905123\n"
  },
  {
    "path": "src/content/date-fns/01-timestamp/getUnixTime/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/getUnixTime\nimport { getUnixTime } from 'date-fns'\n\n// Get the timestamp of 29 February 2012 11:45:05 CET:\nmodule.exports = getUnixTime(new Date(Date.UTC(2012, 1, 29, 11, 45, 5)))\n// => 1330515905\n"
  },
  {
    "path": "src/content/date-fns/01-timestamp/getUnixTime/notes.md",
    "content": "Get the seconds timestamp of the given date."
  },
  {
    "path": "src/content/date-fns/01-timestamp/getUnixTime/spec.js",
    "content": "const expected = 1330515905\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('getUnixTime', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/01-timestamp/getUnixTime/vanilla.js",
    "content": "const getUnixTime = date => Math.trunc(date / 1000)\n\n// Get the timestamp of 29 February 2012 11:45:05 CET:\nmodule.exports = getUnixTime(new Date(Date.UTC(2012, 1, 29, 11, 45, 5)))\n// => 1330512305\n"
  },
  {
    "path": "src/content/date-fns/02-millisecond/addMilliseconds/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/addMilliseconds\nimport { addMilliseconds } from 'date-fns'\n\n// Add 750 milliseconds to 10 July 2014 12:45:30.000:\nmodule.exports = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n// => Thu Jul 10 2014 12:45:30.750\n"
  },
  {
    "path": "src/content/date-fns/02-millisecond/addMilliseconds/notes.md",
    "content": "Add the specified number of milliseconds to the given date."
  },
  {
    "path": "src/content/date-fns/02-millisecond/addMilliseconds/spec.js",
    "content": "const expected = new Date(2014, 6, 10, 12, 45, 30, 750)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('addMilliseconds', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/02-millisecond/addMilliseconds/vanilla.js",
    "content": "const addMilliseconds = (date, ms) => {\n  date.setMilliseconds(date.getMilliseconds() + ms)\n  return date\n}\n\n// Add 750 milliseconds to 10 July 2014 12:45:30.000:\nmodule.exports = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n// => Thu Jul 10 2014 12:45:30.750\n"
  },
  {
    "path": "src/content/date-fns/02-millisecond/differenceInMilliseconds/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/differenceInMilliseconds\nimport { differenceInMilliseconds } from 'date-fns'\n\n// How many milliseconds are between\n// 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\nmodule.exports = differenceInMilliseconds(\n  new Date(2014, 6, 2, 12, 30, 21, 700),\n  new Date(2014, 6, 2, 12, 30, 20, 600)\n)\n// => 1100\n"
  },
  {
    "path": "src/content/date-fns/02-millisecond/differenceInMilliseconds/notes.md",
    "content": "Get the number of milliseconds between the given dates."
  },
  {
    "path": "src/content/date-fns/02-millisecond/differenceInMilliseconds/spec.js",
    "content": "const expected = 1100\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('differenceInMilliseconds', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/02-millisecond/differenceInMilliseconds/vanilla.js",
    "content": "const differenceInMilliseconds = (dateA, dateB) => dateA - dateB\n\n// How many milliseconds are between\n// 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\nmodule.exports = differenceInMilliseconds(\n  new Date(2014, 6, 2, 12, 30, 21, 700),\n  new Date(2014, 6, 2, 12, 30, 20, 600)\n)\n// => 1100\n"
  },
  {
    "path": "src/content/date-fns/02-millisecond/getMilliseconds/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/getMilliseconds\nimport { getMilliseconds } from 'date-fns'\n\n// Get the milliseconds of 29 February 2012 11:45:05.123:\nmodule.exports = getMilliseconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n// => 123\n"
  },
  {
    "path": "src/content/date-fns/02-millisecond/getMilliseconds/notes.md",
    "content": "Get the milliseconds of the given date."
  },
  {
    "path": "src/content/date-fns/02-millisecond/getMilliseconds/spec.js",
    "content": "const expected = 123\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('getMilliseconds', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/02-millisecond/getMilliseconds/vanilla.js",
    "content": "const getMilliseconds = date => date.getMilliseconds()\n\n// Get the milliseconds of 29 February 2012 11:45:05.123:\nmodule.exports = getMilliseconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n// => 123\n"
  },
  {
    "path": "src/content/date-fns/02-millisecond/setMilliseconds/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/setMilliseconds\nimport { setMilliseconds } from 'date-fns'\n\n// Set 300 milliseconds to 1 September 2014 11:30:40.500:\nmodule.exports = setMilliseconds(new Date(2014, 8, 1, 11, 30, 40, 500), 300)\n// => Mon Sep 01 2014 11:30:40.300\n"
  },
  {
    "path": "src/content/date-fns/02-millisecond/setMilliseconds/notes.md",
    "content": "Set the milliseconds to the given date."
  },
  {
    "path": "src/content/date-fns/02-millisecond/setMilliseconds/spec.js",
    "content": "const expected = new Date(2014, 8, 1, 11, 30, 40, 300)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('setMilliseconds', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/02-millisecond/setMilliseconds/vanilla.js",
    "content": "const setMilliseconds = (date, ms) => {\n  date.setMilliseconds(ms)\n  return date\n}\n\n// Set 300 milliseconds to 1 September 2014 11:30:40.500:\nmodule.exports = setMilliseconds(new Date(2014, 8, 1, 11, 30, 40, 500), 300)\n// => Mon Sep 01 2014 11:30:40.300\n"
  },
  {
    "path": "src/content/date-fns/02-millisecond/subMilliseconds/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/subMilliseconds\nimport { subMilliseconds } from 'date-fns'\n\n// Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\nmodule.exports = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n// => Thu Jul 10 2014 12:45:29.250\n"
  },
  {
    "path": "src/content/date-fns/02-millisecond/subMilliseconds/notes.md",
    "content": "Subtract the specified number of milliseconds from the given date."
  },
  {
    "path": "src/content/date-fns/02-millisecond/subMilliseconds/spec.js",
    "content": "const expected = new Date(2014, 6, 10, 12, 45, 29, 250)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('subMilliseconds', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/02-millisecond/subMilliseconds/vanilla.js",
    "content": "const subMilliseconds = (date, ms) => {\n  date.setMilliseconds(date.getMilliseconds() - ms)\n  return date\n}\n\n// Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\nmodule.exports = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n// => Thu Jul 10 2014 12:45:29.250\n"
  },
  {
    "path": "src/content/date-fns/02-second/addSeconds/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/addSeconds\nimport { addSeconds } from 'date-fns'\n\n// Add 30 seconds to 10 July 2014 12:45:00:\nmodule.exports = addSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)\n// => Thu Jul 10 2014 12:45:30\n"
  },
  {
    "path": "src/content/date-fns/02-second/addSeconds/notes.md",
    "content": "Add the specified number of seconds to the given date."
  },
  {
    "path": "src/content/date-fns/02-second/addSeconds/spec.js",
    "content": "const expected = new Date(2014, 6, 10, 12, 45, 30)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('addSeconds', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/02-second/addSeconds/vanilla.js",
    "content": "const addSeconds = (date, s) => {\n  date.setSeconds(date.getSeconds() + s)\n  return date\n}\n\n// Add 30 seconds to 10 July 2014 12:45:00:\nmodule.exports = addSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)\n// => Thu Jul 10 2014 12:45:30\n"
  },
  {
    "path": "src/content/date-fns/02-second/differenceInSeconds/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/differenceInSeconds\nimport { differenceInSeconds } from 'date-fns'\n\n// How many seconds are between\n// 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\nmodule.exports = differenceInSeconds(\n  new Date(2014, 6, 2, 12, 30, 20, 0),\n  new Date(2014, 6, 2, 12, 30, 7, 999)\n)\n// => 12\n"
  },
  {
    "path": "src/content/date-fns/02-second/differenceInSeconds/notes.md",
    "content": "Get the number of seconds between the given dates."
  },
  {
    "path": "src/content/date-fns/02-second/differenceInSeconds/spec.js",
    "content": "const expected = 12\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('differenceInSeconds', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/02-second/differenceInSeconds/vanilla.js",
    "content": "const differenceInSeconds = (dateA, dateB) => Math.trunc((dateA - dateB) / 1000)\n\n// How many seconds are between\n// 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\nmodule.exports = differenceInSeconds(\n  new Date(2014, 6, 2, 12, 30, 20, 0),\n  new Date(2014, 6, 2, 12, 30, 7, 999)\n)\n// => 12\n"
  },
  {
    "path": "src/content/date-fns/02-second/endOfSecond/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/endOfSecond\nimport { endOfSecond } from 'date-fns'\n\n// The end of a second for 1 December 2014 22:15:45.400:\nmodule.exports = endOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n// => Mon Dec 01 2014 22:15:45.999\n"
  },
  {
    "path": "src/content/date-fns/02-second/endOfSecond/notes.md",
    "content": "Return the end of a second for the given date."
  },
  {
    "path": "src/content/date-fns/02-second/endOfSecond/spec.js",
    "content": "const expected = new Date(2014, 11, 1, 22, 15, 45, 999)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('endOfSecond', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/02-second/endOfSecond/vanilla.js",
    "content": "const endOfSecond = date => new Date(Math.ceil(date / 1000) * 1000 - 1)\n\n// The end of a second for 1 December 2014 22:15:45.400:\nmodule.exports = endOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n// => Mon Dec 01 2014 22:15:45.999\n"
  },
  {
    "path": "src/content/date-fns/02-second/getSeconds/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/getSeconds\nimport { getSeconds } from 'date-fns'\n\n// Get the seconds of 29 February 2012 11:45:05.123:\nmodule.exports = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n// => 5\n"
  },
  {
    "path": "src/content/date-fns/02-second/getSeconds/notes.md",
    "content": "Get the seconds of the given date."
  },
  {
    "path": "src/content/date-fns/02-second/getSeconds/spec.js",
    "content": "const expected = 5\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('getSeconds', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/02-second/getSeconds/vanilla.js",
    "content": "const getSeconds = date => date.getSeconds()\n\n// Get the seconds of 29 February 2012 11:45:05.123:\nmodule.exports = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n// => 5\n"
  },
  {
    "path": "src/content/date-fns/02-second/isSameSecond/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isSameSecond\nimport { isSameSecond } from 'date-fns'\n\n// Are 4 September 2014 06:30:15.000 and 4 September 2014 06:30.15.500\n// in the same second?\nmodule.exports = isSameSecond(\n  new Date(2014, 8, 4, 6, 30, 15),\n  new Date(2014, 8, 4, 6, 30, 15, 500)\n)\n// => true\n"
  },
  {
    "path": "src/content/date-fns/02-second/isSameSecond/notes.md",
    "content": "Are the given dates in the same second?"
  },
  {
    "path": "src/content/date-fns/02-second/isSameSecond/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isSameSecond', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/02-second/isSameSecond/vanilla.js",
    "content": "const isSameSecond = (dateA, dateB) =>\n  Math.abs(dateA - dateB) < 1000 && dateA.getSeconds() === dateB.getSeconds()\n\n// Are 4 September 2014 06:30:15.000 and 4 September 2014 06:30.15.500\n// in the same second?\nmodule.exports = isSameSecond(\n  new Date(2014, 8, 4, 6, 30, 15, 0),\n  new Date(2014, 8, 4, 6, 30, 15, 500)\n)\n// => true\n"
  },
  {
    "path": "src/content/date-fns/02-second/isThisSecond/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isThisSecond\nimport { isThisSecond } from 'date-fns'\n\n// If now is 25 September 2014 18:30:15.500,\n// is 25 September 2014 18:30:15.000 in this second?\nmodule.exports = isThisSecond(new Date(2014, 8, 25, 18, 30, 15))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/02-second/isThisSecond/notes.md",
    "content": "Is the given date in the same second as the current date?"
  },
  {
    "path": "src/content/date-fns/02-second/isThisSecond/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isThisSecond', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/02-second/isThisSecond/vanilla.js",
    "content": "const isThisSecond = (dateA, dateB = new Date()) =>\n  Math.abs(dateA - dateB) < 1000 && dateA.getSeconds() === dateB.getSeconds()\n\n// If now is 25 September 2014 18:30:15.500,\n// is 25 September 2014 18:30:15.000 in this second?\nmodule.exports = isThisSecond(new Date(2014, 8, 25, 18, 30, 15))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/02-second/setSeconds/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/setSeconds\nimport { setSeconds } from 'date-fns'\n\n// Set 45 seconds to 1 September 2014 11:30:40:\nmodule.exports = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n// => Mon Sep 01 2014 11:30:45\n"
  },
  {
    "path": "src/content/date-fns/02-second/setSeconds/notes.md",
    "content": "Set the seconds to the given date."
  },
  {
    "path": "src/content/date-fns/02-second/setSeconds/spec.js",
    "content": "const expected = new Date(2014, 8, 1, 11, 30, 45)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('setSeconds', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/02-second/setSeconds/vanilla.js",
    "content": "const setSeconds = (date, s) => {\n  date.setSeconds(s)\n  return date\n}\n\n// Set 45 seconds to 1 September 2014 11:30:40:\nmodule.exports = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n// => Mon Sep 01 2014 11:30:45\n"
  },
  {
    "path": "src/content/date-fns/02-second/startOfSecond/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/startOfSecond\nimport { startOfSecond } from 'date-fns'\n\n// The start of a second for 1 December 2014 22:15:45.400:\nmodule.exports = startOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n// => Mon Dec 01 2014 22:15:45.000\n"
  },
  {
    "path": "src/content/date-fns/02-second/startOfSecond/notes.md",
    "content": "Return the start of a second for the given date."
  },
  {
    "path": "src/content/date-fns/02-second/startOfSecond/spec.js",
    "content": "const expected = new Date(2014, 11, 1, 22, 15, 45)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('startOfSecond', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/02-second/startOfSecond/vanilla.js",
    "content": "const startOfSecond = date => new Date(Math.floor(date / 1000) * 1000)\n\n// The start of a second for 1 December 2014 22:15:45.400:\nmodule.exports = startOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n// => Mon Dec 01 2014 22:15:45.000\n"
  },
  {
    "path": "src/content/date-fns/02-second/subSeconds/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/subSeconds\nimport { subSeconds } from 'date-fns'\n\n// Subtract 30 seconds from 10 July 2014 12:45:00:\nmodule.exports = subSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)\n// => Thu Jul 10 2014 12:44:30\n"
  },
  {
    "path": "src/content/date-fns/02-second/subSeconds/notes.md",
    "content": "Subtract the specified number of seconds from the given date."
  },
  {
    "path": "src/content/date-fns/02-second/subSeconds/spec.js",
    "content": "const expected = new Date(2014, 6, 10, 12, 44, 30)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('subSeconds', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/02-second/subSeconds/vanilla.js",
    "content": "const subSeconds = (date, s) => {\n  date.setSeconds(date.getSeconds() - s)\n  return date\n}\n\n// Subtract 30 seconds from 10 July 2014 12:45:00:\nmodule.exports = subSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)\n// => Thu Jul 10 2014 12:44:30\n"
  },
  {
    "path": "src/content/date-fns/03-minute/addMinutes/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/addMinutes\nimport { addMinutes } from 'date-fns'\n\n// Add 30 minutes to 10 July 2014 12:00:00:\nmodule.exports = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n// => Thu Jul 10 2014 12:30:00\n"
  },
  {
    "path": "src/content/date-fns/03-minute/addMinutes/notes.md",
    "content": "Add the specified number of minutes to the given date."
  },
  {
    "path": "src/content/date-fns/03-minute/addMinutes/spec.js",
    "content": "const expected = new Date(2014, 6, 10, 12, 30)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('addMinutes', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/03-minute/addMinutes/vanilla.js",
    "content": "const addMinutes = (date, m) => {\n  date.setMinutes(date.getMinutes() + m)\n  return date\n}\n\n// Add 30 minutes to 10 July 2014 12:00:00:\nmodule.exports = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n// => Thu Jul 10 2014 12:30:00\n"
  },
  {
    "path": "src/content/date-fns/03-minute/differenceInMinutes/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/differenceInMinutes\nimport { differenceInMinutes } from 'date-fns'\n\n// How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?\nexports.positive = differenceInMinutes(\n  new Date(2014, 6, 2, 12, 20, 0),\n  new Date(2014, 6, 2, 12, 7, 59)\n)\n// => 12\n\n// How many minutes are from 10:01:59 to 10:00:00\nexports.negative = differenceInMinutes(\n  new Date(2000, 0, 1, 10, 0, 0),\n  new Date(2000, 0, 1, 10, 1, 59)\n)\n// => -1\n"
  },
  {
    "path": "src/content/date-fns/03-minute/differenceInMinutes/notes.md",
    "content": "Get the number of minutes between the given dates."
  },
  {
    "path": "src/content/date-fns/03-minute/differenceInMinutes/spec.js",
    "content": "const expected = {\n  positive: 12,\n  negative: -1,\n}\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('differenceInMinutes', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/03-minute/differenceInMinutes/vanilla.js",
    "content": "const differenceInMinutes = (dateA, dateB) =>\n  Math.trunc((dateA - dateB) / (1000 * 60))\n\n// How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?\nexports.positive = differenceInMinutes(\n  new Date(2014, 6, 2, 12, 20, 0),\n  new Date(2014, 6, 2, 12, 7, 59)\n)\n// => 12\n\n// How many minutes are from 10:01:59 to 10:00:00\nexports.negative = differenceInMinutes(\n  new Date(2000, 0, 1, 10, 0, 0),\n  new Date(2000, 0, 1, 10, 1, 59)\n)\n// => -1\n"
  },
  {
    "path": "src/content/date-fns/03-minute/endOfMinute/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/endOfMinute\nimport { endOfMinute } from 'date-fns'\n\n// The end of a minute for 1 December 2014 22:15:45.400:\nmodule.exports = endOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n// => Mon Dec 01 2014 22:15:59.999\n"
  },
  {
    "path": "src/content/date-fns/03-minute/endOfMinute/notes.md",
    "content": "Return the end of a minute for the given date."
  },
  {
    "path": "src/content/date-fns/03-minute/endOfMinute/spec.js",
    "content": "const expected = new Date(2014, 11, 1, 22, 15, 59, 999)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('endOfMinute', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/03-minute/endOfMinute/vanilla.js",
    "content": "const endOfMinute = date =>\n  new Date(Math.ceil(date / (1000 * 60)) * 1000 * 60 - 1)\n\n// The end of a minute for 1 December 2014 22:15:45.400:\nmodule.exports = endOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n// => Mon Dec 01 2014 22:15:59.999\n"
  },
  {
    "path": "src/content/date-fns/03-minute/getMinutes/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/getMinutes\nimport { getMinutes } from 'date-fns'\n\n// Get the minutes of 29 February 2012 11:45:05:\nmodule.exports = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n// => 45\n"
  },
  {
    "path": "src/content/date-fns/03-minute/getMinutes/notes.md",
    "content": "Get the minutes of the given date."
  },
  {
    "path": "src/content/date-fns/03-minute/getMinutes/spec.js",
    "content": "const expected = 45\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('getMinutes', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/03-minute/getMinutes/vanilla.js",
    "content": "const getMinutes = date => date.getMinutes()\n\n// Get the minutes of 29 February 2012 11:45:05:\nmodule.exports = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n// => 45\n"
  },
  {
    "path": "src/content/date-fns/03-minute/isSameMinute/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isSameMinute\nimport { isSameMinute } from 'date-fns'\n\n// Are 4 September 2014 06:30:00 and 4 September 2014 06:30:15\n// in the same minute?\nmodule.exports = isSameMinute(\n  new Date(2014, 8, 4, 6, 30),\n  new Date(2014, 8, 4, 6, 30, 15)\n)\n// => true\n"
  },
  {
    "path": "src/content/date-fns/03-minute/isSameMinute/notes.md",
    "content": "Are the given dates in the same minute?"
  },
  {
    "path": "src/content/date-fns/03-minute/isSameMinute/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isSameMinute', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/03-minute/isSameMinute/vanilla.js",
    "content": "const isSameMinute = (dateA, dateB) =>\n  Math.abs(dateA - dateB) < 1000 * 60 &&\n  dateA.getMinutes() === dateB.getMinutes()\n\n// Are 4 September 2014 06:30:00 and 4 September 2014 06:30:15\n// in the same minute?\nmodule.exports = isSameMinute(\n  new Date(2014, 8, 4, 6, 30),\n  new Date(2014, 8, 4, 6, 30, 15)\n)\n// => true\n"
  },
  {
    "path": "src/content/date-fns/03-minute/isThisMinute/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isThisMinute\nimport { isThisMinute } from 'date-fns'\n\n// If now is 25 September 2014 18:30:15.500,\n// is 25 September 2014 18:30:00 in this minute?\nmodule.exports = isThisMinute(new Date(2014, 8, 25, 18, 30))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/03-minute/isThisMinute/notes.md",
    "content": "Is the given date in the same minute as the current date?"
  },
  {
    "path": "src/content/date-fns/03-minute/isThisMinute/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isThisMinute', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/03-minute/isThisMinute/vanilla.js",
    "content": "const isThisMinute = (dateA, dateB = new Date()) =>\n  Math.abs(dateA - dateB) < 1000 * 60 &&\n  dateA.getMinutes() === dateB.getMinutes()\n\n// If now is 25 September 2014 18:30:15.500,\n// is 25 September 2014 18:30:00 in this minute?\nmodule.exports = isThisMinute(new Date(2014, 8, 25, 18, 30))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/03-minute/roundToNearestMinutes/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/roundToNearestMinutes\nimport { roundToNearestMinutes } from 'date-fns'\n\n// Round 10 July 2014 12:12:34 to nearest minute:\nmodule.exports = roundToNearestMinutes(new Date(2014, 6, 10, 12, 12, 34))\n// => Thu Jul 10 2014 12:13:00\n"
  },
  {
    "path": "src/content/date-fns/03-minute/roundToNearestMinutes/notes.md",
    "content": "Rounds the given date to the nearest minute"
  },
  {
    "path": "src/content/date-fns/03-minute/roundToNearestMinutes/spec.js",
    "content": "const expected = new Date(2014, 6, 10, 12, 13)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('roundToNearestMinutes', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/03-minute/roundToNearestMinutes/vanilla.js",
    "content": "const roundToNearestMinutes = date =>\n  new Date(Math.round(date / (1000 * 60)) * 1000 * 60)\n\n// Round 10 July 2014 12:12:34 to nearest minute:\nmodule.exports = roundToNearestMinutes(new Date(2014, 6, 10, 12, 12, 34))\n// => Thu Jul 10 2014 12:13:00\n"
  },
  {
    "path": "src/content/date-fns/03-minute/setMinutes/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/setMinutes\nimport { setMinutes } from 'date-fns'\n\n// Set 45 minutes to 1 September 2014 11:30:40:\nmodule.exports = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n// => Mon Sep 01 2014 11:45:40\n"
  },
  {
    "path": "src/content/date-fns/03-minute/setMinutes/notes.md",
    "content": "Set the minutes to the given date."
  },
  {
    "path": "src/content/date-fns/03-minute/setMinutes/spec.js",
    "content": "const expected = new Date(2014, 8, 1, 11, 45, 40)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('setMinutes', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/03-minute/setMinutes/vanilla.js",
    "content": "const setMinutes = (date, m) => {\n  date.setMinutes(m)\n  return date\n}\n\n// Set 45 minutes to 1 September 2014 11:30:40:\nmodule.exports = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n// => Mon Sep 01 2014 11:45:40\n"
  },
  {
    "path": "src/content/date-fns/03-minute/startOfMinute/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/startOfMinute\nimport { startOfMinute } from 'date-fns'\n\n// The start of a minute for 1 December 2014 22:15:45.400:\nmodule.exports = startOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n// => Mon Dec 01 2014 22:15:00\n"
  },
  {
    "path": "src/content/date-fns/03-minute/startOfMinute/notes.md",
    "content": "Return the start of a minute for the given date."
  },
  {
    "path": "src/content/date-fns/03-minute/startOfMinute/spec.js",
    "content": "const expected = new Date(2014, 11, 1, 22, 15)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('startOfMinute', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/03-minute/startOfMinute/vanilla.js",
    "content": "const startOfMinute = date =>\n  new Date(Math.floor(date / (1000 * 60)) * 1000 * 60)\n\n// The start of a minute for 1 December 2014 22:15:45.400:\nmodule.exports = startOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n// => Mon Dec 01 2014 22:15:00\n"
  },
  {
    "path": "src/content/date-fns/03-minute/subMinutes/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/subMinutes\nimport { subMinutes } from 'date-fns'\n\n// Subtract 30 minutes from 10 July 2014 12:00:00:\nmodule.exports = subMinutes(new Date(2014, 6, 10, 12, 0), 30)\n// => Thu Jul 10 2014 11:30:00\n"
  },
  {
    "path": "src/content/date-fns/03-minute/subMinutes/notes.md",
    "content": "Subtract the specified number of minutes from the given date."
  },
  {
    "path": "src/content/date-fns/03-minute/subMinutes/spec.js",
    "content": "const expected = new Date(2014, 6, 10, 11, 30)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('subMinutes', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/03-minute/subMinutes/vanilla.js",
    "content": "const subMinutes = (date, m) => {\n  date.setMinutes(date.getMinutes() - m)\n  return date\n}\n\n// Subtract 30 minutes from 10 July 2014 12:00:00:\nmodule.exports = subMinutes(new Date(2014, 6, 10, 12, 0), 30)\n// => Thu Jul 10 2014 11:30:00\n"
  },
  {
    "path": "src/content/date-fns/04-hour/addHours/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/addHours\nimport { addHours } from 'date-fns'\n\n// Add 2 hours to 10 July 2014 23:00:00:\nmodule.exports = addHours(new Date(2014, 6, 10, 23, 0), 2)\n// => Fri Jul 11 2014 01:00:00\n"
  },
  {
    "path": "src/content/date-fns/04-hour/addHours/notes.md",
    "content": "Add the specified number of hours to the given date."
  },
  {
    "path": "src/content/date-fns/04-hour/addHours/spec.js",
    "content": "const expected = new Date(2014, 6, 11, 1, 0)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('addHours', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/04-hour/addHours/vanilla.js",
    "content": "const addHours = (date, h) => {\n  date.setHours(date.getHours() + h)\n  return date\n}\n\n// Add 2 hours to 10 July 2014 23:00:00:\nmodule.exports = addHours(new Date(2014, 6, 10, 23, 0), 2)\n// => Fri Jul 11 2014 01:00:00\n"
  },
  {
    "path": "src/content/date-fns/04-hour/differenceInHours/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/differenceInHours\nimport { differenceInHours } from 'date-fns'\n\n// How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?\nmodule.exports = differenceInHours(\n  new Date(2014, 6, 2, 19, 0),\n  new Date(2014, 6, 2, 6, 50)\n)\n// => 12\n"
  },
  {
    "path": "src/content/date-fns/04-hour/differenceInHours/notes.md",
    "content": "Get the number of hours between the given dates."
  },
  {
    "path": "src/content/date-fns/04-hour/differenceInHours/spec.js",
    "content": "const expected = 12\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('differenceInHours', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/04-hour/differenceInHours/vanilla.js",
    "content": "const HOUR_IN_MS = 1000 * 60 * 60\n\nconst differenceInHours = (dateA, dateB) =>\n  Math.trunc((dateA - dateB) / HOUR_IN_MS)\n\n// How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?\nmodule.exports = differenceInHours(\n  new Date(2014, 6, 2, 19, 0),\n  new Date(2014, 6, 2, 6, 50)\n)\n// => 12\n"
  },
  {
    "path": "src/content/date-fns/04-hour/endOfHour/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/endOfHour\nimport { endOfHour } from 'date-fns'\n\n// The end of an hour for 2 September 2014 11:55:00:\nmodule.exports = endOfHour(new Date(2014, 8, 2, 11, 55))\n// => Tue Sep 02 2014 11:59:59.999\n"
  },
  {
    "path": "src/content/date-fns/04-hour/endOfHour/notes.md",
    "content": "Return the end of an hour for the given date."
  },
  {
    "path": "src/content/date-fns/04-hour/endOfHour/spec.js",
    "content": "const expected = new Date(2014, 8, 2, 11, 59, 59, 999)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('endOfHour', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/04-hour/endOfHour/vanilla.js",
    "content": "const HOUR_IN_MS = 1000 * 60 * 60\n\nconst endOfHour = date =>\n  new Date(Math.ceil(date.getTime() / HOUR_IN_MS) * HOUR_IN_MS - 1)\n\n// The end of an hour for 2 September 2014 11:55:00:\nmodule.exports = endOfHour(new Date(2014, 8, 2, 11, 55))\n// => Tue Sep 02 2014 11:59:59.999\n"
  },
  {
    "path": "src/content/date-fns/04-hour/getHours/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/getHours\nimport { getHours } from 'date-fns'\n\n// Get the hours of 29 February 2012 11:45:00:\nmodule.exports = getHours(new Date(2012, 1, 29, 11, 45))\n// => 11\n"
  },
  {
    "path": "src/content/date-fns/04-hour/getHours/notes.md",
    "content": "Get the hours of the given date."
  },
  {
    "path": "src/content/date-fns/04-hour/getHours/spec.js",
    "content": "const expected = 11\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('getHours', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/04-hour/getHours/vanilla.js",
    "content": "const getHours = date => date.getHours()\n\n// Get the hours of 29 February 2012 11:45:00:\nmodule.exports = getHours(new Date(2012, 1, 29, 11, 45))\n// => 11\n"
  },
  {
    "path": "src/content/date-fns/04-hour/isSameHour/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isSameHour\nimport { isSameHour } from 'date-fns'\n\n// Are 4 September 2014 06:00:00 and 4 September 06:30:00 in the same hour?\nmodule.exports = isSameHour(\n  new Date(2014, 8, 4, 6, 0),\n  new Date(2014, 8, 4, 6, 30)\n)\n// => true\n"
  },
  {
    "path": "src/content/date-fns/04-hour/isSameHour/notes.md",
    "content": "Are the given dates in the same hour?"
  },
  {
    "path": "src/content/date-fns/04-hour/isSameHour/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isSameHour', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/04-hour/isSameHour/vanilla.js",
    "content": "const HOUR_IN_MS = 1000 * 60 * 60\n\nconst isSameHour = (dateA, dateB) =>\n  Math.abs(dateA - dateB) < HOUR_IN_MS && dateA.getHours() === dateB.getHours()\n\n// Are 4 September 2014 06:00:00 and 4 September 06:30:00 in the same hour?\nmodule.exports = isSameHour(\n  new Date(2014, 8, 4, 6, 0),\n  new Date(2014, 8, 4, 6, 30)\n)\n// => true\n"
  },
  {
    "path": "src/content/date-fns/04-hour/isThisHour/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isThisHour\nimport { isThisHour } from 'date-fns'\n\n// If now is 25 September 2014 18:30:15.500,\n// is 25 September 2014 18:00:00 in this hour?\nmodule.exports = isThisHour(new Date(2014, 8, 25, 18))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/04-hour/isThisHour/notes.md",
    "content": "Is the given date in the same hour as the current date?"
  },
  {
    "path": "src/content/date-fns/04-hour/isThisHour/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isThisHour', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/04-hour/isThisHour/vanilla.js",
    "content": "const HOUR_IN_MS = 1000 * 60 * 60\n\nconst isThisHour = (dateA, dateB = new Date()) =>\n  Math.abs(dateA - dateB) < HOUR_IN_MS && dateA.getHours() === dateB.getHours()\n\n// If now is 25 September 2014 18:30:15.500,\n// is 25 September 2014 18:00:00 in this hour?\nmodule.exports = isThisHour(new Date(2014, 8, 25, 18))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/04-hour/setHours/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/setHours\nimport { setHours } from 'date-fns'\n\n// Set 4 hours to 1 September 2014 11:30:00:\nmodule.exports = setHours(new Date(2014, 8, 1, 11, 30), 4)\n// => Mon Sep 01 2014 04:30:00\n"
  },
  {
    "path": "src/content/date-fns/04-hour/setHours/notes.md",
    "content": "Set the hours to the given date."
  },
  {
    "path": "src/content/date-fns/04-hour/setHours/spec.js",
    "content": "const expected = new Date(2014, 8, 1, 4, 30)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('setHours', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/04-hour/setHours/vanilla.js",
    "content": "const setHours = (date, h) => {\n  date.setHours(h)\n  return date\n}\n\n// Set 4 hours to 1 September 2014 11:30:00:\nmodule.exports = setHours(new Date(2014, 8, 1, 11, 30), 4)\n// => Mon Sep 01 2014 04:30:00\n"
  },
  {
    "path": "src/content/date-fns/04-hour/startOfHour/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/startOfHour\nimport { startOfHour } from 'date-fns'\n\n// The start of an hour for 2 September 2014 11:55:00:\nmodule.exports = startOfHour(new Date(2014, 8, 2, 11, 55))\n// => Tue Sep 02 2014 11:00:00\n"
  },
  {
    "path": "src/content/date-fns/04-hour/startOfHour/notes.md",
    "content": "Return the start of an hour for the given date."
  },
  {
    "path": "src/content/date-fns/04-hour/startOfHour/spec.js",
    "content": "const expected = new Date(2014, 8, 2, 11)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('startOfHour', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/04-hour/startOfHour/vanilla.js",
    "content": "const HOUR_IN_MS = 1000 * 60 * 60\n\nconst startOfHour = date => new Date(Math.floor(date / HOUR_IN_MS) * HOUR_IN_MS)\n\n// The start of an hour for 2 September 2014 11:55:00:\nmodule.exports = startOfHour(new Date(2014, 8, 2, 11, 55))\n// => Tue Sep 02 2014 11:00:00\n"
  },
  {
    "path": "src/content/date-fns/04-hour/subHours/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/subHours\nimport { subHours } from 'date-fns'\n\n// Subtract 2 hours from 11 July 2014 01:00:00:\nmodule.exports = subHours(new Date(2014, 6, 11, 1, 0), 2)\n// => Thu Jul 10 2014 23:00:00\n"
  },
  {
    "path": "src/content/date-fns/04-hour/subHours/notes.md",
    "content": "Subtract the specified number of hours from the given date."
  },
  {
    "path": "src/content/date-fns/04-hour/subHours/spec.js",
    "content": "const expected = new Date(2014, 6, 10, 23, 0)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('subHours', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/04-hour/subHours/vanilla.js",
    "content": "const subHours = (date, h) => {\n  date.setHours(date.getHours() - h)\n  return date\n}\n\n// Subtract 2 hours from 11 July 2014 01:00:00:\nmodule.exports = subHours(new Date(2014, 6, 11, 1, 0), 2)\n// => Thu Jul 10 2014 23:00:00\n"
  },
  {
    "path": "src/content/date-fns/05-day/addDays/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/addDays\nimport { addDays } from 'date-fns'\n\n// Add 10 days to 1 September 2014:\nmodule.exports = addDays(new Date(2014, 8, 1), 10)\n// => Thu Sep 11 2014 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/05-day/addDays/notes.md",
    "content": "Add the specified number of days to the given date."
  },
  {
    "path": "src/content/date-fns/05-day/addDays/spec.js",
    "content": "const expected = new Date(2014, 8, 11)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('addDays', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/05-day/addDays/vanilla.js",
    "content": "const addDays = (date, d) => {\n  date.setDate(date.getDate() + d)\n  return date\n}\n\n// Add 10 days to 1 September 2014:\nmodule.exports = addDays(new Date(2014, 8, 1), 10)\n// => Thu Sep 11 2014 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/05-day/differenceInDays/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/differenceInDays\nimport { differenceInDays } from 'date-fns'\n\n// How many full days are between\n// 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\nexports.year = differenceInDays(\n  new Date(2012, 6, 2, 0, 0),\n  new Date(2011, 6, 2, 23, 0)\n)\n// => 365\n\n// How many full days are between\n// 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\nexports.none = differenceInDays(\n  new Date(2011, 6, 3, 0, 1),\n  new Date(2011, 6, 2, 23, 59)\n)\n// => 0\n\n// How many full days are between\n// 1 March 2020 0:00 and 1 June 2020 0:00 ?\nexports.nintytwo = differenceInDays(new Date(2020, 5, 1), new Date(2020, 2, 1))\n// => 92\n"
  },
  {
    "path": "src/content/date-fns/05-day/differenceInDays/notes.md",
    "content": "Get the number of full days between the given dates."
  },
  {
    "path": "src/content/date-fns/05-day/differenceInDays/spec.js",
    "content": "const expected = {\n  year: 365,\n  none: 0,\n  nintytwo: 92,\n}\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('differenceInDays', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/05-day/differenceInDays/vanilla.js",
    "content": "const differenceInDays = (dateA, dateB) =>\n  Math.round((dateA - dateB) / (1000 * 60 * 60 * 24))\n\n// How many full days are between\n// 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\nexports.year = differenceInDays(\n  new Date(2012, 6, 2, 0, 0),\n  new Date(2011, 6, 2, 23, 0)\n)\n// => 365\n\n// How many full days are between\n// 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\nexports.none = differenceInDays(\n  new Date(2011, 6, 3, 0, 1),\n  new Date(2011, 6, 2, 23, 59)\n)\n// => 0\n\n// How many full days are between\n// 1 March 2020 0:00 and 1 June 2020 0:00 ?\nexports.nintytwo = differenceInDays(new Date(2020, 5, 1), new Date(2020, 2, 1))\n// => 92\n"
  },
  {
    "path": "src/content/date-fns/05-day/getDate/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/getDate\nimport { getDate } from 'date-fns'\n\n// Which day of the month is 29 February 2012?\nmodule.exports = getDate(new Date(2012, 1, 29))\n// => 29\n"
  },
  {
    "path": "src/content/date-fns/05-day/getDate/notes.md",
    "content": "Get the day of the month of the given date."
  },
  {
    "path": "src/content/date-fns/05-day/getDate/spec.js",
    "content": "const expected = 29\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('getDate', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/05-day/getDate/vanilla.js",
    "content": "const getDate = date => date.getDate()\n\n// Which day of the month is 29 February 2012?\nmodule.exports = getDate(new Date(2012, 1, 29))\n// => 29\n"
  },
  {
    "path": "src/content/date-fns/05-day/getDayOfYear/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/getDayOfYear\nimport { getDayOfYear } from 'date-fns'\n\n// Which day of the year is 2 July 2014?\nmodule.exports = getDayOfYear(new Date(2014, 6, 2))\n// => 183\n"
  },
  {
    "path": "src/content/date-fns/05-day/getDayOfYear/notes.md",
    "content": "Get the day of the year of the given date."
  },
  {
    "path": "src/content/date-fns/05-day/getDayOfYear/spec.js",
    "content": "const expected = 183\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('getDayOfYear', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/05-day/getDayOfYear/vanilla.js",
    "content": "const DAY_IN_MS = 1000 * 60 * 60 * 24\nconst getDayOfYear = date =>\n  (Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) -\n    Date.UTC(date.getFullYear(), 0, 0)) /\n  DAY_IN_MS\n\n// Which day of the year is 2 July 2014?\nmodule.exports = getDayOfYear(new Date(2014, 6, 2))\n// => 183\n"
  },
  {
    "path": "src/content/date-fns/05-day/isSameDay/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isSameDay\nimport { isSameDay } from 'date-fns'\n\n// Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\nmodule.exports = isSameDay(\n  new Date(2014, 8, 4, 6, 0),\n  new Date(2014, 8, 4, 18, 0)\n)\n// => true\n"
  },
  {
    "path": "src/content/date-fns/05-day/isSameDay/notes.md",
    "content": "Are the given dates in the same day?"
  },
  {
    "path": "src/content/date-fns/05-day/isSameDay/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isSameDay', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/05-day/isSameDay/vanilla.js",
    "content": "const isSameDay = (dateA, dateB) =>\n  dateA.toLocaleDateString() === dateB.toLocaleDateString()\n\n// Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\nmodule.exports = isSameDay(\n  new Date(2014, 8, 4, 6, 0),\n  new Date(2014, 8, 4, 18, 0)\n)\n// => true\n"
  },
  {
    "path": "src/content/date-fns/05-day/isToday/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isToday\nimport { isToday } from 'date-fns'\n\n// If today is 25 September 2014, is 25 September 14:00 today?\nmodule.exports = isToday(new Date(2014, 8, 25, 14, 0))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/05-day/isToday/notes.md",
    "content": "Is the given date today?"
  },
  {
    "path": "src/content/date-fns/05-day/isToday/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isToday', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/05-day/isToday/vanilla.js",
    "content": "const isToday = date => {\n  const yesterday = new Date()\n  return yesterday.toLocaleDateString() === date.toLocaleDateString()\n}\n\n// If today is 25 September 2014, is 25 September 14:00 today?\nmodule.exports = isToday(new Date(2014, 8, 25, 14, 0))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/05-day/isTomorrow/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isTomorrow\nimport { isTomorrow } from 'date-fns'\n\n// If today is 25 September 2014, is 24 September tomorrow?\nmodule.exports = isTomorrow(new Date(2014, 8, 26, 14, 0))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/05-day/isTomorrow/notes.md",
    "content": "Is the given date tomorrow?"
  },
  {
    "path": "src/content/date-fns/05-day/isTomorrow/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isTomorrow', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/05-day/isTomorrow/vanilla.js",
    "content": "const isTomorrow = date => {\n  const yesterday = new Date()\n  yesterday.setDate(yesterday.getDate() + 1)\n  return yesterday.toLocaleDateString() === date.toLocaleDateString()\n}\n\n// If today is 25 September 2014, is 24 September tomorrow?\nmodule.exports = isTomorrow(new Date(2014, 8, 26, 14, 0))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/05-day/isYesterday/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isYesterday\nimport { isYesterday } from 'date-fns'\n\n// If today is 25 September 2014, is 24 September yesterday?\nmodule.exports = isYesterday(new Date(2014, 8, 24, 14, 0))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/05-day/isYesterday/notes.md",
    "content": "Is the given date yesterday?"
  },
  {
    "path": "src/content/date-fns/05-day/isYesterday/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isYesterday', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/05-day/isYesterday/vanilla.js",
    "content": "const isYesterday = date => {\n  const yesterday = new Date()\n  yesterday.setDate(yesterday.getDate() - 1)\n  return yesterday.toLocaleDateString() === date.toLocaleDateString()\n}\n\n// If today is 25 September 2014, is 24 September yesterday?\nmodule.exports = isYesterday(new Date(2014, 8, 24, 14, 0))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/05-day/setDate/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/setDate\nimport { setDate } from 'date-fns'\n\n// Set the 30th day of the month to 1 September 2014:\nmodule.exports = setDate(new Date(2014, 8, 1), 30)\n// => Tue Sep 30 2014 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/05-day/setDate/notes.md",
    "content": "Set the day of the month to the given date."
  },
  {
    "path": "src/content/date-fns/05-day/setDate/spec.js",
    "content": "const expected = new Date(2014, 8, 30)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('setDate', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/05-day/setDate/vanilla.js",
    "content": "const setDate = (date, d) => {\n  date.setDate(d)\n  return date\n}\n\n// Set the 30th day of the month to 1 September 2014:\nmodule.exports = setDate(new Date(2014, 8, 1), 30)\n// => Tue Sep 30 2014 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/05-day/subDays/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/subDays\nimport { subDays } from 'date-fns'\n\n// Subtract 10 days from 1 September 2014:\nmodule.exports = subDays(new Date(2014, 8, 1), 10)\n// => Fri Aug 22 2014 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/05-day/subDays/notes.md",
    "content": "Subtract the specified number of days from the given date."
  },
  {
    "path": "src/content/date-fns/05-day/subDays/spec.js",
    "content": "const expected = new Date(2014, 7, 22)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('subDays', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/05-day/subDays/vanilla.js",
    "content": "const subDays = (date, d) => {\n  date.setDate(date.getDate() - d)\n  return date\n}\n\n// Subtract 10 days from 1 September 2014:\nmodule.exports = subDays(new Date(2014, 8, 1), 10)\n// => Fri Aug 22 2014 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/getDay/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/getDay\nimport { getDay } from 'date-fns'\n\n// Which day of the week is 29 February 2012?\nexports.randomday = getDay(new Date(2012, 1, 29))\n// => 3\n\n// Which day of the week is 26 February 2012?\nexports.sunday = getDay(new Date(2012, 1, 26))\n// => 0\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/getDay/notes.md",
    "content": "Get the day of the week of the given date."
  },
  {
    "path": "src/content/date-fns/06-weekday/getDay/spec.js",
    "content": "const expected = {\n  randomday: 3,\n  sunday: 0,\n}\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('getDay', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/getDay/vanilla.js",
    "content": "const getDay = date => date.getDay()\n\n// Which day of the week is 29 February 2012?\nexports.randomday = getDay(new Date(2012, 1, 29))\n// => 3\n\n// Which day of the week is 26 February 2012?\nexports.sunday = getDay(new Date(2012, 1, 26))\n// => 0\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/getISODay/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/getISODay\nimport { getISODay } from 'date-fns'\n\n// Which day of the week is 29 February 2012?\nexports.day = getISODay(new Date(2012, 1, 29))\n// => 3\n\n// Which day of the week is 26 February 2012?\nexports.sunday = getISODay(new Date(2012, 1, 26))\n// => 7\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/getISODay/notes.md",
    "content": "Get the day of the ISO week of the given date."
  },
  {
    "path": "src/content/date-fns/06-weekday/getISODay/spec.js",
    "content": "const expected = {\n  day: 3,\n  sunday: 7,\n}\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('getISODay', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/getISODay/vanilla.js",
    "content": "const getISODay = date => date.getDay() || 7\n\n// Which day of the week is 29 February 2012?\nexports.day = getISODay(new Date(2012, 1, 29))\n// => 3\n\n// Which day of the week is 26 February 2012?\nexports.sunday = getISODay(new Date(2012, 1, 26))\n// => 7\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isFriday/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isFriday\nimport { isFriday } from 'date-fns'\n\n// Is 26 September 2014 Friday?\nmodule.exports = isFriday(new Date(2014, 8, 26))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isFriday/notes.md",
    "content": "Is the given date Friday?"
  },
  {
    "path": "src/content/date-fns/06-weekday/isFriday/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isFriday', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isFriday/vanilla.js",
    "content": "const isFriday = date => date.getDay() === 5\n\n// Is 26 September 2014 Friday?\nmodule.exports = isFriday(new Date(2014, 8, 26))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isMonday/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isMonday\nimport { isMonday } from 'date-fns'\n\n// Is 22 September 2014 Monday?\nmodule.exports = isMonday(new Date(2014, 8, 22))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isMonday/notes.md",
    "content": "Is the given date Monday? (you could also check [Mondays](https://www.npmjs.com/package/mondays))\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isMonday/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isMonday', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isMonday/vanilla.js",
    "content": "const isMonday = date => date.getDay() === 1\n\n// Is 22 September 2014 Monday?\nmodule.exports = isMonday(new Date(2014, 8, 22))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isSaturday/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isSaturday\nimport { isSaturday } from 'date-fns'\n\n// Is 27 September 2014 Saturday?\nmodule.exports = isSaturday(new Date(2014, 8, 27))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isSaturday/notes.md",
    "content": "Is the given date Saturday?"
  },
  {
    "path": "src/content/date-fns/06-weekday/isSaturday/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isSaturday', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isSaturday/vanilla.js",
    "content": "const isSaturday = date => date.getDay() === 6\n\n// Is 27 September 2014 Saturday?\nmodule.exports = isSaturday(new Date(2014, 8, 27))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isSunday/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isSunday\nimport { isSunday } from 'date-fns'\n\n// Is 21 September 2014 Sunday?\nmodule.exports = isSunday(new Date(2014, 8, 21))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isSunday/notes.md",
    "content": "Is the given date Sunday?"
  },
  {
    "path": "src/content/date-fns/06-weekday/isSunday/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isSunday', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isSunday/vanilla.js",
    "content": "const isSunday = date => date.getDay() === 0\n\n// Is 21 September 2014 Sunday?\nmodule.exports = isSunday(new Date(2014, 8, 21))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isThursday/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isThursday\nimport { isThursday } from 'date-fns'\n\n// Is 25 September 2014 Thursday?\nmodule.exports = isThursday(new Date(2014, 8, 25))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isThursday/notes.md",
    "content": "Is the given date Thursday?"
  },
  {
    "path": "src/content/date-fns/06-weekday/isThursday/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isThursday', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isThursday/vanilla.js",
    "content": "const isThursday = date => date.getDay() === 4\n\n// Is 25 September 2014 Thursday?\nmodule.exports = isThursday(new Date(2014, 8, 25))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isTuesday/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isTuesday\nimport { isTuesday } from 'date-fns'\n\n// Is 23 September 2014 Tuesday?\nmodule.exports = isTuesday(new Date(2014, 8, 23))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isTuesday/notes.md",
    "content": "Is the given date Tuesday?"
  },
  {
    "path": "src/content/date-fns/06-weekday/isTuesday/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isTuesday', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isTuesday/vanilla.js",
    "content": "const isTuesday = date => date.getDay() === 2\n\n// Is 23 September 2014 Tuesday?\nmodule.exports = isTuesday(new Date(2014, 8, 23))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isWednesday/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isWednesday\nimport { isWednesday } from 'date-fns'\n\n// Is 24 September 2014 Wednesday?\nmodule.exports = isWednesday(new Date(2014, 8, 24))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isWednesday/notes.md",
    "content": "Is the given date Wednesday?"
  },
  {
    "path": "src/content/date-fns/06-weekday/isWednesday/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isWednesday', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isWednesday/vanilla.js",
    "content": "const isWednesday = date => date.getDay() === 3\n\n// Is 24 September 2014 Wednesday?\nmodule.exports = isWednesday(new Date(2014, 8, 24))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isWeekend/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isWeekend\nimport { isWeekend } from 'date-fns'\n\n// Does 5 October 2014 fall on a weekend?\nmodule.exports = isWeekend(new Date(2014, 9, 5))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isWeekend/notes.md",
    "content": "Does the given date fall on a weekend?"
  },
  {
    "path": "src/content/date-fns/06-weekday/isWeekend/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isWeekend', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/06-weekday/isWeekend/vanilla.js",
    "content": "const isWeekend = date => [0, 6].includes(date.getDay())\n\n// Does 5 October 2014 fall on a weekend?\nmodule.exports = isWeekend(new Date(2014, 9, 5))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/07-week/addWeeks/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/addWeeks\nimport { addWeeks } from 'date-fns'\n\n// Add 4 weeks to 1 September 2014:\nmodule.exports = addWeeks(new Date(2014, 8, 1), 4)\n// => Mon Sep 29 2014 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/07-week/addWeeks/notes.md",
    "content": "Add the specified number of weeks to the given date."
  },
  {
    "path": "src/content/date-fns/07-week/addWeeks/spec.js",
    "content": "const expected = new Date(2014, 8, 29)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('addWeeks', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/07-week/addWeeks/vanilla.js",
    "content": "const addWeeks = (date, w) => {\n  date.setDate(date.getDate() + w * 7)\n  return date\n}\n\n// Add 4 weeks to 1 September 2014:\nmodule.exports = addWeeks(new Date(2014, 8, 1), 4)\n// => Mon Sep 29 2014 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/07-week/subWeeks/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/subWeeks\nimport { subWeeks } from 'date-fns'\n\n// Subtract 4 weeks from 1 September 2014:\nmodule.exports = subWeeks(new Date(2014, 8, 1), 4)\n// => Mon Aug 04 2014 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/07-week/subWeeks/notes.md",
    "content": "Subtract the specified number of weeks from the given date."
  },
  {
    "path": "src/content/date-fns/07-week/subWeeks/spec.js",
    "content": "const expected = new Date(2014, 7, 4)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('subWeeks', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/07-week/subWeeks/vanilla.js",
    "content": "const subWeeks = (date, w) => {\n  date.setDate(date.getDate() - w * 7)\n  return date\n}\n\n// Subtract 4 weeks from 1 September 2014:\nmodule.exports = subWeeks(new Date(2014, 8, 1), 4)\n// => Mon Aug 04 2014 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/08-month/addMonths/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/addMonths\nimport { addMonths } from 'date-fns'\n\n// Add 5 months to 1 September 2014:\nmodule.exports = addMonths(new Date(2014, 8, 1), 5)\n// => Sun Feb 01 2015 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/08-month/addMonths/notes.md",
    "content": "Add the specified number of months to the given date."
  },
  {
    "path": "src/content/date-fns/08-month/addMonths/spec.js",
    "content": "const expected = new Date(2015, 1, 1)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('addMonths', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/08-month/addMonths/vanilla.js",
    "content": "const addMonths = (date, m) => {\n  date.setMonth(date.getMonth() + m)\n  return date\n}\n\n// Add 5 months to 1 September 2014:\nmodule.exports = addMonths(new Date(2014, 8, 1), 5)\n// => Sun Feb 01 2015 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/08-month/getMonth/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/getMonth\nimport { getMonth } from 'date-fns'\n\n// Which month is 29 February 2012?\nmodule.exports = getMonth(new Date(2012, 1, 29))\n// => 1\n"
  },
  {
    "path": "src/content/date-fns/08-month/getMonth/notes.md",
    "content": "Get the month of the given date."
  },
  {
    "path": "src/content/date-fns/08-month/getMonth/spec.js",
    "content": "const expected = 1\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('getMonth', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/08-month/getMonth/vanilla.js",
    "content": "const getMonth = date => date.getMonth()\n\n// Which month is 29 February 2012?\nmodule.exports = getMonth(new Date(2012, 1, 29))\n// => 1\n"
  },
  {
    "path": "src/content/date-fns/08-month/isFirstDayOfMonth/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isFirstDayOfMonth\nimport { isFirstDayOfMonth } from 'date-fns'\n\n// Is 1 September 2014 the first day of a month?\nmodule.exports = isFirstDayOfMonth(new Date(2014, 8, 1))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/08-month/isFirstDayOfMonth/notes.md",
    "content": "Is the given date the first day of a month?"
  },
  {
    "path": "src/content/date-fns/08-month/isFirstDayOfMonth/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isFirstDayOfMonth', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/08-month/isFirstDayOfMonth/vanilla.js",
    "content": "const isFirstDayOfMonth = date => date.getDate() === 1\n\n// Is 1 September 2014 the first day of a month?\nmodule.exports = isFirstDayOfMonth(new Date(2014, 8, 1))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/08-month/isLastDayOfMonth/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isLastDayOfMonth\nimport { isLastDayOfMonth } from 'date-fns'\n\n// Is 28 February 2014 the last day of a month?\nmodule.exports = isLastDayOfMonth(new Date(2014, 1, 28))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/08-month/isLastDayOfMonth/notes.md",
    "content": "Is the given date the last day of a month?"
  },
  {
    "path": "src/content/date-fns/08-month/isLastDayOfMonth/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isLastDayOfMonth', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/08-month/isLastDayOfMonth/vanilla.js",
    "content": "const isLastDayOfMonth = date => {\n  const dateClone = new Date(date.getTime())\n  dateClone.setDate(date.getDate() + 1)\n  return date.getMonth() === dateClone.getMonth() - 1\n}\n\n// Is 28 February 2014 the last day of a month?\nmodule.exports = isLastDayOfMonth(new Date(2014, 1, 28))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/08-month/isSameMonth/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isSameMonth\nimport { isSameMonth } from 'date-fns'\n\n// Are 2 September 2014 and 25 September 2014 in the same month?\nmodule.exports = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/08-month/isSameMonth/notes.md",
    "content": "Are the given dates in the same month?"
  },
  {
    "path": "src/content/date-fns/08-month/isSameMonth/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isSameMonth', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/08-month/isSameMonth/vanilla.js",
    "content": "const isSameMonth = (dateA, dateB) =>\n  dateA.getYear() === dateB.getYear() && dateA.getMonth() === dateB.getMonth()\n\n// Are 2 September 2014 and 25 September 2014 in the same month?\nmodule.exports = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/08-month/isThisMonth/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isThisMonth\nimport { isThisMonth } from 'date-fns'\n\n// If today is 25 September 2014, is 15 September 2014 in this month?\nmodule.exports = isThisMonth(new Date(2014, 8, 15))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/08-month/isThisMonth/notes.md",
    "content": "Is the given date in the same month as the current date?"
  },
  {
    "path": "src/content/date-fns/08-month/isThisMonth/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isThisMonth', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/08-month/isThisMonth/vanilla.js",
    "content": "const isThisMonth = date => {\n  const now = new Date()\n  return date.getYear() === now.getYear() && date.getMonth() === now.getMonth()\n}\n\n// If today is 25 September 2014, is 15 September 2014 in this month?\nmodule.exports = isThisMonth(new Date(2014, 8, 15))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/08-month/lastDayOfMonth/date-fns.js",
    "content": "// https://date-fns.org/v2.29.3/docs/lastDayOfMonth\nimport { lastDayOfMonth } from 'date-fns'\n\n// Get the last day of a month.\nmodule.exports = lastDayOfMonth(new Date(2014, 1, 25)).toDateString()\n// => Fri Feb 28 2014\n"
  },
  {
    "path": "src/content/date-fns/08-month/lastDayOfMonth/notes.md",
    "content": "Get the last day of a month from date."
  },
  {
    "path": "src/content/date-fns/08-month/lastDayOfMonth/spec.js",
    "content": "const expected = 'Fri Feb 28 2014'\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('lastDayOfMonth', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/08-month/lastDayOfMonth/vanilla.js",
    "content": "function lastDayOfMonth(date) {\n  const dateClone = new Date(date.getTime())\n  const month = dateClone.getMonth()\n  dateClone.setDate(1)\n  dateClone.setMonth(month + 1)\n  dateClone.setDate(0)\n\n  return dateClone\n}\n\n// Get the last day of a month.\nmodule.exports = lastDayOfMonth(new Date(2014, 1, 25)).toDateString()\n// => Fri Feb 28 2014\n"
  },
  {
    "path": "src/content/date-fns/08-month/setMonth/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/setMonth\nimport { setMonth } from 'date-fns'\n\n// Set February to 1 September 2014:\nmodule.exports = setMonth(new Date(2014, 8, 1), 1)\n// => Sat Feb 01 2014 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/08-month/setMonth/notes.md",
    "content": "Set the month to the given date."
  },
  {
    "path": "src/content/date-fns/08-month/setMonth/spec.js",
    "content": "const expected = new Date(2014, 1, 1)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('setMonth', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/08-month/setMonth/vanilla.js",
    "content": "const setMonth = (date, m) => {\n  date.setMonth(m)\n  return date\n}\n\n// Set February to 1 September 2014:\nmodule.exports = setMonth(new Date(2014, 8, 1), 1)\n// => Sat Feb 01 2014 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/08-month/subMonths/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/subMonths\nimport { subMonths } from 'date-fns'\n\n// Subtract 5 months from 1 February 2015:\nmodule.exports = subMonths(new Date(2015, 1, 1), 5)\n// => Mon Sep 01 2014 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/08-month/subMonths/notes.md",
    "content": "Subtract the specified number of months from the given date."
  },
  {
    "path": "src/content/date-fns/08-month/subMonths/spec.js",
    "content": "const expected = new Date(2014, 8, 1)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('subMonths', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/08-month/subMonths/vanilla.js",
    "content": "const subMonths = (date, m) => {\n  date.setMonth(date.getMonth() - m)\n  return date\n}\n\n// Subtract 5 months from 1 February 2015:\nmodule.exports = subMonths(new Date(2015, 1, 1), 5)\n// => Mon Sep 01 2014 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/09-year/addYears/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/addYears\nimport { addYears } from 'date-fns'\n\n// Add 5 years to 1 September 2014:\nmodule.exports = addYears(new Date(2014, 8, 1), 5)\n// => Sun Sep 01 2019 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/09-year/addYears/notes.md",
    "content": "Add the specified number of years to the given date."
  },
  {
    "path": "src/content/date-fns/09-year/addYears/spec.js",
    "content": "const expected = new Date(2019, 8, 1)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('addYears', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/09-year/addYears/vanilla.js",
    "content": "const addYears = (date, yearsToAdd) => {\n  date.setFullYear(date.getFullYear() + yearsToAdd)\n  return date\n}\n\n// Add 5 years to 1 September 2014:\nmodule.exports = addYears(new Date(2014, 8, 1), 5)\n// => Sun Sep 01 2019 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/09-year/differenceInCalendarYears/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/differenceInCalendarYears\nimport { differenceInCalendarYears } from 'date-fns'\n\n// How many calendar years are between 31 December 2013 and 11 February 2015?\nmodule.exports = differenceInCalendarYears(\n  new Date(2015, 1, 11),\n  new Date(2013, 11, 31)\n)\n// => 2\n"
  },
  {
    "path": "src/content/date-fns/09-year/differenceInCalendarYears/notes.md",
    "content": "Get the number of calendar years between the given dates."
  },
  {
    "path": "src/content/date-fns/09-year/differenceInCalendarYears/spec.js",
    "content": "const expected = 2\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('differenceInCalendarYears', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/09-year/differenceInCalendarYears/vanilla.js",
    "content": "const differenceInCalendarYears = (dateA, dateB) =>\n  Math.abs(dateA.getFullYear() - dateB.getFullYear())\n\n// How many calendar years are between 31 December 2013 and 11 February 2015?\nmodule.exports = differenceInCalendarYears(\n  new Date(2015, 1, 11),\n  new Date(2013, 11, 31)\n)\n// => 2\n"
  },
  {
    "path": "src/content/date-fns/09-year/differenceInYears/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/differenceInYears\nimport { differenceInYears } from 'date-fns'\n\n// How many full years are between 31 December 2013 and 11 February 2015?\nmodule.exports = differenceInYears(\n  new Date(2015, 1, 11),\n  new Date(2013, 11, 31)\n)\n// => 1\n"
  },
  {
    "path": "src/content/date-fns/09-year/differenceInYears/notes.md",
    "content": "Get the number of full years between the given dates."
  },
  {
    "path": "src/content/date-fns/09-year/differenceInYears/spec.js",
    "content": "const expected = 1\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('differenceInYears', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/09-year/differenceInYears/vanilla.js",
    "content": "const YEAR_IN_MS = 1000 * 60 * 60 * 24 * 365\n\nconst differenceInYears = (dateA, dateB) =>\n  Math.floor((dateA - dateB) / YEAR_IN_MS)\n\n// How many full years are between 31 December 2013 and 11 February 2015?\nmodule.exports = differenceInYears(\n  new Date(2015, 1, 11),\n  new Date(2013, 11, 31)\n)\n// => 1\n"
  },
  {
    "path": "src/content/date-fns/09-year/getYear/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/getYear\nimport { getYear } from 'date-fns'\n\n// Which year is 2 July 2014?\nmodule.exports = getYear(new Date(2014, 6, 2))\n// => 2014\n"
  },
  {
    "path": "src/content/date-fns/09-year/getYear/notes.md",
    "content": "Get the year of the given date."
  },
  {
    "path": "src/content/date-fns/09-year/getYear/spec.js",
    "content": "const expected = 2014\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('getYear', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/09-year/getYear/vanilla.js",
    "content": "const getYear = date => date.getFullYear()\n\n// Which year is 2 July 2014?\nmodule.exports = getYear(new Date(2014, 6, 2))\n// => 2014\n"
  },
  {
    "path": "src/content/date-fns/09-year/isLeapYear/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isLeapYear\nimport { isLeapYear } from 'date-fns'\n\n// Is 1 September 2012 in the leap year?\nexports.leap = isLeapYear(new Date(2012, 8, 1))\n// => true\n\n// Is 1 September 2013 in the leap year?\nexports.notLeap = isLeapYear(new Date(2013, 8, 1))\n// => false\n"
  },
  {
    "path": "src/content/date-fns/09-year/isLeapYear/notes.md",
    "content": "Is the given date in the leap year?"
  },
  {
    "path": "src/content/date-fns/09-year/isLeapYear/spec.js",
    "content": "const expected = {\n  leap: true,\n  notLeap: false,\n}\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isLeapYear', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/09-year/isLeapYear/vanilla.js",
    "content": "const isLeapYear = date => {\n  const year = date.getFullYear()\n  return year % 100 === 0 ? year % 400 === 0 : year % 4 === 0\n}\n\n// Is 1 September 2012 in the leap year?\nexports.leap = isLeapYear(new Date(2012, 8, 1))\n// => true\n\n// Is 1 September 2013 in the leap year?\nexports.notLeap = isLeapYear(new Date(2013, 8, 1))\n// => false\n"
  },
  {
    "path": "src/content/date-fns/09-year/isSameYear/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isSameYear\nimport { isSameYear } from 'date-fns'\n\n// Are 2 September 2014 and 25 September 2014 in the same year?\nmodule.exports = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/09-year/isSameYear/notes.md",
    "content": "Are the given dates in the same year?"
  },
  {
    "path": "src/content/date-fns/09-year/isSameYear/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isSameYear', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/09-year/isSameYear/vanilla.js",
    "content": "const isSameYear = (dateA, dateB) => dateA.getFullYear() === dateB.getFullYear()\n\n// Are 2 September 2014 and 25 September 2014 in the same year?\nmodule.exports = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/09-year/isThisYear/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/isThisYear\nimport { isThisYear } from 'date-fns'\n\n// If today is 25 September 2014, is 2 July 2014 in this year?\nmodule.exports = isThisYear(new Date(2014, 6, 2))\n// => true\n"
  },
  {
    "path": "src/content/date-fns/09-year/isThisYear/notes.md",
    "content": "Is the given date in the same year as the current date?"
  },
  {
    "path": "src/content/date-fns/09-year/isThisYear/spec.js",
    "content": "const expected = true\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('isThisYear', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/09-year/isThisYear/vanilla.js",
    "content": "const isThisYear = dateA => dateA.getFullYear() === new Date().getFullYear()\n\nmodule.exports = isThisYear(new Date())\n// => true\n"
  },
  {
    "path": "src/content/date-fns/09-year/setYear/date-fns.js",
    "content": "// https://date-fns.org/v3.5.0/docs/setYear\nimport { setYear } from 'date-fns'\n\n// Set year 2013 to 1 September 2014:\nmodule.exports = setYear(new Date(2014, 8, 1), 2013)\n// => Sun Sep 01 2013 00:00:00\n"
  },
  {
    "path": "src/content/date-fns/09-year/setYear/notes.md",
    "content": "Set the year to the given date."
  },
  {
    "path": "src/content/date-fns/09-year/setYear/spec.js",
    "content": "const expected = new Date(2013, 8, 1)\n\nconst datefns = require('./date-fns')\nconst plain = require('./vanilla')\n\ntest('setYear', () => {\n  expect(datefns).toEqual(expected)\n  expect(plain).toEqual(datefns)\n})\n"
  },
  {
    "path": "src/content/date-fns/09-year/setYear/vanilla.js",
    "content": "const setYear = (date, year) => {\n  date.setFullYear(year)\n  return date\n}\n\n// Set year 2013 to 1 September 2014:\nmodule.exports = setYear(new Date(2014, 8, 1), 2013)\n// => Sun Sep 01 2013 00:00:00\n"
  },
  {
    "path": "src/content/date-fns-missing.md",
    "content": "[<< back](/date-fns)\n\n# YOU MIGHT NOT NEED DATE-FNS\n\n## Generic Helpers\n\n[format](https://date-fns.org/v3.5.0/docs/format)  \n[formatDistance](https://date-fns.org/v3.5.0/docs/formatDistance)  \n[formatDistanceStrict](https://date-fns.org/v3.5.0/docs/formatDistanceStrict)  \n[formatDistanceToNow](https://date-fns.org/v3.5.0/docs/formatDistanceToNow)  \n[formatDistanceToNowStrict](https://date-fns.org/v3.5.0/docs/formatDistanceToNowStrict)  \n[formatISO](https://date-fns.org/v3.5.0/docs/formatISO)  \n[formatISO9075](https://date-fns.org/v3.5.0/docs/formatISO9075)  \n[formatISODuration](https://date-fns.org/v3.5.0/docs/formatISODuration)  \n[formatRFC3339](https://date-fns.org/v3.5.0/docs/formatRFC3339)  \n[formatRFC7231](https://date-fns.org/v3.5.0/docs/formatRFC7231)  \n[formatRelative](https://date-fns.org/v3.5.0/docs/formatRelative)  \n[intervalToDuration](https://date-fns.org/v3.5.0/docs/intervalToDuration)  \n[lightFormat](https://date-fns.org/v3.5.0/docs/lightFormat)  \n[parse](https://date-fns.org/v3.5.0/docs/parse)  \n[parseISO](https://date-fns.org/v3.5.0/docs/parseISO)  \n[parseJSON](https://date-fns.org/v3.5.0/docs/parseJSON)  \n[set](https://date-fns.org/v3.5.0/docs/set)  \n[sub](https://date-fns.org/v3.5.0/docs/sub)  \n[toDate](https://date-fns.org/v3.5.0/docs/toDate)\n\n## Interval Helpers\n\n[eachMonthOfInterval](https://date-fns.org/v3.5.0/docs/eachMonthOfInterval)  \n[eachWeekOfInterval](https://date-fns.org/v3.5.0/docs/eachWeekOfInterval)  \n[eachWeekendOfInterval](https://date-fns.org/v3.5.0/docs/eachWeekendOfInterval)  \n[eachYearOfInterval](https://date-fns.org/v3.5.0/docs/eachYearOfInterval)  \n[getOverlappingDaysInIntervals](https://date-fns.org/v3.5.0/docs/getOverlappingDaysInIntervals)\n\n## Day Helpers\n\n[addBusinessDays](https://date-fns.org/v3.5.0/docs/addBusinessDays)  \n[differenceInBusinessDays](https://date-fns.org/v3.5.0/docs/differenceInBusinessDays)  \n[differenceInCalendarDays](https://date-fns.org/v3.5.0/docs/differenceInCalendarDays)  \n[endOfDay](https://date-fns.org/v3.5.0/docs/endOfDay)  \n[endOfTomorrow](https://date-fns.org/v3.5.0/docs/endOfTomorrow)  \n[endOfYesterday](https://date-fns.org/v3.5.0/docs/endOfYesterday)  \n[setDayOfYear](https://date-fns.org/v3.5.0/docs/setDayOfYear)  \n[startOfDay](https://date-fns.org/v3.5.0/docs/startOfDay)  \n[startOfToday](https://date-fns.org/v3.5.0/docs/startOfToday)  \n[startOfTomorrow](https://date-fns.org/v3.5.0/docs/startOfTomorrow)  \n[startOfYesterday](https://date-fns.org/v3.5.0/docs/startOfYesterday)  \n[subBusinessDays](https://date-fns.org/v3.5.0/docs/subBusinessDays)\n\n## Weekday Helpers\n\n[setDay](https://date-fns.org/v3.5.0/docs/setDay)  \n[setISODay](https://date-fns.org/v3.5.0/docs/setISODay)\n\n## Week Helpers\n\n[addWeeks](https://date-fns.org/v3.5.0/docs/addWeeks)  \n[differenceInCalendarWeeks](https://date-fns.org/v3.5.0/docs/differenceInCalendarWeeks)  \n[differenceInWeeks](https://date-fns.org/v3.5.0/docs/differenceInWeeks)  \n[endOfWeek](https://date-fns.org/v3.5.0/docs/endOfWeek)  \n[getWeek](https://date-fns.org/v3.5.0/docs/getWeek)  \n[getWeekOfMonth](https://date-fns.org/v3.5.0/docs/getWeekOfMonth)  \n[getWeeksInMonth](https://date-fns.org/v3.5.0/docs/getWeeksInMonth)  \n[isSameWeek](https://date-fns.org/v3.5.0/docs/isSameWeek)  \n[isThisWeek](https://date-fns.org/v3.5.0/docs/isThisWeek)  \n[lastDayOfWeek](https://date-fns.org/v3.5.0/docs/lastDayOfWeek)  \n[setWeek](https://date-fns.org/v3.5.0/docs/setWeek)  \n[startOfWeek](https://date-fns.org/v3.5.0/docs/startOfWeek)  \n[subWeeks](https://date-fns.org/v3.5.0/docs/subWeeks)\n\n## ISO Week Helpers\n\n[differenceInCalendarISOWeeks](https://date-fns.org/v3.5.0/docs/differenceInCalendarISOWeeks)  \n[endOfISOWeek](https://date-fns.org/v3.5.0/docs/endOfISOWeek)  \n[getISOWeek](https://date-fns.org/v3.5.0/docs/getISOWeek)  \n[isSameISOWeek](https://date-fns.org/v3.5.0/docs/isSameISOWeek)  \n[isThisISOWeek](https://date-fns.org/v3.5.0/docs/isThisISOWeek)  \n[lastDayOfISOWeek](https://date-fns.org/v3.5.0/docs/lastDayOfISOWeek)  \n[setISOWeek](https://date-fns.org/v3.5.0/docs/setISOWeek)  \n[startOfISOWeek](https://date-fns.org/v3.5.0/docs/startOfISOWeek)\n\n## Month Helpers\n\n[differenceInCalendarMonths](https://date-fns.org/v3.5.0/docs/differenceInCalendarMonths)  \n[differenceInMonths](https://date-fns.org/v3.5.0/docs/differenceInMonths)  \n[eachWeekendOfMonth](https://date-fns.org/v3.5.0/docs/eachWeekendOfMonth)  \n[endOfMonth](https://date-fns.org/v3.5.0/docs/endOfMonth)  \n[getDaysInMonth](https://date-fns.org/v3.5.0/docs/getDaysInMonth)  \n[startOfMonth](https://date-fns.org/v3.5.0/docs/startOfMonth)\n\n## Quarter Helpers\n\n[addQuarters](https://date-fns.org/v3.5.0/docs/addQuarters)  \n[differenceInCalendarQuarters](https://date-fns.org/v3.5.0/docs/differenceInCalendarQuarters)  \n[differenceInQuarters](https://date-fns.org/v3.5.0/docs/differenceInQuarters)  \n[endOfQuarter](https://date-fns.org/v3.5.0/docs/endOfQuarter)  \n[getQuarter](https://date-fns.org/v3.5.0/docs/getQuarter)  \n[isSameQuarter](https://date-fns.org/v3.5.0/docs/isSameQuarter)  \n[isThisQuarter](https://date-fns.org/v3.5.0/docs/isThisQuarter)  \n[lastDayOfQuarter](https://date-fns.org/v3.5.0/docs/lastDayOfQuarter)  \n[setQuarter](https://date-fns.org/v3.5.0/docs/setQuarter)  \n[startOfQuarter](https://date-fns.org/v3.5.0/docs/startOfQuarter)  \n[subQuarters](https://date-fns.org/v3.5.0/docs/subQuarters)\n\n## Year Helpers\n\n[eachWeekendOfYear](https://date-fns.org/v3.5.0/docs/eachWeekendOfYear)  \n[endOfYear](https://date-fns.org/v3.5.0/docs/endOfYear)  \n[getDaysInYear](https://date-fns.org/v3.5.0/docs/getDaysInYear)  \n[lastDayOfYear](https://date-fns.org/v3.5.0/docs/lastDayOfYear)  \n[startOfYear](https://date-fns.org/v3.5.0/docs/startOfYear)  \n[subYears](https://date-fns.org/v3.5.0/docs/subYears)\n\n## ISO Week-Numbering Year Helpers\n\n[addISOWeekYears](https://date-fns.org/v3.5.0/docs/addISOWeekYears)  \n[differenceInCalendarISOWeekYears](https://date-fns.org/v3.5.0/docs/differenceInCalendarISOWeekYears)  \n[differenceInISOWeekYears](https://date-fns.org/v3.5.0/docs/differenceInISOWeekYears)  \n[endOfISOWeekYear](https://date-fns.org/v3.5.0/docs/endOfISOWeekYear)  \n[getISOWeekYear](https://date-fns.org/v3.5.0/docs/getISOWeekYear)  \n[getISOWeeksInYear](https://date-fns.org/v3.5.0/docs/getISOWeeksInYear)  \n[isSameISOWeekYear](https://date-fns.org/v3.5.0/docs/isSameISOWeekYear)  \n[lastDayOfISOWeekYear](https://date-fns.org/v3.5.0/docs/lastDayOfISOWeekYear)  \n[setISOWeekYear](https://date-fns.org/v3.5.0/docs/setISOWeekYear)  \n[startOfISOWeekYear](https://date-fns.org/v3.5.0/docs/startOfISOWeekYear)  \n[subISOWeekYears](https://date-fns.org/v3.5.0/docs/subISOWeekYears)\n\n## Decade Helpers\n\n[endOfDecade](https://date-fns.org/v3.5.0/docs/endOfDecade)  \n[getDecade](https://date-fns.org/v3.5.0/docs/getDecade)  \n[lastDayOfDecade](https://date-fns.org/v3.5.0/docs/lastDayOfDecade)  \n[startOfDecade](https://date-fns.org/v3.5.0/docs/startOfDecade)\n\n## Week-Numbering Year Helpers\n\n[getWeekYear](https://date-fns.org/v3.5.0/docs/getWeekYear)  \n[setWeekYear](https://date-fns.org/v3.5.0/docs/setWeekYear)  \n[startOfWeekYear](https://date-fns.org/v3.5.0/docs/startOfWeekYear)\n"
  },
  {
    "path": "src/content/date-fns.md",
    "content": "# YOU MIGHT NOT NEED **DATE-FNS**\n\nBut **you should use date-fns**.\n\nNot only it's a great library, battle tested and with a strong team, but also dates in javascript are a pain to work with, no point in dealing with them at a low level when there are such well crafted libraries around. **The goal of this project is _NOT_ to provide drop in replacements**, but to show how achieve similar functionalities in plain Javascript, to understand how things work behind the hood.\n\nBeing a learning platform, **some implementations have been simplified to make them more digestible, and they might miss edge cases** covered in the original version.\n\nOn top of that there are [a lot of methods yet to be ported](/date-fns/missing) including what's probably the most needed: [format](https://date-fns.org/v2.22.1/docs/format); please help [contributing on github](https://github.com/cedmax/youmightnotneed/blob/master/src/content/how-to-contribute.md).\n"
  },
  {
    "path": "src/content/footer.md",
    "content": "Curated by [cedmax](https://cedmax.com/)  \n<small>Share photo by <a href=\"https://unsplash.com/@srz?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText\">Sydney Rae</a></small>\n"
  },
  {
    "path": "src/content/how-to-contribute.md",
    "content": "# How To Contribute\n\nFeel free to open a PR on the [github repository](https://github.com/cedmax/youmightnotneed).  \nIf you want to suggest any other framework or library please [open an issue](https://github.com/cedmax/youmightnotneed/issues/new), before the PR.\n\nPlease note we have a [Code of Conduct](https://github.com/cedmax/youmightnotneed/blob/master/CODE_OF_CONDUCT.md), make sure you follow it in all your interactions with the project.\n\nRun `yarn contributors` to add yourself to the Readme.md\n\n## How to add a method implementation\n\nIn order to add a method/section, run `yarn new` and follow the instructions.\n\n## File structure\n\nPlease follow the current file structure:\n\n```\nlodash.js\nnotes.md\nspec.js\nvanilla.js\n```\n\nPlease use the examples in the [lodash documentation](https://lodash.com/docs) for the lodash.js files, just add the appropriate import.\n\n##### ./lodash/array/chunk/lodash.js\n\n```javascript\nimport { chunk } from 'lodash'\n\nmodule.exports = chunk(['a', 'b', 'c', 'd', 'e', 'f', 'g'], 3)\n// => [['a', 'b', 'c'], ['d', 'e', 'f'], ['g']]\n```\n\nNote that both lodash and vanilla need to `module.exports` the result of their operations: it's hidden on the website, but necessary for testing purposes. If you have more example, feel free to use something like `exports.propertyNameThatMakesSense` and change the spec file accordingly.\n\n##### ./lodash/collection/find/spec.js\n\n```javascript\nconst expected = { user: 'barney', age: 36, active: true }\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('find', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n```\n\nThe `notes.md` file is meant to contain external links relevant to the the vanilla implementation (where the implementation was found, if not original, mdn references or such).\n\n##### ./lodash/array/tail/notes.md\n\n```md\nDescription of the method\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Source](https://www.sitepoint.com/lodash-features-replace-es6/)\n```\n\n## How it make it work on local\n\n`yarn` to install dependencies.  \n`yarn start` to launch the watch mode.  \n`yarn test` to launch the tests.  \n`yarn build` to create the built version in the `dist` folder.\n"
  },
  {
    "path": "src/content/lodash/array/chunk/lodash.js",
    "content": "// https://lodash.com/docs/#chunk\nimport { chunk } from 'lodash'\n\nexports.noSize = chunk(['a', 'b', 'c', 'd', 'e', 'f', 'g'])\n// => [['a'], ['b'], ['c'], ['d'], ['e'], ['f'], ['g']]\n\nexports.simple = chunk(['a', 'b', 'c', 'd', 'e', 'f', 'g'], 3)\n// => [['a', 'b', 'c'], ['d', 'e', 'f'], ['g']]\n\nexports.chunkSizeZero = chunk(['a', 'b', 'c', 'd', 'e', 'f', 'g'], 0)\n// => []\n\nexports.chunkSizeNegative = chunk(['a', 'b', 'c', 'd', 'e', 'f', 'g'], -1)\n// => []\n"
  },
  {
    "path": "src/content/lodash/array/chunk/notes.md",
    "content": "Creates an array of elements split into groups the length of <code>size</code>. If <code>array</code> can't be split evenly, the final chunk will be the remaining elements.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Array#splice](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice)\n"
  },
  {
    "path": "src/content/lodash/array/chunk/spec.js",
    "content": "const expected = {\n  noSize: [['a'], ['b'], ['c'], ['d'], ['e'], ['f'], ['g']],\n  simple: [['a', 'b', 'c'], ['d', 'e', 'f'], ['g']],\n  chunkSizeZero: [],\n  chunkSizeNegative: [],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('chunk', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/chunk/vanilla.js",
    "content": "const chunk = (arr, chunkSize = 1, cache = []) => {\n  const tmp = [...arr]\n  if (chunkSize <= 0) return cache\n  while (tmp.length) cache.push(tmp.splice(0, chunkSize))\n  return cache\n}\n\nexports.noSize = chunk(['a', 'b', 'c', 'd', 'e', 'f', 'g'])\n// => [['a'], ['b'], ['c'], ['d'], ['e'], ['f'], ['g']]\n\nexports.simple = chunk(['a', 'b', 'c', 'd', 'e', 'f', 'g'], 3)\n// => [['a', 'b', 'c'], ['d', 'e', 'f'], ['g']]\n\nexports.chunkSizeZero = chunk(['a', 'b', 'c', 'd', 'e', 'f', 'g'], 0)\n// => []\n\nexports.chunkSizeNegative = chunk(['a', 'b', 'c', 'd', 'e', 'f', 'g'], -1)\n// => []\n"
  },
  {
    "path": "src/content/lodash/array/compact/lodash.js",
    "content": "// https://lodash.com/docs/#compact\nimport { compact } from 'lodash'\n\nmodule.exports = compact([0, 1, 2])\n// => [1, 2]\n"
  },
  {
    "path": "src/content/lodash/array/compact/notes.md",
    "content": "Creates an array with all falsey values removed. The values <code>false</code>, <code>null</code>, <code>0</code>, <code>&quot;&quot;</code>, <code>undefined</code>, and <code>NaN</code> are falsey.\n\nResources: [Array#filter](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) [Source](https://www.reindex.io/blog/you-might-not-need-underscore/#create-a-copy-of-an-array-with-all-falsy-values-removed)\n"
  },
  {
    "path": "src/content/lodash/array/compact/spec.js",
    "content": "const expected = [1, 2]\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('compact', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/compact/vanilla.js",
    "content": "module.exports = [0, 1, 2].filter(x => !!x)\n// => [1, 2]\n"
  },
  {
    "path": "src/content/lodash/array/concat/lodash.js",
    "content": "// https://lodash.com/docs/#concat\nimport { concat } from 'lodash'\n\nmodule.exports = concat([1], 2, [3], [[4]])\n// => [1, 2, 3, [4]]\n"
  },
  {
    "path": "src/content/lodash/array/concat/notes.md",
    "content": "Creates a new array concatenating <code>array</code> with any additional arrays and/or values.\n\nResources: [Array#concat](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/concat) [Source](https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#_concat)\n"
  },
  {
    "path": "src/content/lodash/array/concat/spec.js",
    "content": "const expected = [1, 2, 3, [4]]\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('concat', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/concat/vanilla.js",
    "content": "module.exports = [1].concat(2, [3], [[4]])\n// => [1, 2, 3, [4]]\n"
  },
  {
    "path": "src/content/lodash/array/difference/lodash.js",
    "content": "// https://lodash.com/docs/#difference\nimport { difference } from 'lodash'\n\nmodule.exports = difference([2, 1], [3, 2])\n// => [1]\n"
  },
  {
    "path": "src/content/lodash/array/difference/notes.md",
    "content": "Creates an array of <code>array</code> values not included in the other given arrays.\n\nResources: [Array#filter](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) [Array#includes](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/includes)\n"
  },
  {
    "path": "src/content/lodash/array/difference/spec.js",
    "content": "const expected = [1]\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('difference', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/difference/vanilla.js",
    "content": "const difference = (arr1, arr2) => arr1.filter(x => !arr2.includes(x))\n\nmodule.exports = difference([2, 1], [3, 2])\n// => [1]\n"
  },
  {
    "path": "src/content/lodash/array/differenceBy/lodash.js",
    "content": "// https://lodash.com/docs/#differenceBy\nimport { differenceBy } from 'lodash'\n\nexports.arrays = differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor)\n// => [1.2]\n\n// The `_.property` iteratee shorthand.\nexports.objects = differenceBy([{ x: 2 }, { x: 1 }], [{ x: 1 }], 'x')\n// => [{ 'x': 2 }]\n"
  },
  {
    "path": "src/content/lodash/array/differenceBy/notes.md",
    "content": "This method is like <a href=\"#difference\"><code>\\_.difference</code></a> except that it accepts <code>iteratee</code> which is invoked for each element of <code>array</code> and <code>values</code> to generate the criterion by which they're compared. The order and references of result values are determined by the first array. The iteratee is invoked with one argument:<br><em>(value)</em>.\n\nResources: [Array#filter](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) [Array#includes](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/includes)\n"
  },
  {
    "path": "src/content/lodash/array/differenceBy/spec.js",
    "content": "const expected = {\n  arrays: [1.2],\n  objects: [{ x: 2 }],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('differenceBy', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/differenceBy/vanilla.js",
    "content": "const differenceBy = (arr1, arr2, iteratee) => {\n  if (typeof iteratee === 'string') {\n    const prop = iteratee\n    iteratee = item => item[prop]\n  }\n  return arr1.filter(c => !arr2.map(iteratee).includes(iteratee(c)))\n}\n\nexports.arrays = differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor)\n// => [1.2]\n\n// The `_.property` iteratee shorthand.\nexports.objects = differenceBy([{ x: 2 }, { x: 1 }], [{ x: 1 }], 'x')\n// => [{ 'x': 2 }]\n"
  },
  {
    "path": "src/content/lodash/array/drop/lodash.js",
    "content": "// https://lodash.com/docs/#drop\nimport { drop } from 'lodash'\n\nexports.simple = drop([1, 2, 3])\n// => [2, 3]\n\nexports.withNumber = drop([1, 2, 3], 2)\n// => [3]\n\nexports.withNumberVariant = drop([1, 2, 3], 5)\n// => []\n\nexports.withZero = drop([1, 2, 3], 0)\n// => [1, 2, 3]\n"
  },
  {
    "path": "src/content/lodash/array/drop/notes.md",
    "content": "Creates a slice of <code>array</code> with <code>n</code> elements dropped from the beginning.\n\nResources: [Default parameters](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Functions/Default_parameters) [Array#slice](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/slice)\n"
  },
  {
    "path": "src/content/lodash/array/drop/spec.js",
    "content": "const expected = {\n  simple: [2, 3],\n  withNumber: [3],\n  withNumberVariant: [],\n  withZero: [1, 2, 3],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('drop', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/drop/vanilla.js",
    "content": "const drop = (arr, n = 1) => arr.slice(n)\n\nexports.simple = drop([1, 2, 3])\n// => [2, 3]\n\nexports.withNumber = drop([1, 2, 3], 2)\n// => [3]\n\nexports.withNumberVariant = drop([1, 2, 3], 5)\n// => []\n\nexports.withZero = drop([1, 2, 3], 0)\n// => [1, 2, 3]\n"
  },
  {
    "path": "src/content/lodash/array/dropRight/lodash.js",
    "content": "// https://lodash.com/docs/#dropRight\nimport { dropRight } from 'lodash'\n\nexports.simple = dropRight([1, 2, 3])\n// => [1, 2]\n\nexports.withNumber = dropRight([1, 2, 3], 2)\n// => [1]\n\nexports.withNumberVariant = dropRight([1, 2, 3], 5)\n// => []\n\nexports.withZero = dropRight([1, 2, 3], 0)\n// => [1, 2, 3]\n"
  },
  {
    "path": "src/content/lodash/array/dropRight/notes.md",
    "content": "Creates a slice of <code>array</code> with <code>n</code> elements dropped from the end.\n\nResources: [Default parameters](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Functions/Default_parameters) [Array#slice](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/slice)\n"
  },
  {
    "path": "src/content/lodash/array/dropRight/spec.js",
    "content": "const expected = {\n  simple: [1, 2],\n  withNumber: [1],\n  withNumberVariant: [],\n  withZero: [1, 2, 3],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('dropRight', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/dropRight/vanilla.js",
    "content": "const dropRight = (arr, n = 1) => arr.slice(0, -n || arr.length)\n\nexports.simple = dropRight([1, 2, 3])\n// => [1, 2]\n\nexports.withNumber = dropRight([1, 2, 3], 2)\n// => [1]\n\nexports.withNumberVariant = dropRight([1, 2, 3], 5)\n// => []\n\nexports.withZero = dropRight([1, 2, 3], 0)\n// => [1, 2, 3]\n"
  },
  {
    "path": "src/content/lodash/array/fill/lodash.js",
    "content": "// https://lodash.com/docs/#fill\nimport { fill } from 'lodash'\n\nexports.array = fill([1, 2, 3], 'a')\n// => ['a', 'a', 'a']\n\nexports.arrayConstructor = fill(Array(3), 2)\n// => [2, 2, 2]\n\nexports.partial = fill([4, 6, 8, 10], '*', 1, 3)\n// => [4, '*', '*', 10]\n"
  },
  {
    "path": "src/content/lodash/array/fill/notes.md",
    "content": "Fills elements of <code>array</code> with <code>value</code> from <code>start</code> up to, but not including, <code>end</code>.\n\nResources: [Array#find](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/find) [Source](https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#_find)\n"
  },
  {
    "path": "src/content/lodash/array/fill/spec.js",
    "content": "const expected = {\n  array: ['a', 'a', 'a'],\n  arrayConstructor: [2, 2, 2],\n  partial: [4, '*', '*', 10],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('fill', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/fill/vanilla.js",
    "content": "exports.array = [1, 2, 3].fill('a')\n// => ['a', 'a', 'a']\n\nexports.arrayConstructor = Array(3).fill(2)\n// => [2, 2, 2]\n\nexports.partial = [4, 6, 8, 10].fill('*', 1, 3)\n// => [4, '*', '*', 10]\n"
  },
  {
    "path": "src/content/lodash/array/findIndex/lodash.js",
    "content": "// https://lodash.com/docs/#findIndex\nimport { findIndex } from 'lodash'\n\nconst users = [\n  { user: 'barney', age: 36, active: true },\n  { user: 'fred', age: 40, active: false },\n  { user: 'pebbles', age: 1, active: true },\n]\n\nmodule.exports = findIndex(users, o => o.age >= 40)\n// => 1\n"
  },
  {
    "path": "src/content/lodash/array/findIndex/notes.md",
    "content": "This method is like <a href=\"#find\"><code>\\_.find</code></a> except that it returns the index of the first element <code>predicate</code> returns truthy for instead of the element itself.\n\nResources: [Array#findIndex](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex) [Source](https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#_findindex)\n"
  },
  {
    "path": "src/content/lodash/array/findIndex/spec.js",
    "content": "const expected = 1\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('findIndex', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/findIndex/vanilla.js",
    "content": "const users = [\n  { user: 'barney', age: 36, active: true },\n  { user: 'fred', age: 40, active: false },\n  { user: 'pebbles', age: 1, active: true },\n]\n\nmodule.exports = users.findIndex(o => o.age >= 40)\n// => 1\n"
  },
  {
    "path": "src/content/lodash/array/findLastIndex/lodash.js",
    "content": "// https://lodash.com/docs/#findLastIndex\nimport { findLastIndex } from 'lodash'\n\nconst users = [\n  { user: 'barney', active: true },\n  { user: 'fred', active: false },\n  { user: 'pebbles', active: false },\n]\n\nexports.found = findLastIndex(users, o => !o.active)\n// => 2\n\nexports.notFound = findLastIndex(users, o => !o.user)\n// => -1\n"
  },
  {
    "path": "src/content/lodash/array/findLastIndex/notes.md",
    "content": "This method is like <a href=\"#findIndex\"><code>\\_.findIndex</code></a> except that it iterates over elements of <code>collection</code> from right to left.\n\nResources: [Array#findLastIndex](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/findLastIndex)\n"
  },
  {
    "path": "src/content/lodash/array/findLastIndex/spec.js",
    "content": "const expected = {\n  found: 2,\n  notFound: -1,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('findLastIndex', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/findLastIndex/vanilla.js",
    "content": "const users = [\n  { user: 'barney', active: true },\n  { user: 'fred', active: false },\n  { user: 'pebbles', active: false },\n]\n\nexports.found = users.findLastIndex(o => !o.active)\n// => 2\n\nexports.notFound = users.findLastIndex(o => !o.user)\n// => -1\n"
  },
  {
    "path": "src/content/lodash/array/flatMap/lodash.js",
    "content": "// https://lodash.com/docs/#flatMap\nimport { flatMap } from 'lodash'\n\nmodule.exports = flatMap([1, 2], n => [n, n])\n// => [1, 1, 2, 2]\n"
  },
  {
    "path": "src/content/lodash/array/flatMap/notes.md",
    "content": "Returns a new array formed by applying a given callback function to each element\nof the array, and then flattening the result by one level.\n\nResources:\n[Array#flatMap](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap)\n"
  },
  {
    "path": "src/content/lodash/array/flatMap/spec.js",
    "content": "const expected = [1, 1, 2, 2]\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('flatMap', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/flatMap/vanilla.js",
    "content": "module.exports = [1, 2].flatMap(n => [n, n])\n// => [1, 1, 2, 2]\n"
  },
  {
    "path": "src/content/lodash/array/flatten/lodash.js",
    "content": "// https://lodash.com/docs/#flatten\nimport { flatten } from 'lodash'\n\nmodule.exports = flatten([1, [2, [3, [4]], 5]])\n// => [1, 2, [3, [4]], 5]\n"
  },
  {
    "path": "src/content/lodash/array/flatten/notes.md",
    "content": "Flattens <code>array</code> a single level deep.\n\nResources: [Array#flat](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/flat) [Source](https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#_flatten)\n"
  },
  {
    "path": "src/content/lodash/array/flatten/spec.js",
    "content": "const expected = [1, 2, [3, [4]], 5]\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('flatten', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/flatten/vanilla.js",
    "content": "module.exports = [1, [2, [3, [4]], 5]].flat()\n// => [1, 2, [3, [4]], 5]\n"
  },
  {
    "path": "src/content/lodash/array/flattenDeep/lodash.js",
    "content": "// https://lodash.com/docs/#flattenDeep\nimport { flattenDeep } from 'lodash'\n\nmodule.exports = flattenDeep([1, [2, [3, [4]], 5]])\n// => [1, 2, 3, 4, 5]\n"
  },
  {
    "path": "src/content/lodash/array/flattenDeep/notes.md",
    "content": "Recursively flattens <code>array</code>.\n\nResources: [Array#flat](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/flat#flattening_nested_arrays) [Source](https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#_flattenDeep)\n"
  },
  {
    "path": "src/content/lodash/array/flattenDeep/spec.js",
    "content": "const expected = [1, 2, 3, 4, 5]\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('flattenDeep', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/flattenDeep/vanilla.js",
    "content": "module.exports = [1, [[2], [3, [4]], 5]].flat(Infinity)\n// => [1, 2, 3, 4, 5]\n"
  },
  {
    "path": "src/content/lodash/array/flattenDepth/lodash.js",
    "content": "// https://lodash.com/docs/#flattenDepth\nimport { flattenDepth } from 'lodash'\n\nvar array = [1, [2, [3, [4]], 5]]\n\nexports.example1 = flattenDepth(array, 1)\n// => [1, 2, [3, [4]], 5]\n\nexports.example2 = flattenDepth(array, 2)\n// => [1, 2, 3, [4], 5]\n"
  },
  {
    "path": "src/content/lodash/array/flattenDepth/notes.md",
    "content": "Recursively flatten <code>array</code> up to <code>depth</code> times.\n\nResources: [Array#flat](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/flat#flattening_nested_arrays)\n"
  },
  {
    "path": "src/content/lodash/array/flattenDepth/spec.js",
    "content": "const expected = {\n  example1: [1, 2, [3, [4]], 5],\n  example2: [1, 2, 3, [4], 5],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('flattenDepth', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/flattenDepth/vanilla.js",
    "content": "const flattenDepth = (arr, depth) => arr.flat(depth)\n\nvar array = [1, [2, [3, [4]], 5]]\n\nexports.example1 = flattenDepth(array, 1)\n// => [1, 2, [3, [4]], 5]\n\nexports.example2 = flattenDepth(array, 2)\n// => [1, 2, 3, [4], 5]\n"
  },
  {
    "path": "src/content/lodash/array/fromPairs/lodash.js",
    "content": "// https://lodash.com/docs/#fromPairs\nimport { fromPairs } from 'lodash'\n\nmodule.exports = fromPairs([\n  ['a', 1],\n  ['b', 2],\n])\n// => { 'a': 1, 'b': 2 }\n"
  },
  {
    "path": "src/content/lodash/array/fromPairs/notes.md",
    "content": "The inverse of <a href=\"#toPairs\"><code>\\_.toPairs</code></a>; this method returns an object composed from key-value <code>pairs</code>.\n\nResources: [Object.fromEntries](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries)\n"
  },
  {
    "path": "src/content/lodash/array/fromPairs/spec.js",
    "content": "const expected = { a: 1, b: 2 }\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('fromPairs', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/fromPairs/vanilla.js",
    "content": "module.exports = Object.fromEntries([\n  ['a', 1],\n  ['b', 2],\n])\n// => { 'a': 1, 'b': 2 }\n"
  },
  {
    "path": "src/content/lodash/array/head/.eslintrc",
    "content": "{\n  \"rules\": {\n    \"no-unused-vars\": 0\n  }\n}\n"
  },
  {
    "path": "src/content/lodash/array/head/lodash.js",
    "content": "// https://lodash.com/docs/#head\nimport { head } from 'lodash'\n\nmodule.exports = head([1, 2, 3])\n// => 1\n"
  },
  {
    "path": "src/content/lodash/array/head/notes.md",
    "content": "Gets the first element of <code>array</code>.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Source](https://www.sitepoint.com/lodash-features-replace-es6/)\n"
  },
  {
    "path": "src/content/lodash/array/head/spec.js",
    "content": "const expected = 1\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('head', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/head/vanilla.js",
    "content": "const [head] = [1, 2, 3]\nmodule.exports = head\n// => 1\n"
  },
  {
    "path": "src/content/lodash/array/indexOf/lodash.js",
    "content": "// https://lodash.com/docs/#indexOf\nimport { indexOf } from 'lodash'\n\nmodule.exports = indexOf([1, 2, 3], 3)\n// => 2\n"
  },
  {
    "path": "src/content/lodash/array/indexOf/notes.md",
    "content": "Gets the index at which the first occurrence of <code>value</code> is found in <code>array</code>.\n\nResources: [Array#indexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf)\n"
  },
  {
    "path": "src/content/lodash/array/indexOf/spec.js",
    "content": "const expected = 2\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('indexOf', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/indexOf/vanilla.js",
    "content": "module.exports = [1, 2, 3].indexOf(3)\n// => 2\n"
  },
  {
    "path": "src/content/lodash/array/initial/lodash.js",
    "content": "// https://lodash.com/docs/#initial\nimport { initial } from 'lodash'\n\nmodule.exports = initial([1, 2, 3])\n// => [1, 2]\n"
  },
  {
    "path": "src/content/lodash/array/initial/notes.md",
    "content": "Gets all but the last element of <code>array</code>.\n\nResources: [Array#slice](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/slice)\n"
  },
  {
    "path": "src/content/lodash/array/initial/spec.js",
    "content": "const expected = [1, 2]\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('head', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/initial/vanilla.js",
    "content": "module.exports = [1, 2, 3].slice(0, -1)\n// => [1, 2]\n"
  },
  {
    "path": "src/content/lodash/array/intersection/lodash.js",
    "content": "// https://lodash.com/docs/#intersection\nimport { intersection } from 'lodash'\n\nmodule.exports = intersection([2, 1], [2, 3])\n// => [2]\n"
  },
  {
    "path": "src/content/lodash/array/intersection/notes.md",
    "content": "Creates an array of unique values that are included in all given arrays.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Array#filter](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) [Array#every](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/every)\n"
  },
  {
    "path": "src/content/lodash/array/intersection/spec.js",
    "content": "const expected = [2]\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('intersection', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/intersection/vanilla.js",
    "content": "const intersection = (arr, ...args) =>\n  arr.filter(item => args.every(arr => arr.includes(item)))\n\nmodule.exports = intersection([2, 1], [2, 3])\n// => [2]\n"
  },
  {
    "path": "src/content/lodash/array/intersectionBy/lodash.js",
    "content": "// https://lodash.com/docs/#intersectionBy\nimport { intersectionBy } from 'lodash'\n\nexports.default = intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor)\n// => [2.1]\n\n// The `_.property` iteratee shorthand.\nexports.property = intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x')\n// => [{ 'x': 1 }]\n"
  },
  {
    "path": "src/content/lodash/array/intersectionBy/notes.md",
    "content": "This method is like <a href=\"#intersection\"><code>\\_.intersection</code></a> except that it accepts <code>iteratee</code> which is invoked for each element of each <code>arrays</code> to generate the criterion by which they're compared. The order and references of result values are determined by the first array. The iteratee is invoked with one argument:<br><em>(value)</em>.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Array#pop](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/pop) [Array#filter](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) [Array#every](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/every) [Array#find](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/find)\n"
  },
  {
    "path": "src/content/lodash/array/intersectionBy/spec.js",
    "content": "const expected = {\n  default: [2.1],\n  property: [{ 'x': 1 }],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('intersectionBy', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/intersectionBy/vanilla.js",
    "content": "const intersectionBy = (arr, ...args) => {\n  let iteratee = args.pop()\n  if (typeof iteratee === 'string') {\n    const prop = iteratee\n    iteratee = item => item[prop]\n  }\n\n  return arr.filter(item1 =>\n    args.every(arr2 => arr2.find(item2 => iteratee(item1) === iteratee(item2)))\n  )\n}\n\nexports.default = intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor)\n// => [2.1]\n\n// The `_.property` iteratee shorthand.\nexports.property = intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x')\n// => [{ 'x': 1 }]\n"
  },
  {
    "path": "src/content/lodash/array/join/lodash.js",
    "content": "// https://lodash.com/docs/#join\nimport { join } from 'lodash'\n\nmodule.exports = join(['a', 'b', 'c'], '~')\n// => 'a~b~c'\n"
  },
  {
    "path": "src/content/lodash/array/join/notes.md",
    "content": "Converts all elements in <code>array</code> into a string separated by <code>separator</code>.\n\nResources: [Array#join](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/join)\n"
  },
  {
    "path": "src/content/lodash/array/join/spec.js",
    "content": "const expected = 'a~b~c'\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('join', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/join/vanilla.js",
    "content": "module.exports = ['a', 'b', 'c'].join('~')\n// => 'a~b~c'\n"
  },
  {
    "path": "src/content/lodash/array/last/lodash.js",
    "content": "// https://lodash.com/docs/#last\nimport { last } from 'lodash'\n\nmodule.exports = last(['a', 'b', 'c'])\n// => 'c'\n"
  },
  {
    "path": "src/content/lodash/array/last/notes.md",
    "content": "Gets the last element of <code>array</code>.\n"
  },
  {
    "path": "src/content/lodash/array/last/spec.js",
    "content": "const expected = 'c'\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('last', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/last/vanilla.js",
    "content": "const arr = ['a', 'b', 'c']\n\nmodule.exports = arr[arr.length - 1]\n// => 'c'\n"
  },
  {
    "path": "src/content/lodash/array/lastIndexOf/lodash.js",
    "content": "// https://lodash.com/docs/#lastIndexOf\nimport { lastIndexOf } from 'lodash'\n\nexports.simple = lastIndexOf([1, 2, 1, 2], 2)\n// => 3\n\n// Search from the `fromIndex`\nexports.fromIndex = lastIndexOf([1, 2, 1, 2], 2, 2)\n// => 1\n"
  },
  {
    "path": "src/content/lodash/array/lastIndexOf/notes.md",
    "content": "This method is like <a href=\"#indexOf\"><code>\\_.indexOf</code></a> except that it iterates over elements of <code>array</code> from right to left.\n\nResources: [Array#lastIndexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf)\n"
  },
  {
    "path": "src/content/lodash/array/lastIndexOf/spec.js",
    "content": "const expected = {\n  simple: 3,\n  fromIndex: 1,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('lastIndexOf', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/lastIndexOf/vanilla.js",
    "content": "exports.simple = [1, 2, 1, 2].lastIndexOf(2)\n// => 3\n\n// Search from the `fromIndex`\nexports.fromIndex = [1, 2, 1, 2].lastIndexOf(2, 2)\n// => 1\n"
  },
  {
    "path": "src/content/lodash/array/nth/lodash.js",
    "content": "// https://lodash.com/docs/#nth\nimport { nth } from 'lodash'\n\nconst array = ['a', 'b', 'c', 'd']\n\nexports.simple = nth(array, 1)\n// => 'b'\n\nexports.negative = nth(array, -2)\n// => 'c';\n"
  },
  {
    "path": "src/content/lodash/array/nth/notes.md",
    "content": "Gets the element at index <code>n</code> of <code>array</code>. If <code>n</code> is negative, the nth element from the end is returned.\n\nResources: [Array#slice](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/slice)\n"
  },
  {
    "path": "src/content/lodash/array/nth/spec.js",
    "content": "const expected = {\n  simple: 'b',\n  negative: 'c',\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('nth', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/nth/vanilla.js",
    "content": "const nth = (arr, idx) => arr.slice(idx, idx + 1)[0]\n\nconst array = ['a', 'b', 'c', 'd']\n\nexports.simple = nth(array, 1)\n// => 'b'\n\nexports.negative = nth(array, -2)\n// => 'c';\n"
  },
  {
    "path": "src/content/lodash/array/pull/lodash.js",
    "content": "// https://lodash.com/docs/#pull\nimport { pull } from 'lodash'\n\nvar array = ['a', 'b', 'c', 'a', 'b', 'c']\npull(array, 'a', 'c')\n\nmodule.exports = array\n// => ['b', 'b']\n"
  },
  {
    "path": "src/content/lodash/array/pull/notes.md",
    "content": "Removes all given values from <code>array</code> using <a href=\"http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero\"><code>SameValueZero</code></a> for equality comparisons.<br><br><strong>Note:</strong> Unlike <a href=\"#without\"><code>_.without</code></a>, this method mutates <code>array</code>. Use <a href=\"#remove\"><code>_.remove</code></a> to remove elements from an array by predicate.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Array#forEach](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach) [Array#includes](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/includes) [Array#splice](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice) [Array#indexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf)\n"
  },
  {
    "path": "src/content/lodash/array/pull/spec.js",
    "content": "const expected = ['b', 'b']\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('pull', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/pull/vanilla.js",
    "content": "const pull = (array, ...values) => {\n  values.forEach(value => {\n    while (array.includes(value)) {\n      array.splice(array.indexOf(value), 1)\n    }\n  })\n  return array\n}\n\nvar array = ['a', 'b', 'c', 'a', 'b', 'c']\npull(array, 'a', 'c')\n\nmodule.exports = array\n// => ['b', 'b']\n"
  },
  {
    "path": "src/content/lodash/array/pullAt/lodash.js",
    "content": "// https://lodash.com/docs/#pullAt\nimport { pullAt } from 'lodash'\n\nconst array = ['a', 'b', 'c', 'd']\n\nexports.return = pullAt(array, [1, 3])\n// => ['b', 'd']\n\nexports.array = array\n// => ['a', 'c']\n"
  },
  {
    "path": "src/content/lodash/array/pullAt/notes.md",
    "content": "Removes elements from <code>array</code> corresponding to <code>indexes</code> and returns an array of removed elements.\n\nResources: [Array#reverse](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse) [Array#splice](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice)\n"
  },
  {
    "path": "src/content/lodash/array/pullAt/spec.js",
    "content": "const expected = {\n  return: ['b', 'd'],\n  array: ['a', 'c'],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('pullAt', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/pullAt/vanilla.js",
    "content": "const pullAt = (arr, idxs) =>\n  idxs\n    .reverse()\n    .map(idx => arr.splice(idx, 1)[0])\n    .reverse()\n\nconst array = ['a', 'b', 'c', 'd']\n\nexports.return = pullAt(array, [1, 3])\n// => ['b', 'd']\n\nexports.array = array\n// => ['a', 'c']\n"
  },
  {
    "path": "src/content/lodash/array/reject/lodash.js",
    "content": "// https://lodash.com/docs/#reject\nimport { reject } from 'lodash'\n\nmodule.exports = reject(\n  ['a', 'b', 'c', 'd', 'e', 'f', 'g'],\n  char => char === 'd'\n)\n// => [['a', 'b', 'c', 'e', 'f', 'g']]\n"
  },
  {
    "path": "src/content/lodash/array/reject/notes.md",
    "content": "The opposite of <a href=\"#filter\"><code>\\_.filter</code></a>; this method returns the elements of <code>collection</code> that <code>predicate</code> does <strong>not</strong> return truthy for.\n\nResources: [Array#filter](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)\n"
  },
  {
    "path": "src/content/lodash/array/reject/spec.js",
    "content": "const expected = ['a', 'b', 'c', 'e', 'f', 'g']\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('reject', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/reject/vanilla.js",
    "content": "module.exports = ['a', 'b', 'c', 'd', 'e', 'f', 'g'].filter(\n  char => char !== 'd'\n)\n// => [['a', 'b', 'c', 'e', 'f', 'g']]\n"
  },
  {
    "path": "src/content/lodash/array/remove/lodash.js",
    "content": "// https://lodash.com/docs/#remove\nimport { remove } from 'lodash'\n\nconst array = [1, 2, 3, 4]\nconst evens = remove(array, n => {\n  return n % 2 === 0\n})\n\nexports.array = array\n// => [1, 3]\n\nexports.evens = evens\n// => [2, 4]\n\nconst newArray = [1, 2, 3, 4, 5]\n\nexports.all = remove(newArray, () => newArray.length > 0)\n// => [1, 2, 3, 4, 5]\n\nexports.newArray = newArray\n// => []\n"
  },
  {
    "path": "src/content/lodash/array/remove/notes.md",
    "content": "Removes all elements from <code>array</code> that <code>predicate</code> returns truthy for and returns an array of the removed elements. The predicate is invoked with three arguments: <em>(value, index, array)</em>.\n\nResources: [Array#filter](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) [Array#splice](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice)\n"
  },
  {
    "path": "src/content/lodash/array/remove/spec.js",
    "content": "const expected = {\n  array: [1, 3],\n  evens: [2, 4],\n  newArray: [],\n  all: [1, 2, 3, 4, 5],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('remove', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/remove/vanilla.js",
    "content": "const remove = (array, iteratee) => {\n  // in order to not mutate the original array until the very end\n  // we want to cache the indexes to remove while preparing the result to return\n  const toRemove = []\n  const result = array.filter((item, i) => iteratee(item) && toRemove.push(i))\n\n  // just before returning, we can then remove the items, making sure we start\n  // from the higher indexes: otherwise they would shift at each removal\n  toRemove.reverse().forEach(i => array.splice(i, 1))\n  return result\n}\n\nconst array = [1, 2, 3, 4]\nconst evens = remove(array, n => {\n  return n % 2 === 0\n})\n\nexports.array = array\n// => [1, 3]\n\nexports.evens = evens\n// => [2, 4]\n\nconst newArray = [1, 2, 3, 4, 5]\n\nexports.all = remove(newArray, () => newArray.length > 0)\n// => [1, 2, 3, 4, 5]\n\nexports.newArray = newArray\n// => []\n"
  },
  {
    "path": "src/content/lodash/array/reverse/lodash.js",
    "content": "// https://lodash.com/docs/#reverse\nimport { reverse } from 'lodash'\n\nconst array = [1, 2, 3]\n\nexports.return = reverse(array)\n// => [3, 2, 1]\n\nexports.mutated = array\n// => [3, 2, 1]\n"
  },
  {
    "path": "src/content/lodash/array/reverse/notes.md",
    "content": "Reverses <code>array</code> so that the first element becomes the last, the second element becomes the second to last, and so on.\n\nResources: [Array#reverse](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse)\n"
  },
  {
    "path": "src/content/lodash/array/reverse/spec.js",
    "content": "const expected = {\n  return: [3, 2, 1],\n  mutated: [3, 2, 1],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('reverse', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/reverse/vanilla.js",
    "content": "const array = [1, 2, 3]\n\nexports.return = array.reverse()\n// => [3, 2, 1]\n\nexports.mutated = array\n// => [3, 2, 1]\n"
  },
  {
    "path": "src/content/lodash/array/slice/lodash.js",
    "content": "// https://lodash.com/docs/#slice\nimport { slice } from 'lodash'\n\nexports.array = slice([1, 2, 3, 4], 2, 6)\n// => [ 3, 4 ]\n\nconst array = []\narray[6] = 6\narray[9] = 9\n\nexports.undefined = slice(array, 2, 6)\n// => [ undefined, undefined, undefined, undefined ]\n"
  },
  {
    "path": "src/content/lodash/array/slice/notes.md",
    "content": "Creates a slice of <code>array</code> from <code>start</code> up to, but not including, <code>end</code>.<br><br><strong>Note:</strong> This method is used instead of <a href=\"https://mdn.io/Array/slice\"><code>Array#slice</code></a> to ensure dense arrays are returned.\n\nResources: [Sparse vs Dense Arrays](https://remysharp.com/2018/06/26/an-adventure-in-sparse-arrays)\n"
  },
  {
    "path": "src/content/lodash/array/slice/spec.js",
    "content": "const expected = {\n  array: [3, 4],\n  undefined: [undefined, undefined, undefined, undefined],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ndescribe('slice', () => {\n  test('normal behaviour', () => {\n    expect(lodash.array).toEqual(expected.array)\n    expect(plain.array).toEqual(lodash.array)\n  })\n\n  test('empty array are dense', () => {\n    const denseExpected = expected.undefined.map(v => typeof v)\n    const denseLodash = lodash.undefined.map(v => typeof v)\n    const densePlain = plain.undefined.map(v => typeof v)\n\n    expect(denseLodash).toEqual(denseExpected)\n    expect(densePlain).toEqual(denseLodash)\n  })\n})\n"
  },
  {
    "path": "src/content/lodash/array/slice/vanilla.js",
    "content": "const slice = (arr, start, end) => [...arr.slice(start, end)]\n\nexports.array = slice([1, 2, 3, 4], 2, 6)\n// => [ 3, 4 ]\n\nconst array = []\narray[6] = 6\narray[9] = 9\n\nexports.undefined = slice(array, 2, 6)\n// => [ undefined, undefined, undefined, undefined ]\n"
  },
  {
    "path": "src/content/lodash/array/sortedIndexOf/lodash.js",
    "content": "// https://lodash.com/docs/#sortedIndexOf\nimport { sortedIndexOf } from 'lodash'\n\nmodule.exports = sortedIndexOf([4, 5, 5, 5, 6], 5)\n// => 1\n"
  },
  {
    "path": "src/content/lodash/array/sortedIndexOf/notes.md",
    "content": "This method is like <a href=\"#indexOf\"><code>\\_.indexOf</code></a> except that it performs the search on a sorted <code>array</code>.\n\nResources: [Array#sort](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) [Array#indexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf)\n"
  },
  {
    "path": "src/content/lodash/array/sortedIndexOf/spec.js",
    "content": "const expected = 1\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('sortedIndexOf', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/sortedIndexOf/vanilla.js",
    "content": "const sortedIndexOf = (arr, value) => [...arr].sort().indexOf(value)\n\nmodule.exports = sortedIndexOf([4, 5, 5, 5, 6], 5)\n// => 1\n"
  },
  {
    "path": "src/content/lodash/array/sortedLastIndexOf/lodash.js",
    "content": "// https://lodash.com/docs/#sortedLastIndexOf\nimport { sortedLastIndexOf } from 'lodash'\n\nmodule.exports = sortedLastIndexOf([4, 5, 5, 5, 6], 5)\n// => 3\n"
  },
  {
    "path": "src/content/lodash/array/sortedLastIndexOf/notes.md",
    "content": "This method is like <a href=\"#sortedIndex\"><code>\\_.sortedIndex</code></a> except that it returns the highest index at which <code>value</code> should be inserted into <code>array</code> in order to maintain its sort order.\n\nResources: [Array#sort](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) [Array#lastIndexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf)\n"
  },
  {
    "path": "src/content/lodash/array/sortedLastIndexOf/spec.js",
    "content": "const expected = 3\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('sortedLastIndexOf', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/sortedLastIndexOf/vanilla.js",
    "content": "// https://lodash.com/docs/#sortedLastIndexOf\nconst sortedLastIndexOf = (arr, value) => [...arr].sort().lastIndexOf(value)\n\nmodule.exports = sortedLastIndexOf([4, 5, 5, 5, 6], 5)\n// => 3\n"
  },
  {
    "path": "src/content/lodash/array/sortedUniq/lodash.js",
    "content": "// https://lodash.com/docs/#sortedUniq\nimport { sortedUniq } from 'lodash'\n\nmodule.exports = sortedUniq([1, 1, 2])\n// => [1, 2]\n"
  },
  {
    "path": "src/content/lodash/array/sortedUniq/notes.md",
    "content": "This method is like <a href=\"#uniq\"><code>\\_.uniq</code></a> except that it's designed and optimized for sorted arrays.\n\nResources: [Set](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Set) [Array#sort](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)\n"
  },
  {
    "path": "src/content/lodash/array/sortedUniq/spec.js",
    "content": "const expected = [1, 2]\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('sortedUniq', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/sortedUniq/vanilla.js",
    "content": "const sortedUniq = arr => [...new Set(arr)].sort()\n\nmodule.exports = sortedUniq([1, 1, 2])\n// => [1, 2]\n"
  },
  {
    "path": "src/content/lodash/array/tail/.eslintrc",
    "content": "{\n  \"rules\": {\n    \"no-unused-vars\": 0\n  }\n}\n"
  },
  {
    "path": "src/content/lodash/array/tail/lodash.js",
    "content": "// https://lodash.com/docs/#tail\nimport { tail } from 'lodash'\n\nmodule.exports = tail([1, 2, 3])\n// => [2, 3]\n"
  },
  {
    "path": "src/content/lodash/array/tail/notes.md",
    "content": "Gets all but the first element of <code>array</code>.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Source](https://www.sitepoint.com/lodash-features-replace-es6/)\n"
  },
  {
    "path": "src/content/lodash/array/tail/spec.js",
    "content": "const expected = [2, 3]\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('tail', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/tail/vanilla.js",
    "content": "const [, ...tail] = [1, 2, 3]\nmodule.exports = tail\n// => [2, 3]\n"
  },
  {
    "path": "src/content/lodash/array/take/lodash.js",
    "content": "// https://lodash.com/docs/#take\nimport { take } from 'lodash'\n\nexports.default = take([1, 2, 3])\n// => [1]\n\nexports.two = take([1, 2, 3], 2)\n// => [1, 2]\n\nexports.all = take([1, 2, 3], 5)\n// => [1, 2, 3]\n\nexports.none = take([1, 2, 3], 0)\n// => []\n"
  },
  {
    "path": "src/content/lodash/array/take/notes.md",
    "content": "Creates a slice of <code>array</code> with <code>n</code> elements taken from the beginning.\n\nResources: [Default parameters](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Functions/Default_parameters) [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Array#splice](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice)\n"
  },
  {
    "path": "src/content/lodash/array/take/spec.js",
    "content": "const expected = {\n  default: [1],\n  two: [1, 2],\n  all: [1, 2, 3],\n  none: [],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('take', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/take/vanilla.js",
    "content": "const take = (arr, qty = 1) => [...arr].splice(0, qty)\n\nexports.default = take([1, 2, 3])\n// => [1]\n\nexports.two = take([1, 2, 3], 2)\n// => [1, 2]\n\nexports.all = take([1, 2, 3], 5)\n// => [1, 2, 3]\n\nexports.none = take([1, 2, 3], 0)\n// => []\n"
  },
  {
    "path": "src/content/lodash/array/takeRight/lodash.js",
    "content": "// https://lodash.com/docs/#takeRight\nimport { takeRight } from 'lodash'\n\nexports.default = takeRight([1, 2, 3])\n// => [3]\n\nexports.two = takeRight([1, 2, 3], 2)\n// => [2, 3]\n\nexports.all = takeRight([1, 2, 3], 5)\n// => [1, 2, 3]\n\nexports.none = takeRight([1, 2, 3], 0)\n// => []\n"
  },
  {
    "path": "src/content/lodash/array/takeRight/notes.md",
    "content": "Creates a slice of <code>array</code> with <code>n</code> elements taken from the end.\n\nResources: [Default parameters](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Functions/Default_parameters) [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Array#splice](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice)\n"
  },
  {
    "path": "src/content/lodash/array/takeRight/spec.js",
    "content": "const expected = {\n  default: [3],\n  two: [2, 3],\n  all: [1, 2, 3],\n  none: [],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('takeRight', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/takeRight/vanilla.js",
    "content": "const takeRight = (arr, qty = 1) => [...arr].splice(-qty, qty)\n\nexports.default = takeRight([1, 2, 3])\n// => [3]\n\nexports.two = takeRight([1, 2, 3], 2)\n// => [2, 3]\n\nexports.all = takeRight([1, 2, 3], 5)\n// => [1, 2, 3]\n\nexports.none = takeRight([1, 2, 3], 0)\n// => []\n"
  },
  {
    "path": "src/content/lodash/array/toPairs/lodash.js",
    "content": "// https://lodash.com/docs/#toPairs\nimport { toPairs } from 'lodash'\n\nfunction Foo() {\n  this.a = 1\n  this.b = 2\n}\n\nFoo.prototype.c = 3\n\nmodule.exports = toPairs(new Foo())\n// => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n"
  },
  {
    "path": "src/content/lodash/array/toPairs/notes.md",
    "content": "Creates an array of own enumerable string keyed-value pairs for <code>object</code> which can be consumed by <a href=\"#fromPairs\"><code>\\_.fromPairs</code></a>. If <code>object</code> is a map or set, its entries are returned.\n\nResources: [Object.entries](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/entries)\n"
  },
  {
    "path": "src/content/lodash/array/toPairs/spec.js",
    "content": "const expected = [\n  ['a', 1],\n  ['b', 2],\n]\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('toPairs', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/toPairs/vanilla.js",
    "content": "function Foo() {\n  this.a = 1\n  this.b = 2\n}\n\nFoo.prototype.c = 3\n\nmodule.exports = Object.entries(new Foo())\n// => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n"
  },
  {
    "path": "src/content/lodash/array/union/lodash.js",
    "content": "// https://lodash.com/docs/#union\nimport { union } from 'lodash'\n\nmodule.exports = union([2], [1, 2], [1, 2])\n// => [2, 1]\n"
  },
  {
    "path": "src/content/lodash/array/union/notes.md",
    "content": "Creates an array of unique values, in order, from all given arrays.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Set](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Set)\n"
  },
  {
    "path": "src/content/lodash/array/union/spec.js",
    "content": "const expected = [2, 1]\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('union', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/union/vanilla.js",
    "content": "const union = (arr, ...args) => [...new Set(arr.concat(...args))]\n\nmodule.exports = union([2], [1, 2], [1, 2])\n// => [2, 1]\n"
  },
  {
    "path": "src/content/lodash/array/unionBy/lodash.js",
    "content": "// https://lodash.com/docs/#unionBy\nimport { unionBy } from 'lodash'\n\nexports.default = unionBy([2.1], [1.2, 2.3], Math.floor)\n// => [2.1, 1.2]\n\n// The `_.property` iteratee shorthand.\nexports.property = unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x')\n// => [{ 'x': 1 }, { 'x': 2 }]\n\n// _.uniqBy example\nexports.uniqBy = unionBy([2.1, 1.2, 2.3], Math.floor)\n// => [2.1, 1.2]\n"
  },
  {
    "path": "src/content/lodash/array/unionBy/notes.md",
    "content": "This method is like <a href=\"#union\"><code>\\_.union</code></a> except that it accepts <code>iteratee</code> which is invoked for each element of each <code>arrays</code> to generate the criterion by which uniqueness is computed. Result values are chosen from the first array in which the value occurs. The iteratee is invoked with one argument:<br><em>(value)</em>.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Array#pop](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/pop) [Array#concat](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/concat) [Array#filter](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) [Array#findIndex](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex)\n"
  },
  {
    "path": "src/content/lodash/array/unionBy/spec.js",
    "content": "const expected = {\n  default: [2.1, 1.2],\n  property: [{ 'x': 1 }, { 'x': 2 }],\n  uniqBy: [2.1, 1.2],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('unionBy', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/unionBy/vanilla.js",
    "content": "// This implementation also works for\n// https://youmightnotneed.com/lodash#uniqBy\n// by passing only one array as an argument\n// before the iteratee function\nconst unionBy = (arr, ...args) => {\n  let iteratee = args.pop()\n  if (typeof iteratee === 'string') {\n    const prop = iteratee\n    iteratee = item => item[prop]\n  }\n\n  return arr\n    .concat(...args)\n    .filter(\n      (x, i, self) => i === self.findIndex(y => iteratee(x) === iteratee(y))\n    )\n}\n\nexports.default = unionBy([2.1], [1.2, 2.3], Math.floor)\n// => [2.1, 1.2]\n\n// The `_.property` iteratee shorthand.\nexports.property = unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x')\n// => [{ 'x': 1 }, { 'x': 2 }]\n\n// _.uniqBy example\nexports.uniqBy = unionBy([2.1, 1.2, 2.3], Math.floor)\n// => [2.1, 1.2]\n"
  },
  {
    "path": "src/content/lodash/array/uniq/lodash.js",
    "content": "// https://lodash.com/docs/#uniq\nimport { uniq } from 'lodash'\n\nmodule.exports = uniq([2, 1, 2])\n// => [2, 1]\n"
  },
  {
    "path": "src/content/lodash/array/uniq/notes.md",
    "content": "Creates a duplicate-free version of an array, in which only the first occurrence of each element is kept. The order of result values is determined by the order they occur in the array.\n\nResources: [Set](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Set) [Source](https://www.reindex.io/blog/you-might-not-need-underscore/)\n"
  },
  {
    "path": "src/content/lodash/array/uniq/spec.js",
    "content": "const expected = [2, 1]\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('uniq', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/uniq/vanilla.js",
    "content": "module.exports = [...new Set([2, 1, 2])]\n// => [2, 1]\n"
  },
  {
    "path": "src/content/lodash/array/uniqBy/lodash.js",
    "content": "// https://lodash.com/docs/#uniqBy\nimport { uniqBy } from 'lodash'\n\nexports.default = uniqBy([2.1, 1.2, 2.3], Math.floor)\n// => [2.1, 1.2]\n\n// The `_.property` iteratee shorthand.\nexports.property = uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x')\n// => [{ 'x': 1 }, { 'x': 2 }]\n"
  },
  {
    "path": "src/content/lodash/array/uniqBy/notes.md",
    "content": "This method is like <a href=\"#uniq\"><code>\\_.uniq</code></a> except that it accepts <code>iteratee</code> which is invoked for each element in <code>array</code> to generate the criterion by which uniqueness is computed. The order of result values is determined by the order they occur in the array. The iteratee is invoked with one argument:<br><em>(value)</em>.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Array#filter](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) [Array#findIndex](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex)\n"
  },
  {
    "path": "src/content/lodash/array/uniqBy/spec.js",
    "content": "const expected = {\n  default: [2.1, 1.2],\n  property: [{ 'x': 1 }, { 'x': 2 }],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('uniqBy', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/uniqBy/vanilla.js",
    "content": "// This is a simplified implementation\n// of https://youmightnotneed.com/lodash#unionBy\n// which would work with only one array\nconst uniqBy = (arr, iteratee) => {\n  if (typeof iteratee === 'string') {\n    const prop = iteratee\n    iteratee = item => item[prop]\n  }\n\n  return arr.filter(\n    (x, i, self) => i === self.findIndex(y => iteratee(x) === iteratee(y))\n  )\n}\n\nexports.default = uniqBy([2.1, 1.2, 2.3], Math.floor)\n// => [2.1, 1.2]\n\n// The `_.property` iteratee shorthand.\nexports.property = uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x')\n// => [{ 'x': 1 }, { 'x': 2 }]\n"
  },
  {
    "path": "src/content/lodash/array/unzip/lodash.js",
    "content": "// https://lodash.com/docs/#unzip\nimport { unzip } from 'lodash'\n\nmodule.exports = unzip([\n  ['a', 1, true],\n  ['b', 2, false],\n])\n// => [['a', 'b'], [1, 2], [true, false]]\n"
  },
  {
    "path": "src/content/lodash/array/unzip/notes.md",
    "content": "This method is like <a href=\"#zip\"><code>\\_.zip</code></a> except that it accepts an array of grouped elements and creates an array regrouping the elements to their pre-zip configuration.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Array#map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/map)\n"
  },
  {
    "path": "src/content/lodash/array/unzip/spec.js",
    "content": "const expected = [\n  ['a', 'b'],\n  [1, 2],\n  [true, false],\n]\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('unzip', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/unzip/vanilla.js",
    "content": "const zip = (arr, ...args) =>\n  arr.map((value, idx) => [value, ...args.map(arr => arr[idx])])\n\nconst unzip = ([...args]) => zip(...args)\n\nmodule.exports = unzip([\n  ['a', 1, true],\n  ['b', 2, false],\n])\n// => [['a', 'b'], [1, 2], [true, false]]\n"
  },
  {
    "path": "src/content/lodash/array/without/lodash.js",
    "content": "// https://lodash.com/docs/#without\nimport { without } from 'lodash'\n\nconst array = [2, 1, 2, 3]\nexports.return = without(array, 1, 2)\n// => [3]\n\nexports.array = array\n// => [2, 1, 2, 3]\n"
  },
  {
    "path": "src/content/lodash/array/without/notes.md",
    "content": "Creates an array excluding all given values.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Array#filter](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) [Array#includes](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/includes)\n"
  },
  {
    "path": "src/content/lodash/array/without/spec.js",
    "content": "const expected = {\n  return: [3],\n  array: [2, 1, 2, 3],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('without', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/without/vanilla.js",
    "content": "const without = (arr, ...args) => arr.filter(item => !args.includes(item))\n\nconst array = [2, 1, 2, 3]\n\nexports.return = without(array, 1, 2)\n// => [3]\n\nexports.array = array\n// => [2, 1, 2, 3]\n"
  },
  {
    "path": "src/content/lodash/array/xor/lodash.js",
    "content": "// https://lodash.com/docs/#xor\nimport { xor } from 'lodash'\n\nmodule.exports.unique = xor([2, 1, 4], [2, 3, 2, 6])\n// => [1, 4, 3, 6]\n\nmodule.exports.duplicates = xor([1, 1, 2], [2, 2, 3])\n// => [1, 3]\n\nmodule.exports.variadic = xor([1], [2], [1, 3], [2, 4])\n// => [3, 4]\n"
  },
  {
    "path": "src/content/lodash/array/xor/notes.md",
    "content": "Creates an array of unique values that is the <a href=\"https://en.wikipedia.org/wiki/Symmetric_difference\">symmetric difference</a> of the given arrays. The order of result values is determined by the order they occur in the arrays.\n\nResources: [Array#filter](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) [Array#includes](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/includes)\n"
  },
  {
    "path": "src/content/lodash/array/xor/spec.js",
    "content": "const expected = {\n  unique: [1, 4, 3, 6],\n  duplicates: [1, 3],\n  variadic: [3, 4],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('xor', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/xor/vanilla.js",
    "content": "// this function can be used as a standalone xor if you only\n// ever need it to work with two arguments\nconst binaryXor = (arr1, arr2) => {\n  const a = arr1.filter(x => !arr2.includes(x))\n  const b = arr2.filter(x => !arr1.includes(x))\n\n  return Array.from(new Set([...a, ...b]))\n}\n\nconst xor = (...arrays) => arrays.reduce(binaryXor, [])\n\nmodule.exports.unique = xor([2, 1, 4], [2, 3, 2, 6])\n// => [1, 4, 3, 6]\n\nmodule.exports.duplicates = xor([1, 1, 2], [2, 2, 3])\n// => [1, 3]\n\nmodule.exports.variadic = xor([1], [2], [1, 3], [2, 4])\n// => [3, 4]\n"
  },
  {
    "path": "src/content/lodash/array/zip/lodash.js",
    "content": "// https://lodash.com/docs/#zip\nimport { zip } from 'lodash'\n\nmodule.exports = zip(['a', 'b'], [1, 2], [true, false])\n// => [['a', 1, true], ['b', 2, false]]\n"
  },
  {
    "path": "src/content/lodash/array/zip/notes.md",
    "content": "Creates an array of grouped elements, the first of which contains the first elements of the given arrays, the second of which contains the second elements of the given arrays, and so on.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Array#map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/map)\n"
  },
  {
    "path": "src/content/lodash/array/zip/spec.js",
    "content": "const expected = [\n  ['a', 1, true],\n  ['b', 2, false],\n]\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('zip', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/zip/vanilla.js",
    "content": "const zip = (arr, ...args) =>\n  arr.map((value, idx) => [value, ...args.map(arr => arr[idx])])\n\nmodule.exports = zip(['a', 'b'], [1, 2], [true, false])\n// => [['a', 1, true], ['b', 2, false]]\n"
  },
  {
    "path": "src/content/lodash/array/zipObject/lodash.js",
    "content": "// https://lodash.com/docs/#zipObject\nimport { zipObject } from 'lodash'\n\nmodule.exports = zipObject(['a', 'b'], [1, 2])\n// => { 'a': 1, 'b': 2 }\n"
  },
  {
    "path": "src/content/lodash/array/zipObject/notes.md",
    "content": "This method is like \\_.fromPairs except that it accepts two arrays, one of property identifiers and one of corresponding values.\n\nResources: [Array#reduce](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce)\n"
  },
  {
    "path": "src/content/lodash/array/zipObject/spec.js",
    "content": "const expected = { a: 1, b: 2 }\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('zipObject', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/array/zipObject/vanilla.js",
    "content": "const zipObject = (keys, values) =>\n  keys.reduce((acc, key, idx) => {\n    acc[key] = values[idx]\n    return acc\n  }, {})\n\nmodule.exports = zipObject(['a', 'b'], [1, 2])\n// => { 'a': 1, 'b': 2 }\n"
  },
  {
    "path": "src/content/lodash/collection/every/lodash.js",
    "content": "// https://lodash.com/docs/#every\nimport { every } from 'lodash'\n\nfunction isLargerThanTen(element) {\n  return element >= 10\n}\n\nmodule.exports = every([10, 20, 30], isLargerThanTen)\n// => true\n"
  },
  {
    "path": "src/content/lodash/collection/every/notes.md",
    "content": "Checks if <code>predicate</code> returns truthy for <strong>all</strong> elements of <code>collection</code>. Iteration is stopped once <code>predicate</code> returns falsey. The predicate is invoked with three arguments: <em>(value, index|key, collection)</em>.\n\nResources: [Array#every](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/every) [Source](https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#_every)\n"
  },
  {
    "path": "src/content/lodash/collection/every/spec.js",
    "content": "const expected = true\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('every', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/collection/every/vanilla.js",
    "content": "function isLargerThanTen(element) {\n  return element >= 10\n}\n\nmodule.exports = [10, 20, 30].every(isLargerThanTen)\n// => true\n"
  },
  {
    "path": "src/content/lodash/collection/filter/lodash.js",
    "content": "// https://lodash.com/docs/#filter\nimport { filter } from 'lodash'\n\nfunction isBigEnough(value) {\n  return value >= 10\n}\n\nmodule.exports = filter([12, 5, 8, 130, 44], isBigEnough)\n// => [12, 130, 44]\n"
  },
  {
    "path": "src/content/lodash/collection/filter/notes.md",
    "content": "Iterates over elements of <code>collection</code>, returning an array of all elements <code>predicate</code> returns truthy for. The predicate is invoked with three arguments: <em>(value, index|key, collection)</em>.\n\nResources: [Array#filter](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) [Source](https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#_filter)\n"
  },
  {
    "path": "src/content/lodash/collection/filter/spec.js",
    "content": "const expected = [12, 130, 44]\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('filter', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/collection/filter/vanilla.js",
    "content": "function isBigEnough(value) {\n  return value >= 10\n}\n\nmodule.exports = [12, 5, 8, 130, 44].filter(isBigEnough)\n// => [12, 130, 44]\n"
  },
  {
    "path": "src/content/lodash/collection/find/lodash.js",
    "content": "// https://lodash.com/docs/#find\nimport { find } from 'lodash'\n\nconst users = [\n  { user: 'barney', age: 36, active: true },\n  { user: 'fred', age: 40, active: false },\n  { user: 'pebbles', age: 1, active: true },\n]\n\nmodule.exports = find(users, o => o.age < 40)\n// => { user: \"barney\", age: 36, active: true }\n"
  },
  {
    "path": "src/content/lodash/collection/find/notes.md",
    "content": "Iterates over elements of <code>collection</code>, returning the first element <code>predicate</code> returns truthy for. The predicate is invoked with three arguments: <em>(value, index|key, collection)</em>.\n\nResources: [Array#find](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/find) [Source](https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#_find)\n"
  },
  {
    "path": "src/content/lodash/collection/find/spec.js",
    "content": "const expected = { user: 'barney', age: 36, active: true }\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('find', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/collection/find/vanilla.js",
    "content": "const users = [\n  { user: 'barney', age: 36, active: true },\n  { user: 'fred', age: 40, active: false },\n  { user: 'pebbles', age: 1, active: true },\n]\n\nmodule.exports = users.find(o => o.age < 40)\n// => { user: \"barney\", age: 36, active: true }\n"
  },
  {
    "path": "src/content/lodash/collection/forEach/lodash.js",
    "content": "// https://lodash.com/docs/#forEach\nimport { forEach } from 'lodash'\n\nconst array = ['a', 'b', 'c']\n\nforEach(array, (item, index) => {\n  console.log(item, index)\n})\n// => a 0\n// => b 1\n// => c 2\n\nconst obj = { a: 'red', b: 'green' }\nforEach(obj, (item, key) => {\n  console.log(item, key)\n})\n// => red a\n// => green b"
  },
  {
    "path": "src/content/lodash/collection/forEach/notes.md",
    "content": "Iterates over elements of <code>collection</code> and invokes <code>iteratee</code> for each element. The iteratee is invoked with three arguments: <em>(value, index|key, collection)</em>. Iteratee functions may exit iteration early by explicitly returning <code>false</code>.\n\nResources: [Array#forEach](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach) [Object#entries](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries) [Source](https://www.reindex.io/blog/you-might-not-need-underscore/#iterate)\n"
  },
  {
    "path": "src/content/lodash/collection/forEach/spec.js",
    "content": "describe('forEach', () => {\n  describe('lodash', () => {\n    const logCache = console.log\n\n    beforeAll(() => {\n      console.log = jest.fn()\n      require('./lodash')\n    })\n    afterAll(() => {\n      console.log = logCache\n    })\n\n    test('log has been called correctly', () => {\n      expect(console.log).toHaveBeenNthCalledWith(1, 'a', 0)\n      expect(console.log).toHaveBeenNthCalledWith(2, 'b', 1)\n      expect(console.log).toHaveBeenNthCalledWith(3, 'c', 2)\n      expect(console.log).toHaveBeenNthCalledWith(4, 'red', 'a')\n      expect(console.log).toHaveBeenNthCalledWith(5, 'green', 'b')\n    })\n  })\n\n  describe('vanilla', () => {\n    const logCache = console.log\n\n    beforeAll(() => {\n      console.log = jest.fn()\n      require('./vanilla')\n    })\n    afterAll(() => {\n      console.log = logCache\n    })\n\n    test('log has been called correctly', () => {\n      expect(console.log).toHaveBeenNthCalledWith(1, 'a', 0)\n      expect(console.log).toHaveBeenNthCalledWith(2, 'b', 1)\n      expect(console.log).toHaveBeenNthCalledWith(3, 'c', 2)\n      expect(console.log).toHaveBeenNthCalledWith(4, 'red', 'a')\n      expect(console.log).toHaveBeenNthCalledWith(5, 'green', 'b')\n    })\n  })\n})\n"
  },
  {
    "path": "src/content/lodash/collection/forEach/vanilla.js",
    "content": "['a', 'b', 'c'].forEach((item, index) => {\n  console.log(item, index)\n})\n// => a 0\n// => b 1\n// => c 2\n\nObject.entries({ a: 'red', b: 'green' }).forEach(([key, item]) => {\n  console.log(item, key)\n})\n// => red a\n// => green b"
  },
  {
    "path": "src/content/lodash/collection/forEachRight/lodash.js",
    "content": "// https://lodash.com/docs/#forEachRight\nimport { forEachRight } from 'lodash'\n\nconst array = ['a', 'b', 'c']\n\nmodule.exports = forEachRight(array, (item, index) => {\n  console.log(item, index)\n})\n// => c 2\n// => b 1\n// => a 0\n"
  },
  {
    "path": "src/content/lodash/collection/forEachRight/notes.md",
    "content": "This method is like <a href=\"#forEach\"><code>\\_.forEach</code></a> except that it iterates over elements of <code>collection</code> from right to left.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Array#reverse](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse) [Array#forEach](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach)\n"
  },
  {
    "path": "src/content/lodash/collection/forEachRight/spec.js",
    "content": "describe('forEach', () => {\n  describe('lodash', () => {\n    const logCache = console.log\n\n    beforeAll(() => {\n      console.log = jest.fn()\n      require('./lodash')\n    })\n    afterAll(() => {\n      console.log = logCache\n    })\n\n    test('log has been called correctly', () => {\n      expect(console.log).toHaveBeenNthCalledWith(1, 'c', 2)\n      expect(console.log).toHaveBeenNthCalledWith(2, 'b', 1)\n      expect(console.log).toHaveBeenNthCalledWith(3, 'a', 0)\n    })\n  })\n\n  describe('vanilla', () => {\n    const logCache = console.log\n\n    beforeAll(() => {\n      console.log = jest.fn()\n      require('./vanilla')\n    })\n    afterAll(() => {\n      console.log = logCache\n    })\n\n    test('log has been called correctly', () => {\n      expect(console.log).toHaveBeenNthCalledWith(1, 'c', 2)\n      expect(console.log).toHaveBeenNthCalledWith(2, 'b', 1)\n      expect(console.log).toHaveBeenNthCalledWith(3, 'a', 0)\n    })\n  })\n})\n"
  },
  {
    "path": "src/content/lodash/collection/forEachRight/vanilla.js",
    "content": "const forEachRight = (array, iteratee) =>\n  [...array].reverse().forEach((val, index) => {\n    iteratee(val, array.length - 1 - index, array)\n  })\n\nconst array = ['a', 'b', 'c']\n\nmodule.exports = forEachRight(array, (item, index) => {\n  console.log(item, index)\n})\n// => c 2\n// => b 1\n// => a 0\n"
  },
  {
    "path": "src/content/lodash/collection/includes/lodash.js",
    "content": "// https://lodash.com/docs/#includes\nimport { includes } from 'lodash'\n\nmodule.exports = includes([1, 2, 3], 1)\n// => true\n"
  },
  {
    "path": "src/content/lodash/collection/includes/notes.md",
    "content": "Checks if <code>value</code> is in <code>collection</code>. If <code>collection</code> is a string, it's checked for a substring of <code>value</code>. If <code>fromIndex</code> is negative, it's used as the offset from the end of <code>collection</code>.\n\nResources: [Array#includes](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/includes) [Source](https://www.sitepoint.com/lodash-features-replace-es6/)\n"
  },
  {
    "path": "src/content/lodash/collection/includes/spec.js",
    "content": "const expected = true\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('includes', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/collection/includes/vanilla.js",
    "content": "module.exports = [1, 2, 3].includes(1)\n// => true\n"
  },
  {
    "path": "src/content/lodash/collection/map/lodash.js",
    "content": "// https://lodash.com/docs/#map\nimport { map } from 'lodash'\n\nmodule.exports = map([1, 2, 3], n => n * 3)\n// => [3, 6, 9]\n"
  },
  {
    "path": "src/content/lodash/collection/map/notes.md",
    "content": "Creates an array of values by running each element in <code>collection</code> thru <code>iteratee</code>. The iteratee is invoked with three arguments:<br><em>(value, index|key, collection)</em>.\n\nResources: [Array#map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/map) [Source](https://www.sitepoint.com/lodash-features-replace-es6/)\n"
  },
  {
    "path": "src/content/lodash/collection/map/spec.js",
    "content": "const expected = [3, 6, 9]\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('map', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/collection/map/vanilla.js",
    "content": "module.exports = [1, 2, 3].map(n => n * 3)\n// => [3, 6, 9]\n"
  },
  {
    "path": "src/content/lodash/collection/reduce/lodash.js",
    "content": "// https://lodash.com/docs/#reduce\nimport { reduce } from 'lodash'\n\nexports.array = reduce([1, 2], (sum, n) => sum + n, 0)\n// => 3\n\nexports.object = reduce(\n  { a: 1, b: 2, c: 1 },\n  (result, value, key) => {\n    ;(result[value] || (result[value] = [])).push(key)\n    return result\n  },\n  {}\n)\n// => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n"
  },
  {
    "path": "src/content/lodash/collection/reduce/notes.md",
    "content": "Reduces <code>collection</code> to a value which is the accumulated result of running each element in <code>collection</code> thru <code>iteratee</code>, where each successive invocation is supplied the return value of the previous. If <code>accumulator</code> is not given, the first element of <code>collection</code> is used as the initial value. The iteratee is invoked with four arguments:<br><em>(accumulator, value, index|key, collection)</em>.\n\nResources: [Object.entries](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/entries) [Array#reduce](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce)\n"
  },
  {
    "path": "src/content/lodash/collection/reduce/spec.js",
    "content": "const expected = {\n  array: 3,\n  object: { 1: ['a', 'c'], 2: ['b'] },\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('reduce', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/collection/reduce/vanilla.js",
    "content": "exports.array = [1, 2].reduce((sum, n) => sum + n, 0)\n// => 3\n\nexports.object = Object.entries({ a: 1, b: 2, c: 1 }).reduce(\n  (result, [key, value]) => {\n    ;(result[value] || (result[value] = [])).push(key)\n    return result\n  },\n  {}\n)\n// => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n"
  },
  {
    "path": "src/content/lodash/collection/reduceRight/lodash.js",
    "content": "// https://lodash.com/docs/#reduceRight\nimport { reduceRight } from 'lodash'\n\nmodule.exports = reduceRight(\n  [\n    [0, 1],\n    [2, 3],\n    [4, 5],\n  ],\n  (flattened, other) => flattened.concat(other),\n  []\n)\n// => [4, 5, 2, 3, 0, 1]\n"
  },
  {
    "path": "src/content/lodash/collection/reduceRight/notes.md",
    "content": "This method is like <a href=\"#reduce\"><code>\\_.reduce</code></a> except that it iterates over elements of <code>collection</code> from right to left.\n\nResources: [Array#reduceRight](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRight) [Source](https://www.reindex.io/blog/you-might-not-need-underscore/)\n"
  },
  {
    "path": "src/content/lodash/collection/reduceRight/spec.js",
    "content": "const expected = [4, 5, 2, 3, 0, 1]\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('reduceRight', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/collection/reduceRight/vanilla.js",
    "content": "module.exports = [\n  [0, 1],\n  [2, 3],\n  [4, 5],\n].reduceRight((flattened, other) => flattened.concat(other), [])\n// => [4, 5, 2, 3, 0, 1]\n"
  },
  {
    "path": "src/content/lodash/collection/size/lodash.js",
    "content": "// https://lodash.com/docs/#size\nimport { size } from 'lodash'\n\nexports.array = size([1, 2, 3])\n// => 3\n\nexports.object = size({ a: 1, b: 2 })\n// => 2\n\nexports.string = size('pebbles')\n// => 7\n"
  },
  {
    "path": "src/content/lodash/collection/size/notes.md",
    "content": "Gets the size of <code>collection</code> by returning its length for array-like values or the number of own enumerable string keyed properties for objects.\n\nResources: [Object.keys](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/keys) [Source](https://www.reindex.io/blog/you-might-not-need-underscore/)\n"
  },
  {
    "path": "src/content/lodash/collection/size/spec.js",
    "content": "const expected = {\n  array: 3,\n  object: 2,\n  string: 7,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('size', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/collection/size/vanilla.js",
    "content": "const size = item =>\n  item.constructor === Object ? Object.keys(item).length : item.length\n\nexports.array = size([1, 2, 3])\n// => 3\n\nexports.object = size({ a: 1, b: 2 })\n// => 2\n\nexports.string = size('pebbles')\n// => 7\n"
  },
  {
    "path": "src/content/lodash/collection/some/lodash.js",
    "content": "// https://lodash.com/docs/#some\nimport { some } from 'lodash'\n\nconst isEven = n => n % 2 === 0\n\nmodule.exports = some([3, 4, 5], isEven)\n// => true\n"
  },
  {
    "path": "src/content/lodash/collection/some/notes.md",
    "content": "Checks if <code>predicate</code> returns truthy for <strong>any</strong> element of <code>collection</code>. Iteration is stopped once <code>predicate</code> returns truthy. The predicate is invoked with three arguments: <em>(value, index|key, collection)</em>.\n\nResources: [Array#some](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/some)\n"
  },
  {
    "path": "src/content/lodash/collection/some/spec.js",
    "content": "const expected = true\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('some', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/collection/some/vanilla.js",
    "content": "const isEven = n => n % 2 === 0\n\nmodule.exports = [3, 4, 5].some(isEven)\n// => true\n"
  },
  {
    "path": "src/content/lodash/date/now/lodash.js",
    "content": "// https://lodash.com/docs/#now\nimport { now } from 'lodash'\n\nmodule.exports = now()\n// => # milliseconds  elapsed since the Unix epoch\n"
  },
  {
    "path": "src/content/lodash/date/now/notes.md",
    "content": "Gets the timestamp of the number of milliseconds that have elapsed since the Unix epoch <em>(1 January <code>1970 00</code>:00:00 UTC)</em>.\n\nResources: [Date.now](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date/now)\n"
  },
  {
    "path": "src/content/lodash/date/now/spec.js",
    "content": "const lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('some', () => {\n  // eslint-disable-next-line no-restricted-globals\n  expect(isNaN(new Date(plain))).toEqual(false)\n  expect(new Date(plain).getTime()).toEqual(plain)\n  expect(plain - lodash).toEqual(0)\n})\n"
  },
  {
    "path": "src/content/lodash/date/now/vanilla.js",
    "content": "module.exports = Date.now()\n// => # milliseconds  elapsed since the Unix epoch\n"
  },
  {
    "path": "src/content/lodash/function/after/lodash.js",
    "content": "// https://lodash.com/docs/#after\nimport { after } from 'lodash'\n\nmodule.exports = (times, fn) => after(times, fn)\n// => check the tests for more details\n"
  },
  {
    "path": "src/content/lodash/function/after/notes.md",
    "content": "The opposite of <a href=\"#before\"><code>\\_.before</code></a>; this method creates a function that invokes <code>func</code> once it's called <code>n</code> or more times.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax)\n"
  },
  {
    "path": "src/content/lodash/function/after/spec.js",
    "content": "const fns = {\n  lodash: require('./lodash'),\n  plain: require('./vanilla'),\n}\n\ndescribe('after', () => {\n  Object.entries(fns).forEach(([key, method]) => {\n    describe(key, () => {\n      let fn\n      beforeEach(() => {\n        fn = jest.fn(a => a)\n      })\n\n      test('it should call the fn only from the nth invocation and subsequents', () => {\n        const befored = method(5, fn)\n\n        for (let i = 0; i < 100; i++) {\n          befored(i)\n        }\n        expect(fn).toBeCalledTimes(96)\n      })\n    })\n  })\n})\n"
  },
  {
    "path": "src/content/lodash/function/after/vanilla.js",
    "content": "const after = (times, fn) => {\n  let counter = 0\n\n  return (...args) => {\n    counter++\n\n    if (counter >= times) {\n      return fn(...args)\n    }\n  }\n}\n\nmodule.exports = (times, fn) => after(times, fn)\n"
  },
  {
    "path": "src/content/lodash/function/ary/lodash.js",
    "content": "// https://lodash.com/docs/#ary\nimport { ary } from 'lodash'\n\nmodule.exports = ['6', '8', '10'].map(ary(Number.parseInt, 1))\n// => [6, 8, 10]\n"
  },
  {
    "path": "src/content/lodash/function/ary/notes.md",
    "content": "Creates a function that invokes <code>func</code>, with up to <code>n</code> arguments, ignoring any additional arguments.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax)\n"
  },
  {
    "path": "src/content/lodash/function/ary/spec.js",
    "content": "const expected = [6, 8, 10]\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('ary', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/function/ary/vanilla.js",
    "content": "const ary =\n  (fn, arity) =>\n  (...args) =>\n    fn(...args.slice(0, arity))\n\nmodule.exports = ['6', '8', '10'].map(ary(Number.parseInt, 1))\n// => [6, 8, 10]\n"
  },
  {
    "path": "src/content/lodash/function/before/lodash.js",
    "content": "// https://lodash.com/docs/#before\nimport { before } from 'lodash'\n\nmodule.exports = (times, fn) => before(times, fn)\n// => check the tests for more details\n"
  },
  {
    "path": "src/content/lodash/function/before/notes.md",
    "content": "Creates a function that invokes <code>func</code>, with the <code>this</code> binding and arguments of the created function, while it's called less than <code>n</code> times. Subsequent calls to the created function return the result of the last <code>func</code> invocation.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax)\n"
  },
  {
    "path": "src/content/lodash/function/before/spec.js",
    "content": "const fns = {\n  lodash: require('./lodash'),\n  plain: require('./vanilla'),\n}\n\ndescribe('before', () => {\n  Object.entries(fns).forEach(([key, method]) => {\n    describe(key, () => {\n      let fn\n      beforeEach(() => {\n        fn = jest.fn(a => a)\n      })\n\n      test('it should call the fn only the first n-1 times and then return the result of the last operation', () => {\n        const befored = method(3, fn)\n\n        let res\n        for (let i = 0; i < 100; i++) {\n          res = befored(i)\n        }\n        expect(fn).toBeCalledTimes(2)\n        expect(res).toBe(1)\n      })\n    })\n  })\n})\n"
  },
  {
    "path": "src/content/lodash/function/before/vanilla.js",
    "content": "const before = (times, fn) => {\n  let counter = 0\n  let res\n\n  return (...args) => {\n    counter++\n\n    if (counter < times) {\n      res = fn(...args)\n      return res\n    } else {\n      return res\n    }\n  }\n}\n\nmodule.exports = (times, fn) => before(times, fn)\n"
  },
  {
    "path": "src/content/lodash/function/bind/lodash.js",
    "content": "// https://lodash.com/docs/#bind\nimport { bind } from 'lodash'\n\nfunction greet(greeting, punctuation) {\n  return greeting + ' ' + this.user + punctuation\n}\n\nvar object = { user: 'fred' }\n\nvar bound = bind(greet, object, 'hi')\n\nmodule.exports = bound('!')\n// => 'hi fred!'\n"
  },
  {
    "path": "src/content/lodash/function/bind/notes.md",
    "content": "Creates a function that invokes <code>func</code> with the <code>this</code> binding of <code>thisArg</code> and <code>partials</code> prepended to the arguments it receives.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Function#bind](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Function/bind)\n"
  },
  {
    "path": "src/content/lodash/function/bind/spec.js",
    "content": "const expected = 'hi fred!'\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('bind', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/function/bind/vanilla.js",
    "content": "const bind = (fn, ctx, ...boundArgs) => fn.bind(ctx, ...boundArgs)\n\nfunction greet(greeting, punctuation) {\n  return greeting + ' ' + this.user + punctuation\n}\n\nvar object = { user: 'fred' }\n\nvar bound = bind(greet, object, 'hi')\n\nmodule.exports = bound('!')\n// => 'hi fred!'\n"
  },
  {
    "path": "src/content/lodash/function/bindKey/lodash.js",
    "content": "// https://lodash.com/docs/#bindKey\nimport { bindKey } from 'lodash'\n\nconst object = {\n  'user': 'fred',\n  'greet': function (greeting, punctuation) {\n    return greeting + ' ' + this.user + punctuation\n  },\n}\n\nlet bound = bindKey(object, 'greet', 'hi')\nexports.first = bound('!')\n// => 'hi fred!'\n\nobject.greet = function (greeting, punctuation) {\n  return greeting + 'ya ' + this.user + punctuation\n}\n\nexports.second = bound('!')\n// => 'hiya fred!'\n"
  },
  {
    "path": "src/content/lodash/function/bindKey/notes.md",
    "content": "Creates a function that invokes the method at <code>object[key]</code> with <code>partials</code> prepended to the arguments it receives.<br><br>This method differs from <a href=\"#bind\"><code>_.bind</code></a> by allowing bound functions to reference methods that may be redefined or don't yet exist. See <a href=\"http://peter.michaux.ca/articles/lazy-function-definition-pattern\">Peter Michaux's article</a> for more details.<br><br>The <code>_.bindKey.placeholder</code> value, which defaults to <code>\\_</code> in monolithic builds, may be used as a placeholder for partially applied arguments.\n\nResources: [Spread](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax)\n"
  },
  {
    "path": "src/content/lodash/function/bindKey/spec.js",
    "content": "const expected = {\n  first: 'hi fred!',\n  second: 'hiya fred!',\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('bindKey', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/function/bindKey/vanilla.js",
    "content": "const bindKey =\n  (obj, method, ...args) =>\n  (...bound) =>\n    obj[method](...args, ...bound)\n\nconst object = {\n  'user': 'fred',\n  'greet': function (greeting, punctuation) {\n    return greeting + ' ' + this.user + punctuation\n  },\n}\n\nlet bound = bindKey(object, 'greet', 'hi')\nexports.first = bound('!')\n// => 'hi fred!'\n\nobject.greet = function (greeting, punctuation) {\n  return greeting + 'ya ' + this.user + punctuation\n}\n\nexports.second = bound('!')\n// => 'hiya fred!'\n"
  },
  {
    "path": "src/content/lodash/function/curry/lodash.js",
    "content": "// https://lodash.com/docs/#curry\nimport { curry } from 'lodash'\n\nconst abc = (a, b, c) => [a, b, c]\n\nconst curried = curry(abc)\n\nexports.curry = curried(1)(2)(3)\n// => [1, 2, 3]\n\nexports.moreargs = curried(1, 2)(3)\n// => [1, 2, 3]\n\nexports.allargs = curried(1, 2, 3)\n// => [1, 2, 3]\n"
  },
  {
    "path": "src/content/lodash/function/curry/notes.md",
    "content": "Creates a function that accepts arguments of <code>func</code> and either invokes <code>func</code> returning its result, if at least <code>arity</code> number of arguments have been provided, or returns a function that accepts the remaining <code>func</code> arguments, and so on. The arity of <code>func</code> may be specified if <code>func.length</code> is not sufficient.<br><br>The <code>_.curry.placeholder</code> value, which defaults to <code>_</code> in monolithic builds, may be used as a placeholder for provided arguments.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [learn-js](https://github.com/learn-javascript-courses/es6-curry)\n"
  },
  {
    "path": "src/content/lodash/function/curry/spec.js",
    "content": "const expected = {\n  curry: [1, 2, 3],\n  moreargs: [1, 2, 3],\n  allargs: [1, 2, 3],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('curry', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/function/curry/vanilla.js",
    "content": "const curry = func => {\n  // define the number of expected arguments\n  const expectedArgs = func.length\n  const curried = (...args) => {\n    // if enough arugments has been passed return the\n    // result of the function execution, otherwise\n    // continue adding arguments to the list\n    return args.length >= expectedArgs\n      ? func(...args)\n      : (...args2) => curried(...args.concat(args2))\n  }\n  return curried\n}\n\nconst abc = (a, b, c) => [a, b, c]\n\nconst curried = curry(abc)\n\nexports.curry = curried(1)(2)(3)\n// => [1, 2, 3]\n\nexports.moreargs = curried(1, 2)(3)\n// => [1, 2, 3]\n\nexports.allargs = curried(1, 2, 3)\n// => [1, 2, 3]\n"
  },
  {
    "path": "src/content/lodash/function/curryRight/lodash.js",
    "content": "// https://lodash.com/docs/#curryRight\nimport { curryRight } from 'lodash'\n\nconst abc = (a, b, c) => [a, b, c]\n\nconst curried = curryRight(abc)\n\nexports.curry = curried(3)(2)(1)\n// => [1, 2, 3]\n\nexports.moreargs = curried(2, 3)(1)\n// => [1, 2, 3]\n\nexports.allargs = curried(1, 2, 3)\n// => [1, 2, 3]\n"
  },
  {
    "path": "src/content/lodash/function/curryRight/notes.md",
    "content": "This method is like <a href=\"#curry\"><code>_.curry</code></a> except that arguments are applied to <code>func</code> in the manner of <a href=\"#partialRight\"><code>_.partialRight</code></a> instead of <a href=\"#partial\"><code>_.partial</code></a>.<br><br>The <code>_.curryRight.placeholder</code> value, which defaults to <code>\\_</code> in monolithic builds, may be used as a placeholder for provided arguments.\n\nResources: [learn-js](https://github.com/learn-javascript-courses/es6-curry)\n"
  },
  {
    "path": "src/content/lodash/function/curryRight/spec.js",
    "content": "const expected = {\n  curry: [1, 2, 3],\n  moreargs: [1, 2, 3],\n  allargs: [1, 2, 3],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('curry', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/function/curryRight/vanilla.js",
    "content": "// the only difference from the curry method\n// implementation is how arguments gets concatenated\nconst curryRight = func => {\n  const expectedArgs = func.length\n  const curried = (...args) => {\n    return args.length >= expectedArgs\n      ? func(...args)\n      : (...args2) => curried(...args2.concat(args))\n  }\n  return curried\n}\n\nconst abc = (a, b, c) => [a, b, c]\n\nconst curried = curryRight(abc)\n\nexports.curry = curried(3)(2)(1)\n// => [1, 2, 3]\n\nexports.moreargs = curried(2, 3)(1)\n// => [1, 2, 3]\n\nexports.allargs = curried(1, 2, 3)\n// => [1, 2, 3]\n"
  },
  {
    "path": "src/content/lodash/function/debounce/lodash.js",
    "content": "// https://lodash.com/docs/#debounce\nimport { debounce } from 'lodash'\n\nmodule.exports = (...args) => debounce(...args)\n// => check the tests for more details\n"
  },
  {
    "path": "src/content/lodash/function/debounce/notes.md",
    "content": "Creates a debounced function that delays invoking <code>func</code> until after <code>wait</code> milliseconds have elapsed since the last time the debounced function was invoked.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Debounce vs Throttle demo](http://demo.nimius.net/debounce_throttle/)\n"
  },
  {
    "path": "src/content/lodash/function/debounce/spec.js",
    "content": "const fns = {\n  lodash: require('./lodash'),\n  plain: require('./vanilla'),\n}\n\njest.useFakeTimers()\n\ndescribe('debounce', () => {\n  Object.entries(fns).forEach(([key, debounce]) => {\n    describe(key, () => {\n      let fn\n      beforeEach(() => {\n        fn = jest.fn()\n      })\n\n      test('it should call the debounced fn once at the end of the quiet time', () => {\n        const debounced = debounce(fn, 1000)\n\n        for (let i = 0; i < 100; i++) {\n          debounced(i)\n        }\n\n        jest.advanceTimersByTime(1001)\n        expect(fn).toBeCalledTimes(1)\n        expect(fn).toBeCalledWith(99)\n      })\n\n      test('it should call the debounced fn once at the end of the quiet time', () => {\n        const debounced = debounce(fn, 1000)\n\n        for (let i = 0; i < 100; i++) {\n          debounced(i)\n          jest.advanceTimersByTime(999)\n        }\n\n        jest.advanceTimersByTime(1000)\n        expect(fn).toBeCalledTimes(1)\n        expect(fn).toBeCalledWith(99)\n      })\n\n      test(\"with a leading invocation, it should call the debounced fn once, if the time doesn't pass\", () => {\n        const debounced = debounce(fn, 1000, { leading: true })\n\n        for (let i = 0; i < 100; i++) {\n          debounced(i)\n        }\n\n        jest.advanceTimersByTime(999)\n\n        expect(fn).toBeCalledTimes(1)\n        expect(fn).toBeCalledWith(0)\n      })\n\n      test('with a leading invocation, it should call the debounced fn twice (at the beginning and at the end)', () => {\n        const debounced = debounce(fn, 1000, { leading: true })\n\n        for (let i = 0; i < 100; i++) {\n          debounced(i)\n        }\n\n        jest.advanceTimersByTime(1500)\n\n        expect(fn).toBeCalledTimes(2)\n        expect(fn).toBeCalledWith(0)\n        expect(fn).toBeCalledWith(99)\n      })\n\n      test('it should call the debounced fn once with leading option if it was called once', () => {\n        const debounced = debounce(fn, 1000, { leading: true })\n\n        debounced();\n\n        jest.advanceTimersByTime(1001)\n        expect(fn).toBeCalledTimes(1)\n      })\n    })\n  })\n})\n"
  },
  {
    "path": "src/content/lodash/function/debounce/vanilla.js",
    "content": "const debounce = (func, delay, { leading } = {}) => {\n  let timerId\n  let shouldInvoke\n\n  return (...args) => {\n    shouldInvoke = true\n\n    if (!timerId && leading) {\n      func(...args)\n      shouldInvoke = false\n    }\n    clearTimeout(timerId)\n\n    timerId = setTimeout(() => shouldInvoke && func(...args), delay)\n  }\n}\n\nmodule.exports = (...args) => debounce(...args)\n"
  },
  {
    "path": "src/content/lodash/function/delay/lodash.js",
    "content": "// https://lodash.com/docs/#delay\nimport { delay } from 'lodash'\n\nmodule.exports = fn => delay(fn, 1000, 'later')\n// => check the tests for more details\n"
  },
  {
    "path": "src/content/lodash/function/delay/notes.md",
    "content": "Invokes <code>func</code> after <code>wait</code> milliseconds. Any additional arguments are provided to <code>func</code> when it's invoked.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax)\n"
  },
  {
    "path": "src/content/lodash/function/delay/spec.js",
    "content": "const fns = {\n  lodash: require('./lodash'),\n  plain: require('./vanilla'),\n}\n\njest.useFakeTimers()\n\ndescribe('delay', () => {\n  Object.entries(fns).forEach(([key, delay]) => {\n    describe(key, () => {\n      let fn\n      beforeEach(() => {\n        fn = jest.fn()\n      })\n\n      test(\"it should not call the delayed function if the time didn't pass\", () => {\n        delay(fn)\n        expect(fn).toBeCalledTimes(0)\n      })\n\n      test('it should call the delayed function if the time passed', () => {\n        delay(fn)\n\n        jest.advanceTimersByTime(1001)\n\n        expect(fn).toBeCalledTimes(1)\n        expect(fn).toBeCalledWith('later')\n      })\n    })\n  })\n})\n"
  },
  {
    "path": "src/content/lodash/function/delay/vanilla.js",
    "content": "const delay = (fn, timer, ...args) => setTimeout(() => fn(...args), timer)\n\nmodule.exports = fn => delay(fn, 1000, 'later')\n"
  },
  {
    "path": "src/content/lodash/function/flip/lodash.js",
    "content": "// https://lodash.com/docs/#flip\nimport { flip } from 'lodash'\n\nconst flipped = flip((...args) => args)\n\nmodule.exports = flipped('a', 'b', 'c', 'd')\n// => ['d', 'c', 'b', 'a']\n"
  },
  {
    "path": "src/content/lodash/function/flip/notes.md",
    "content": "Creates a function that invokes <code>func</code> with arguments reversed.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax)\n"
  },
  {
    "path": "src/content/lodash/function/flip/spec.js",
    "content": "const expected = ['d', 'c', 'b', 'a']\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('flip', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/function/flip/vanilla.js",
    "content": "const flip =\n  func =>\n  (...args) =>\n    func(...args.reverse())\n\nconst flipped = flip((...args) => args)\n\nmodule.exports = flipped('a', 'b', 'c', 'd')\n// => ['d', 'c', 'b', 'a']\n"
  },
  {
    "path": "src/content/lodash/function/negate/lodash.js",
    "content": "// https://lodash.com/docs/#negate\nimport { negate } from 'lodash'\n\nconst isEven = n => n % 2 === 0\n\nmodule.exports = [1, 2, 3, 4, 5, 6].filter(negate(isEven))\n// => [1, 3, 5]\n"
  },
  {
    "path": "src/content/lodash/function/negate/notes.md",
    "content": "Creates a function that negates the result of the predicate <code>func</code>. The <code>func</code> predicate is invoked with the <code>this</code> binding and arguments of the created function.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax)\n"
  },
  {
    "path": "src/content/lodash/function/negate/spec.js",
    "content": "const expected = [1, 3, 5]\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('negate', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/function/negate/vanilla.js",
    "content": "const negate =\n  func =>\n  (...args) =>\n    !func(...args)\n\nconst isEven = n => n % 2 === 0\n\nmodule.exports = [1, 2, 3, 4, 5, 6].filter(negate(isEven))\n// => [1, 3, 5]\n"
  },
  {
    "path": "src/content/lodash/function/once/lodash.js",
    "content": "// https://lodash.com/docs/#once\nimport { once } from 'lodash'\n\nmodule.exports = fn => once(fn)\n// => check the tests for more details\n"
  },
  {
    "path": "src/content/lodash/function/once/notes.md",
    "content": "Creates a function that is restricted to invoking <code>func</code> once. Repeat calls to the function return the value of the first invocation.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax)\n"
  },
  {
    "path": "src/content/lodash/function/once/spec.js",
    "content": "const fns = {\n  lodash: require('./lodash'),\n  plain: require('./vanilla'),\n}\n\ndescribe('once', () => {\n  Object.entries(fns).forEach(([key, once]) => {\n    describe(key, () => {\n      let fn\n\n      beforeEach(() => {\n        fn = jest.fn(a => a)\n      })\n\n      test('it should call the function only once', () => {\n        const onlyOnce = once(fn)\n\n        let res\n        for (let i = 0; i < 100; i++) {\n          res = onlyOnce(i)\n        }\n\n        expect(fn).toBeCalledTimes(1)\n        expect(fn).toBeCalledWith(0)\n        expect(res).toBe(0)\n      })\n    })\n  })\n})\n"
  },
  {
    "path": "src/content/lodash/function/once/vanilla.js",
    "content": "const once = fn => {\n  let called = false\n  let result\n  return (...args) => {\n    if (!called) {\n      result = fn(...args)\n      called = true\n    }\n    return result\n  }\n}\n\nmodule.exports = fn => once(fn)\n"
  },
  {
    "path": "src/content/lodash/function/overArgs/lodash.js",
    "content": "// https://lodash.com/docs/#overArgs\nimport { overArgs } from 'lodash'\n\nfunction doubled(n) {\n  return n * 2\n}\n\nfunction square(n) {\n  return n * n\n}\n\nconst func = overArgs(\n  function (x, y) {\n    return [x, y]\n  },\n  [square, doubled]\n)\n\nexports.example1 = func(9, 3)\n// => [81, 6]\n\nexports.example2 = func(10, 5)\n// => [100, 10]\n"
  },
  {
    "path": "src/content/lodash/function/overArgs/notes.md",
    "content": "Creates a function that invokes <code>func</code> with its arguments transformed.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Array#map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/map)\n"
  },
  {
    "path": "src/content/lodash/function/overArgs/spec.js",
    "content": "const expected = {\n  example1: [81, 6],\n  example2: [100, 10],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('overArgs', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/function/overArgs/vanilla.js",
    "content": "const overArgs =\n  (fn, ops) =>\n  (...args) => {\n    const mappedArgs = args.map((arg, i) => (ops[i] ? ops[i](arg) : arg))\n    return fn(...mappedArgs)\n  }\n\nfunction doubled(n) {\n  return n * 2\n}\n\nfunction square(n) {\n  return n * n\n}\n\nconst func = overArgs(\n  function (x, y) {\n    return [x, y]\n  },\n  [square, doubled]\n)\n\nexports.example1 = func(9, 3)\n// => [81, 6]\n\nexports.example2 = func(10, 5)\n// => [100, 10]\n"
  },
  {
    "path": "src/content/lodash/function/partial/lodash.js",
    "content": "// https://lodash.com/docs/#partial\nimport { partial } from 'lodash'\n\nconst greet = (greeting, name) => `${greeting} ${name}`\n\nconst sayHelloTo = partial(greet, 'hello')\nmodule.exports = sayHelloTo('fred')\n// => 'hello fred'\n"
  },
  {
    "path": "src/content/lodash/function/partial/notes.md",
    "content": "Creates a function that invokes <code>func</code> with <code>partials</code> prepended to the arguments it receives.\n"
  },
  {
    "path": "src/content/lodash/function/partial/spec.js",
    "content": "const expected = 'hello fred'\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('partial', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/function/partial/vanilla.js",
    "content": "const partial =\n  (func, ...args) =>\n  (...furtherArgs) =>\n    func(...args, ...furtherArgs)\n\nconst greet = (greeting, name) => `${greeting} ${name}`\n\nconst sayHelloTo = partial(greet, 'hello')\nmodule.exports = sayHelloTo('fred')\n// => 'hello fred'\n"
  },
  {
    "path": "src/content/lodash/function/partialRight/lodash.js",
    "content": "// https://lodash.com/docs/#partialRight\nimport { partialRight } from 'lodash'\n\nconst greet = (greeting, name) => `${greeting} ${name}`\n\nconst greetFred = partialRight(greet, 'fred')\nmodule.exports = greetFred('hi')\n// => 'hi fred'\n"
  },
  {
    "path": "src/content/lodash/function/partialRight/notes.md",
    "content": "This method is like <a href=\"#partial\"><code>\\_.partial</code></a> except that partially applied arguments are appended to the arguments it receives.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax)\n"
  },
  {
    "path": "src/content/lodash/function/partialRight/spec.js",
    "content": "const expected = 'hi fred'\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('partialRight', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/function/partialRight/vanilla.js",
    "content": "const partialRight =\n  (func, ...cachedArgs) =>\n  (...args) =>\n    func(...args, ...cachedArgs)\n\nconst greet = (greeting, name) => `${greeting} ${name}`\n\nconst greetFred = partialRight(greet, 'fred')\nmodule.exports = greetFred('hi')\n// => 'hi fred'\n"
  },
  {
    "path": "src/content/lodash/function/rearg/lodash.js",
    "content": "// https://lodash.com/docs/#rearg\nimport { rearg } from 'lodash'\n\nconst rearged = rearg((a, b, c) => [a, b, c], [2, 0, 1])\n\nmodule.exports = rearged('b', 'c', 'a')\n// => ['a', 'b', 'c']\n"
  },
  {
    "path": "src/content/lodash/function/rearg/notes.md",
    "content": "Creates a function that invokes <code>func</code> with arguments arranged according to the specified <code>indexes</code> where the argument value at the first index is provided as the first argument, the argument value at the second index is provided as the second argument, and so on.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax)\n"
  },
  {
    "path": "src/content/lodash/function/rearg/spec.js",
    "content": "const expected = ['a', 'b', 'c']\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('rearg', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/function/rearg/vanilla.js",
    "content": "const rearg =\n  (func, order) =>\n  (...args) => {\n    const reargs = order.map(idx => args[idx])\n    return func(...reargs)\n  }\n\nconst rearged = rearg((a, b, c) => [a, b, c], [2, 0, 1])\n\nmodule.exports = rearged('b', 'c', 'a')\n// => ['a', 'b', 'c']\n"
  },
  {
    "path": "src/content/lodash/function/rest/lodash.js",
    "content": "// https://lodash.com/docs/#rest\nimport { rest } from 'lodash'\n\nconst say = rest(\n  (what, names) =>\n    what +\n    ' ' +\n    names.slice(0, -1).join(', ') + // see _.initial\n    (names.length > 1 ? ', & ' : '') +\n    names[names.length - 1] // see _.last\n)\n\nmodule.exports = say('hello', 'fred', 'barney', 'pebbles')\n// => 'hello fred, barney, & pebbles'\n"
  },
  {
    "path": "src/content/lodash/function/rest/notes.md",
    "content": "Creates a function that invokes <code>func</code> with the <code>this</code> binding of the created function and arguments from <code>start</code> and beyond provided as an array.<br><br><strong>Note:</strong> This method is based on the <a href=\"https://mdn.io/rest_parameters\">rest parameter</a>."
  },
  {
    "path": "src/content/lodash/function/rest/spec.js",
    "content": "const expected = 'hello fred, barney, & pebbles'\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('rest', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/function/rest/vanilla.js",
    "content": "const rest =\n  func =>\n  (first, ...args) =>\n    func(first, args)\n\nconst say = rest(\n  (what, names) =>\n    what +\n    ' ' +\n    names.slice(0, -1).join(', ') + // see _.initial\n    (names.length > 1 ? ', & ' : '') +\n    names[names.length - 1] // see _.last\n)\n\nmodule.exports = say('hello', 'fred', 'barney', 'pebbles')\n// => 'hello fred, barney, & pebbles'\n"
  },
  {
    "path": "src/content/lodash/function/spread/lodash.js",
    "content": "// https://lodash.com/docs/#spread\nimport { spread } from 'lodash'\n\nconst say = spread(function (who, what) {\n  return who + ' says ' + what\n})\n\nexports.basic = say(['fred', 'hello'])\n// => 'fred says hello'\n\nconst numbers = Promise.all([Promise.resolve(40), Promise.resolve(36)])\n\nexports.promise = numbers.then(\n  spread(function (x, y) {\n    return x + y\n  })\n)\n// => a Promise of 76\n"
  },
  {
    "path": "src/content/lodash/function/spread/notes.md",
    "content": "Creates a function that invokes <code>func</code> with the <code>this</code> binding of the create function and an array of arguments much like <a href=\"http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply\"><code>Function#apply</code></a>.<br><br><strong>Note:</strong> This method is based on the <a href=\"https://mdn.io/spread_operator\">spread operator</a>.\n\nResources: [Spread](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax)\n"
  },
  {
    "path": "src/content/lodash/function/spread/spec.js",
    "content": "const expected = {\n  basic: 'fred says hello',\n  promise: 76,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ndescribe('spread', () => {\n  test('basic', () => {\n    expect(lodash.basic).toEqual(expected.basic)\n    expect(plain.basic).toEqual(lodash.basic)\n  })\n\n  test('promise', async () => {\n    const lodashRes = await lodash.promise\n    const plainRes = await plain.promise\n\n    expect(lodashRes).toEqual(expected.promise)\n    expect(plainRes).toEqual(lodashRes)\n  })\n})\n"
  },
  {
    "path": "src/content/lodash/function/spread/vanilla.js",
    "content": "const spread = func => args => func(...args)\n\nconst say = spread(function (who, what) {\n  return who + ' says ' + what\n})\n\nexports.basic = say(['fred', 'hello'])\n// => 'fred says hello'\n\nconst numbers = Promise.all([Promise.resolve(40), Promise.resolve(36)])\n\nexports.promise = numbers.then(\n  spread(function (x, y) {\n    return x + y\n  })\n)\n// => a Promise of 76\n"
  },
  {
    "path": "src/content/lodash/function/unary/lodash.js",
    "content": "// https://lodash.com/docs/#unary\nimport { unary } from 'lodash'\n\nmodule.exports = ['6', '8', '10'].map(unary(Number.parseInt))\n// => [6, 8, 10]\n"
  },
  {
    "path": "src/content/lodash/function/unary/notes.md",
    "content": "Creates a function that accepts up to one argument, ignoring any additional arguments.\n"
  },
  {
    "path": "src/content/lodash/function/unary/spec.js",
    "content": "const expected = [6, 8, 10]\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('unary', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/function/unary/vanilla.js",
    "content": "const unary = fn => arg => fn(arg)\n\nmodule.exports = ['6', '8', '10'].map(unary(Number.parseInt))\n// => [6, 8, 10]\n"
  },
  {
    "path": "src/content/lodash/function/wrap/lodash.js",
    "content": "// https://lodash.com/docs/#wrap\nimport { wrap } from 'lodash'\n\nconst sum2 = wrap(2, (a, b, c) => {\n  return a + b + c\n})\n\nmodule.exports = sum2(1, 2)\n// => 5\n"
  },
  {
    "path": "src/content/lodash/function/wrap/notes.md",
    "content": "Creates a function that provides <code>value</code> to <code>wrapper</code> as its first argument. Any additional arguments provided to the function are appended to those provided to the <code>wrapper</code>.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax)\n"
  },
  {
    "path": "src/content/lodash/function/wrap/spec.js",
    "content": "const expected = 5\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('wrap', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/function/wrap/vanilla.js",
    "content": "const wrap =\n  (value, func) =>\n  (...args) =>\n    func(value, ...args)\n\nconst sum2 = wrap(2, (a, b, c) => {\n  return a + b + c\n})\n\nmodule.exports = sum2(1, 2)\n// => 5\n"
  },
  {
    "path": "src/content/lodash/lang/castArray/lodash.js",
    "content": "// https://lodash.com/docs/#castArray\nimport { castArray } from 'lodash'\n\nexports.num = castArray(1)\n// => [1]\n\nexports.obj = castArray({ a: 1 })\n// => [{ 'a': 1 }]\n\nexports.str = castArray('abc')\n// => ['abc']\n\nexports.null = castArray(null)\n// => [null]\n\nexports.undefined = castArray(undefined)\n// => [undefined]\n\nexports.empty = castArray()\n// => []\n\nconst array = [1, 2, 3]\nexports.arrayEquality = castArray(array) === array\n// => true\n"
  },
  {
    "path": "src/content/lodash/lang/castArray/notes.md",
    "content": "Casts <code>value</code> as an array if it's not one.\n\nResources: [instanceof](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/instanceof) [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax)\n"
  },
  {
    "path": "src/content/lodash/lang/castArray/spec.js",
    "content": "const expected = {\n  num: [1],\n  obj: [{ a: 1 }],\n  str: ['abc'],\n  null: [null],\n  undefined: [undefined],\n  empty: [],\n  arrayEquality: true,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('castArray', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/castArray/vanilla.js",
    "content": "const castArray = (...args) => (args[0] instanceof Array ? args[0] : args)\n\nexports.num = castArray(1)\n// => [1]\n\nexports.obj = castArray({ a: 1 })\n// => [{ 'a': 1 }]\n\nexports.str = castArray('abc')\n// => ['abc']\n\nexports.null = castArray(null)\n// => [null]\n\nexports.undefined = castArray(undefined)\n// => [undefined]\n\nexports.empty = castArray()\n// => []\n\nconst array = [1, 2, 3]\nexports.arrayEquality = castArray(array) === array\n// => true\n"
  },
  {
    "path": "src/content/lodash/lang/cloneDeep/jest.fix.js",
    "content": "/* istanbul ignore file */\nimport JSDOMEnvironment from 'jest-environment-jsdom'\n\n// https://github.com/facebook/jest/blob/v29.4.3/website/versioned_docs/version-29.4/Configuration.md#testenvironment-string\nexport default class FixJSDOMEnvironment extends JSDOMEnvironment {\n  constructor(...args) {\n    super(...args)\n\n    // FIXME https://github.com/jsdom/jsdom/issues/3363\n    this.global.structuredClone = structuredClone\n  }\n}\n"
  },
  {
    "path": "src/content/lodash/lang/cloneDeep/lodash.js",
    "content": "// https://lodash.com/docs/#cloneDeep\nimport { cloneDeep } from 'lodash'\n\nvar objects = [{ 'a': 1 }, { 'b': 2 }]\n\nvar deep = cloneDeep(objects)\n\nmodule.exports = deep[0] === objects[0]\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/cloneDeep/notes.md",
    "content": "This method is like <a href=\"#clone\"><code>\\_.clone</code></a> except that it recursively clones <code>value</code>.\n\nResources: [structuredClone](https://developer.mozilla.org/docs/Web/API/structuredClone)\n"
  },
  {
    "path": "src/content/lodash/lang/cloneDeep/spec.js",
    "content": "/**\n * @jest-environment ./src/content/lodash/lang/cloneDeep/jest.fix.js\n */\n\nconst expected = false\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('cloneDeep', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/cloneDeep/vanilla.js",
    "content": "const cloneDeep = object => structuredClone(object)\n\nvar objects = [{ 'a': 1 }, { 'b': 2 }]\n\nvar deep = cloneDeep(objects)\n\nmodule.exports = deep[0] === objects[0]\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/conformsTo/lodash.js",
    "content": "// https://lodash.com/docs/#conformsTo\nimport { conformsTo } from 'lodash'\n\nconst object = { a: 1, b: 2 }\n\nexports.scenario1 = conformsTo(object, {\n  b: n => n > 1,\n})\n// => true\n\nexports.scenario2 = conformsTo(object, {\n  b: n => n > 2,\n})\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/conformsTo/notes.md",
    "content": "Checks if <code>object</code> conforms to <code>source</code> by invoking the predicate properties of <code>source</code> with the corresponding property values of <code>object</code>.\n\nResources: [Object.keys](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/keys) [Array#every](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/every)\n"
  },
  {
    "path": "src/content/lodash/lang/conformsTo/spec.js",
    "content": "const expected = {\n  scenario1: true,\n  scenario2: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('conformsTo', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/conformsTo/vanilla.js",
    "content": "const conformsTo = (obj, ruleSet) =>\n  Object.keys(ruleSet).every(key => ruleSet[key](obj[key]))\n\nconst object = { a: 1, b: 2 }\n\nexports.scenario1 = conformsTo(object, {\n  b: n => n > 1,\n})\n// => true\n\nexports.scenario2 = conformsTo(object, {\n  b: n => n > 2,\n})\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/gt/lodash.js",
    "content": "// https://lodash.com/docs/#gt\nimport { gt } from 'lodash'\n\nexports.greaterThan = gt(3, 1)\n// => true\n\nexports.equalTo = gt(3, 3)\n// => false\n\nexports.lessThan = gt(1, 3)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/gt/notes.md",
    "content": "Checks if <code>value</code> is greater than <code>other</code>.\n\nResources: [Comparison Operators](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Comparison_Operators)\n"
  },
  {
    "path": "src/content/lodash/lang/gt/spec.js",
    "content": "const expected = {\n  greaterThan: true,\n  equalTo: false,\n  lessThan: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('gt', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/gt/vanilla.js",
    "content": "const gt = (a, b) => a > b\n\nexports.greaterThan = gt(3, 1)\n// => true\n\nexports.equalTo = gt(3, 3)\n// => false\n\nexports.lessThan = gt(1, 3)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/gte/lodash.js",
    "content": "// https://lodash.com/docs/#gte\nimport { gte } from 'lodash'\n\nexports.greaterThan = gte(3, 1)\n// => true\n\nexports.equalTo = gte(3, 3)\n// => true\n\nexports.lessThan = gte(1, 3)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/gte/notes.md",
    "content": "Checks if <code>value</code> is greater than or equal to <code>other</code>.\n\nResources: [Comparison Operators](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Comparison_Operators)\n"
  },
  {
    "path": "src/content/lodash/lang/gte/spec.js",
    "content": "const expected = {\n  greaterThan: true,\n  equalTo: true,\n  lessThan: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('gte', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/gte/vanilla.js",
    "content": "const gte = (a, b) => a >= b\n\nexports.greaterThan = gte(3, 1)\n// => true\n\nexports.equalTo = gte(3, 3)\n// => true\n\nexports.lessThan = gte(1, 3)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isArray/lodash.js",
    "content": "// https://lodash.com/docs/#isArray\nimport { isArray } from 'lodash'\n\nexports.array = isArray([1, 2, 3])\n// => true\n\nexports.dom_body_children = isArray(document.body.children)\n// => false\n\nexports.string = isArray('abc')\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isArray/notes.md",
    "content": "Checks if <code>value</code> is classified as an <code>Array</code> object.\n\nResources: [Array.isArray](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray)\n"
  },
  {
    "path": "src/content/lodash/lang/isArray/spec.js",
    "content": "const expected = {\n  array: true,\n  dom_body_children: false,\n  string: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isArray', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isArray/vanilla.js",
    "content": "exports.array = Array.isArray([1, 2, 3])\n// => true\n\nexports.dom_body_children = Array.isArray(document.body.children)\n// => false\n\nexports.string = Array.isArray('abc')\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isArrayBuffer/lodash.js",
    "content": "// https://lodash.com/docs/#isArrayBuffer\nimport { isArrayBuffer } from 'lodash'\n\nexports.arrayBuffer = isArrayBuffer(new ArrayBuffer(2))\n// => true\n\nexports.array = isArrayBuffer(new Array(2))\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isArrayBuffer/notes.md",
    "content": "Checks if <code>value</code> is an instance of <code>ArrayBuffer</code>.\n\nResources: [Node.js](https://nodejs.org/api/util.html#utiltypesisarraybuffervalue) [node-util](https://github.com/browserify/node-util/)\n"
  },
  {
    "path": "src/content/lodash/lang/isArrayBuffer/spec.js",
    "content": "const expected = {\n  arrayBuffer: true,\n  array: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isArrayBuffer', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isArrayBuffer/vanilla.js",
    "content": "// Since Node.js v10+, it's available in the util library\n// https://nodejs.org/api/util.html##utiltypesisarraybuffervalue\n//\n// This implementation is a simplified version of the one found\n// in the polyfill module node-util (and it doesn't support IE)\nconst isArrayBuffer = value => value.toString() === '[object ArrayBuffer]'\n\nexports.arrayBuffer = isArrayBuffer(new ArrayBuffer(2))\n// => true\n\nexports.array = isArrayBuffer(new Array(2))\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isArrayLike/lodash.js",
    "content": "// https://lodash.com/docs/#isArrayLike\nimport { isArrayLike } from 'lodash'\n\nexports.array = isArrayLike([1, 2, 3])\n// => true\n\nexports.arrayLike = isArrayLike(document.body.children)\n// => true\n\nexports.string = isArrayLike('abc')\n// => true\n\nexports.obj = isArrayLike({ a: 1 })\n// => false\n\nexports.funct = isArrayLike(() => {})\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isArrayLike/notes.md",
    "content": "Checks if <code>value</code> is array-like. A value is considered array-like if it's not a function and has a <code>value.length</code> that's an integer greater than or equal to <code>0</code> and less than or equal to <code>Number.MAX_SAFE_INTEGER</code>.\n\nResources: [Number.MAX_SAFE_INTEGER](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER) [Optional Chaining](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Optional_chaining)\n"
  },
  {
    "path": "src/content/lodash/lang/isArrayLike/spec.js",
    "content": "const expected = {\n  array: true,\n  arrayLike: true,\n  string: true,\n  obj: false,\n  funct: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isArrayLike', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isArrayLike/vanilla.js",
    "content": "const isArrayLike = a =>\n  typeof a !== 'function' &&\n  a?.length >= 0 &&\n  a?.length <= Number.MAX_SAFE_INTEGER\n\nexports.array = isArrayLike([1, 2, 3])\n// => true\n\nexports.arrayLike = isArrayLike(document.body.children)\n// => true\n\nexports.string = isArrayLike('abc')\n// => true\n\nexports.obj = isArrayLike({ a: 1 })\n// => false\n\nexports.funct = isArrayLike(() => {})\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isBoolean/lodash.js",
    "content": "// https://lodash.com/docs/#isBoolean\nimport { isBoolean } from 'lodash'\n\nexports.true = isBoolean(false)\n// => true\n\nexports.false = isBoolean(null)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isBoolean/notes.md",
    "content": "Checks if <code>value</code> is classified as a boolean primitive or object.\n"
  },
  {
    "path": "src/content/lodash/lang/isBoolean/spec.js",
    "content": "const expected = {\n  true: true,\n  false: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isBoolean', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isBoolean/vanilla.js",
    "content": "const isBoolean = arg => arg === !!arg\n\nexports.true = isBoolean(false)\n// => true\n\nexports.false = isBoolean(null)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isDate/.eslintrc",
    "content": "{\n  \"rules\": {\n    \"no-restricted-globals\": 0\n  }\n}\n"
  },
  {
    "path": "src/content/lodash/lang/isDate/lodash.js",
    "content": "// https://lodash.com/docs/#isDate\nimport { isDate } from 'lodash'\n\nexports.true = isDate(new Date())\n// => true\n\nexports.false = isDate('Mon April 23 2012')\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isDate/notes.md",
    "content": "Checks if <code>value</code> is classified as a <code>Date</code> object.\n\nResources: [instanceof](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/instanceof)\n"
  },
  {
    "path": "src/content/lodash/lang/isDate/spec.js",
    "content": "const expected = {\n  true: true,\n  false: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isDate', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isDate/vanilla.js",
    "content": "const isDate = d => d instanceof Date && !isNaN(d)\n\nexports.true = isDate(new Date())\n// => true\n\nexports.false = isDate('Mon April 23 2012')\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isEmpty/lodash.js",
    "content": "// https://lodash.com/docs/#isEmpty\nimport { isEmpty } from 'lodash'\n\nexports.null = isEmpty(null)\n// => true\n\nexports.boolean = isEmpty(true)\n// => true\n\nexports.number = isEmpty(1)\n// => true\n\nexports.string = isEmpty('not empty')\n// => false\n\nexports.set = isEmpty(new Set([1, 2, 3]))\n// => true\n\nexports.map = isEmpty(new Map([['a', 1]]))\n// => false\n\nexports.array = isEmpty([1, 2, 3])\n// => false\n\nexports.object = isEmpty({ 'a': 1 })\n// => false\n\nexports.emptyArray = isEmpty([])\n// => true\n\nexports.emptyString = isEmpty('')\n// => true\n\nexports.emptySet = isEmpty(new Set())\n// => true\n\nexports.emptyMap = isEmpty(new Map())\n// => true\n"
  },
  {
    "path": "src/content/lodash/lang/isEmpty/notes.md",
    "content": "Checks if <code>value</code> is an empty object, collection, map, or set.<br><br>Objects are considered empty if they have no own enumerable string keyed properties.<br><br>Array-like values such as <code>arguments</code> objects, arrays, buffers, strings, or jQuery-like collections are considered empty if they have a <code>length</code> of <code>0</code>. Similarly, maps and sets are considered empty if they have a <code>size</code> of <code>0</code>.\n\nResources: [Object.entries](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/entries) [Set#size](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Set/size) [Optional Chaining](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Optional_chaining)\n"
  },
  {
    "path": "src/content/lodash/lang/isEmpty/spec.js",
    "content": "const expected = {\n  array: false,\n  emptyArray: true,\n  emptyMap: true,\n  emptySet: true,\n  emptyString: true,\n  map: false,\n  null: true,\n  number: true,\n  object: false,\n  boolean: true,\n  set: false,\n  string: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isEmpty', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isEmpty/vanilla.js",
    "content": "const isEmpty = obj => {\n  if (obj?.length || obj?.size) return false\n  if (typeof obj !== 'object') return true\n  for (const key in obj) if (Object.hasOwn(obj, key)) return false\n  return true\n}\n\nexports.null = isEmpty(null)\n// => true\n\nexports.boolean = isEmpty(true)\n// => true\n\nexports.number = isEmpty(1)\n// => true\n\nexports.string = isEmpty('not empty')\n// => false\n\nexports.set = isEmpty(new Set([1, 2, 3]))\n// => false\n\nexports.map = isEmpty(new Map([['a', 1]]))\n// => false\n\nexports.array = isEmpty([1, 2, 3])\n// => false\n\nexports.object = isEmpty({ 'a': 1 })\n// => false\n\nexports.emptyArray = isEmpty([])\n// => true\n\nexports.emptyString = isEmpty('')\n// => true\n\nexports.emptySet = isEmpty(new Set())\n// => true\n\nexports.emptyMap = isEmpty(new Map())\n// => true\n"
  },
  {
    "path": "src/content/lodash/lang/isError/lodash.js",
    "content": "// https://lodash.com/docs/#isError\nimport { isError } from 'lodash'\n\nexports.error = isError(new Error())\n// => true\n\nexports.notError = isError(Error)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isError/notes.md",
    "content": "Checks if <code>value</code> is an <code>Error</code>, <code>EvalError</code>, <code>RangeError</code>, <code>ReferenceError</code>, <code>SyntaxError</code>, <code>TypeError</code>, or <code>URIError</code> object.\n\nResources: [instanceof](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/instanceof)\n"
  },
  {
    "path": "src/content/lodash/lang/isError/spec.js",
    "content": "const expected = {\n  error: true,\n  notError: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isError', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isError/vanilla.js",
    "content": "const isError = err => err instanceof Error\n\nexports.error = isError(new Error())\n// => true\n\nexports.notError = isError(Error)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isFinite/lodash.js",
    "content": "// https://lodash.com/docs/#isFinite\nimport { isFinite } from 'lodash'\n\nexports.integer = isFinite(3)\n// => true\n\nexports.lowerBound = isFinite(Number.MIN_VALUE)\n// => true\n\nexports.infinite = isFinite(Infinity)\n// => false\n\nexports.stringNumber = isFinite('3')\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isFinite/notes.md",
    "content": "Checks if <code>value</code> is a finite primitive number.\n\nResources: [Number.isFinite](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite)\n"
  },
  {
    "path": "src/content/lodash/lang/isFinite/spec.js",
    "content": "const expected = {\n  integer: true,\n  lowerBound: true,\n  infinite: false,\n  stringNumber: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isFinite', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isFinite/vanilla.js",
    "content": "exports.integer = Number.isFinite(3)\n// => true\n\nexports.lowerBound = Number.isFinite(Number.MIN_VALUE)\n// => true\n\nexports.infinite = Number.isFinite(Infinity)\n// => false\n\nexports.stringNumber = Number.isFinite('3')\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isFunction/lodash.js",
    "content": "// https://lodash.com/docs/#isFunction\nimport { isFunction } from 'lodash'\n\nexports.func = isFunction(function () {})\n// => true\n\nexports.arrowFunc = isFunction(() => {})\n// => true\n\nexports.class = isFunction(class NotAFunction {})\n// => true\n\nexports.reg = isFunction(/abc/)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isFunction/notes.md",
    "content": "Checks if <code>value</code> is classified as a <code>Function</code> object.\n\nResources: [typeof](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/typeof)\n"
  },
  {
    "path": "src/content/lodash/lang/isFunction/spec.js",
    "content": "const expected = {\n  func: true,\n  arrowFunc: true,\n  class: true,\n  reg: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isFunction', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isFunction/vanilla.js",
    "content": "const isFunction = val => typeof val === 'function'\n\nexports.func = isFunction(function () {})\n// => true\n\nexports.arrowFunc = isFunction(() => {})\n// => true\n\nexports.class = isFunction(class NotAFunction {})\n// => false\n\nexports.reg = isFunction(/abc/)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isInteger/lodash.js",
    "content": "// https://lodash.com/docs/#isInteger\nimport { isInteger } from 'lodash'\n\nexports.integer = isInteger(3)\n// => true\n\nexports.lowerBound = isInteger(Number.MIN_VALUE)\n// => false\n\nexports.infinite = isInteger(Infinity)\n// => false\n\nexports.stringNumber = isInteger('3')\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isInteger/notes.md",
    "content": "Checks if <code>value</code> is an integer.\n\nResources: [Number.isInteger](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger)\n"
  },
  {
    "path": "src/content/lodash/lang/isInteger/spec.js",
    "content": "const expected = {\n  integer: true,\n  lowerBound: false,\n  infinite: false,\n  stringNumber: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isInteger', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isInteger/vanilla.js",
    "content": "exports.integer = Number.isInteger(3)\n// => true\n\nexports.lowerBound = Number.isInteger(Number.MIN_VALUE)\n// => false\n\nexports.infinite = Number.isInteger(Infinity)\n// => false\n\nexports.stringNumber = Number.isInteger('3')\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isMap/lodash.js",
    "content": "// https://lodash.com/docs/#isMap\nimport { isMap } from 'lodash'\n\nexports.mapValue = isMap(new Map())\n// => true\n\nexports.weakMapValue = isMap(new WeakMap())\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isMap/notes.md",
    "content": "Checks if <code>value</code> is classified as a <code>Map</code> object."
  },
  {
    "path": "src/content/lodash/lang/isMap/spec.js",
    "content": "const expected = {\n  mapValue: true,\n  weakMapValue: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isMap', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isMap/vanilla.js",
    "content": "// Since Node.js v10+, it's available in the util library\n// https://nodejs.org/api/util.html##util_util_types_ismap_value\n//\n// This implementation is a simplified version of the one found\n// in the polyfill module node-util (and it doesn't support IE)\nconst isMap = value => value.toString() === '[object Map]'\n\nexports.mapValue = isMap(new Map())\n// => true\n\nexports.weakMapValue = isMap(new WeakMap())\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isMatch/lodash.js",
    "content": "// https://lodash.com/docs/#isMatch\nimport { isMatch } from 'lodash'\n\nconst object = { 'a': 1, 'b': 2, c: { a: 2 }, d: [1, 2, 3], e: {} }\n\nexports.match = isMatch(object, { 'b': 2 })\n// => true\n\nexports.noMatch = isMatch(object, { 'b': 1 })\n// => false\n\nexports.matchNested = isMatch(object, { 'c': { a: 2 } })\n// => true\n\nexports.noMatchNested = isMatch(object, { 'c': { a: 3 } })\n// => false\n\nexports.matchArray = isMatch(object, { 'd': [1, 2, 3] })\n// => true\n\nexports.matchPartialArray = isMatch(object, { 'd': [2] })\n// => true\n\nexports.noMatchArray = isMatch(object, { 'd': 2 })\n// => false\n\nexports.empty = isMatch(object, { 'e': {} })\n// => true\n"
  },
  {
    "path": "src/content/lodash/lang/isMatch/notes.md",
    "content": "Performs a partial deep comparison between <code>object</code> and <code>source</code> to determine if <code>object</code> contains equivalent property values.\n\nResources: [Array.isArray](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray) [Array#every](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/every) [Array#includes](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/includes)\n"
  },
  {
    "path": "src/content/lodash/lang/isMatch/spec.js",
    "content": "const expected = {\n  match: true,\n  noMatch: false,\n  matchNested: true,\n  noMatchNested: false,\n  matchArray: true,\n  matchPartialArray: true,\n  noMatchArray: false,\n  empty: true,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isMatch', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isMatch/vanilla.js",
    "content": "const isMatch = (object, source) => {\n  for (let key in source) {\n    // For arrays we look for partial matches\n    if (Array.isArray(source[key]) && Array.isArray(object[key])) {\n      return source[key].every(v => object[key].includes(v))\n    }\n    // For any other data type we look for equality of the values\n    return typeof source[key] === 'object'\n      ? isMatch(object[key], source[key])\n      : object[key] === source[key]\n  }\n\n  // This should catch emtpy structures\n  return JSON.stringify(object) === JSON.stringify(source)\n}\n\nconst object = { 'a': 1, 'b': 2, c: { a: 2 }, d: [1, 2, 3], e: {} }\n\nexports.match = isMatch(object, { 'b': 2 })\n// => true\n\nexports.noMatch = isMatch(object, { 'b': 1 })\n// => false\n\nexports.matchNested = isMatch(object, { 'c': { a: 2 } })\n// => true\n\nexports.noMatchNested = isMatch(object, { 'c': { a: 3 } })\n// => false\n\nexports.matchArray = isMatch(object, { 'd': [1, 2, 3] })\n// => true\n\nexports.matchPartialArray = isMatch(object, { 'd': [2] })\n// => true\n\nexports.noMatchArray = isMatch(object, { 'd': 2 })\n// => false\n\nexports.empty = isMatch(object, { 'e': {} })\n// => true\n"
  },
  {
    "path": "src/content/lodash/lang/isNaN/lodash.js",
    "content": "// https://lodash.com/docs/#isNaN\nimport { isNaN } from 'lodash'\n\nexports.NaN = isNaN(NaN)\n// => true\n\nexports.NumberNaN = isNaN(Number(NaN))\n// => true\n\nexports.undef = isNaN(undefined)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isNaN/notes.md",
    "content": "Checks if <code>value</code> is <code>NaN</code>.\n\nResources: [Number.isNaN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN)\n"
  },
  {
    "path": "src/content/lodash/lang/isNaN/spec.js",
    "content": "const expected = {\n  NaN: true,\n  NumberNaN: true,\n  undef: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isNaN', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isNaN/vanilla.js",
    "content": "exports.NaN = Number.isNaN(NaN)\n// => true\n\nexports.NumberNaN = Number.isNaN(Number(NaN))\n// => true\n\nexports.undef = Number.isNaN(undefined)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isNil/lodash.js",
    "content": "// https://lodash.com/docs/#isNil\nimport { isNil } from 'lodash'\n\nexports.nullVal = isNil(null)\n// => true\n\nexports.undefVal = isNil(undefined)\n// => true\n\nexports.nanVal = isNil(NaN)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isNil/notes.md",
    "content": "Checks if <code>value</code> is <code>null</code> or <code>undefined</code>.\n\nResources: [Comparison Operators](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Comparison_Operators)\n"
  },
  {
    "path": "src/content/lodash/lang/isNil/spec.js",
    "content": "const expected = {\n  nullVal: true,\n  undefVal: true,\n  nanVal: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isNil', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isNil/vanilla.js",
    "content": "const isNil = val => val == null\n\nexports.nullVal = isNil(null)\n// => true\n\nexports.undefVal = isNil(undefined)\n// => true\n\nexports.nanVal = isNil(NaN)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isNull/lodash.js",
    "content": "// https://lodash.com/docs/#isNull\nimport { isNull } from 'lodash'\n\nexports.nullVal = isNull(null)\n// => true\n\nexports.undefVal = isNull(undefined)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isNull/notes.md",
    "content": "Checks if <code>value</code> is <code>null</code>.\n\nResources: [Equality comparisons](https://developer.mozilla.org/docs/Web/JavaScript/Equality_comparisons_and_sameness)\n"
  },
  {
    "path": "src/content/lodash/lang/isNull/spec.js",
    "content": "const expected = {\n  nullVal: true,\n  undefVal: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isNull', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isNull/vanilla.js",
    "content": "const isNull = val => val === null\n\nexports.nullVal = isNull(null)\n// => true\n\nexports.undefVal = isNull(undefined)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isNumber/lodash.js",
    "content": "// https://lodash.com/docs/#isNumber\nimport { isNumber } from 'lodash'\n\nexports.number = isNumber(3)\n// => true\n\nexports.minValue = isNumber(Number.MIN_VALUE)\n// => true\n\nexports.infinity = isNumber(Infinity)\n// => true\n\nexports.string = isNumber('3')\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isNumber/notes.md",
    "content": "Checks if <code>value</code> is classified as a <code>Number</code> primitive or object.\n\nResources: [typeof](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/typeof)\n"
  },
  {
    "path": "src/content/lodash/lang/isNumber/spec.js",
    "content": "const expected = {\n  number: true,\n  minValue: true,\n  infinity: true,\n  string: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isNumber', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isNumber/vanilla.js",
    "content": "const isNumber = a => typeof a === 'number'\n\nexports.number = isNumber(3)\n// => true\n\nexports.minValue = isNumber(Number.MIN_VALUE)\n// => true\n\nexports.infinity = isNumber(Infinity)\n// => true\n\nexports.string = isNumber('3')\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isObject/lodash.js",
    "content": "// https://lodash.com/docs/#isObject\nimport { isObject } from 'lodash'\n\nexports.object = isObject({})\n// => true\n\nexports.array = isObject([1, 2, 3])\n// => true\n\nexports.funct = isObject(() => {})\n// => true\n\nexports.null = isObject(null)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isObject/notes.md",
    "content": "Checks if <code>value</code> is the <a href=\"http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types\">language type</a> of <code>Object</code>. <em>(e.g. arrays, functions, objects, regexes, <code>new Number(0)</code>, and <code>new String('')</code>)</em>\n\nResources: [instanceof](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/instanceof)\n"
  },
  {
    "path": "src/content/lodash/lang/isObject/spec.js",
    "content": "const expected = {\n  object: true,\n  array: true,\n  funct: true,\n  null: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isObject', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isObject/vanilla.js",
    "content": "const isObject = a => a instanceof Object\n\nexports.object = isObject({})\n// => true\n\nexports.array = isObject([1, 2, 3])\n// => true\n\nexports.funct = isObject(() => {})\n// => true\n\nexports.null = isObject(null)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isRegExp/lodash.js",
    "content": "// https://lodash.com/docs/#isRegExp\nimport { isRegExp } from 'lodash'\n\nexports.regex = isRegExp(/abc/)\n// => true\n\nexports.notRegex = isRegExp('/abc/')\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isRegExp/notes.md",
    "content": "Checks if <code>value</code> is classified as a <code>RegExp</code> object.\n\nResources: [instanceof](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/instanceof)\n"
  },
  {
    "path": "src/content/lodash/lang/isRegExp/spec.js",
    "content": "const expected = {\n  regex: true,\n  notRegex: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isRegExp', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isRegExp/vanilla.js",
    "content": "const isRegExp = obj => obj instanceof RegExp\n\nexports.regex = isRegExp(/abc/)\n// => true\n\nexports.notRegex = isRegExp('/abc/')\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isSafeInteger/lodash.js",
    "content": "// https://lodash.com/docs/#isSafeInteger\nimport { isSafeInteger } from 'lodash'\n\nexports.number = isSafeInteger(3)\n// => true\n\nexports.minValue = isSafeInteger(Number.MIN_VALUE)\n// => false\n\nexports.infinity = isSafeInteger(Infinity)\n// => false\n\nexports.string = isSafeInteger('3')\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isSafeInteger/notes.md",
    "content": "Checks if <code>value</code> is a safe integer. An integer is safe if it's an IEEE-754 double precision number which isn't the result of a rounded unsafe integer.\n\nResources: [Number.isSafeInteger](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger)\n"
  },
  {
    "path": "src/content/lodash/lang/isSafeInteger/spec.js",
    "content": "const expected = {\n  number: true,\n  minValue: false,\n  infinity: false,\n  string: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isSafeInteger', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isSafeInteger/vanilla.js",
    "content": "const isSafeInteger = n => Number.isSafeInteger(n)\n\nexports.number = isSafeInteger(3)\n// => true\n\nexports.minValue = isSafeInteger(Number.MIN_VALUE)\n// => false\n\nexports.infinity = isSafeInteger(Infinity)\n// => false\n\nexports.string = isSafeInteger('3')\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isSet/lodash.js",
    "content": "// https://lodash.com/docs/#isSet\nimport { isSet } from 'lodash'\n\nexports.setValue = isSet(new Set())\n// => true\n\nexports.weakSetValue = isSet(new WeakSet())\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isSet/notes.md",
    "content": "Checks if <code>value</code> is an instance of <code>Set</code>.\n\nResources: [Node.js](https://nodejs.org/api/util.html#utiltypesissetvalue) [node-util](https://github.com/browserify/node-util/)\n"
  },
  {
    "path": "src/content/lodash/lang/isSet/spec.js",
    "content": "const expected = {\n  setValue: true,\n  weakSetValue: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isSet', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isSet/vanilla.js",
    "content": "// Since Node.js v10+, it's available in the util library\n// https://nodejs.org/api/util.html##util_util_types_isset_value\n//\n// This implementation is a simplified version of the one found\n// in the polyfill module node-util (and it doesn't support IE)\nconst isSet = value => value.toString() === '[object Set]'\n\nexports.setValue = isSet(new Set())\n// => true\n\nexports.weakSetValue = isSet(new WeakSet())\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isString/lodash.js",
    "content": "// https://lodash.com/docs/#isString\nimport { isString } from 'lodash'\n\nexports.string = isString('abc')\n// => true\n\nexports.notString = isString(1)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isString/notes.md",
    "content": "Checks if <code>value</code> is classified as a <code>String</code> primitive or object.\n\nResources: [typeof](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/typeof)\n"
  },
  {
    "path": "src/content/lodash/lang/isString/spec.js",
    "content": "const expected = {\n  string: true,\n  notString: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isString', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isString/vanilla.js",
    "content": "const isString = a => typeof a === 'string'\n\nexports.string = isString('abc')\n// => true\n\nexports.notString = isString(1)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isSymbol/lodash.js",
    "content": "// https://lodash.com/docs/#isSymbol\nimport { isSymbol } from 'lodash'\n\nexports.symbolValue = isSymbol(Symbol.iterator)\n// => true\n\nexports.notSymbolValue = isSymbol('abc')\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isSymbol/notes.md",
    "content": "Checks if <code>value</code> is an instance of <code>Symbol</code>.\n"
  },
  {
    "path": "src/content/lodash/lang/isSymbol/spec.js",
    "content": "const expected = {\n  symbolValue: true,\n  notSymbolValue: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isSymbol', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isSymbol/vanilla.js",
    "content": "const isSymbol = symbolMaybe => typeof symbolMaybe === 'symbol'\n\nexports.symbolValue = isSymbol(Symbol.iterator)\n// => true\n\nexports.notSymbolValue = isSymbol('abc')\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isTypedArray/lodash.js",
    "content": "import { isTypedArray } from 'util/types'\n\nexports.uint8Array = isTypedArray(new Uint8Array())\n// => true\n\nexports.float64Array = isTypedArray(new Float64Array())\n// => true\n\nexports.arrayBuffer = isTypedArray(new ArrayBuffer())\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isTypedArray/notes.md",
    "content": "Checks if <code>value</code> is classified as a typed array.\n\nResources: [Node.js](https://nodejs.org/api/util.html#utiltypesistypedarrayvalue) [underscore.js](https://underscorejs.org/docs/modules/isTypedArray.html)\n"
  },
  {
    "path": "src/content/lodash/lang/isTypedArray/spec.js",
    "content": "const expected = {\n  uint8Array: true,\n  float64Array: true,\n  arrayBuffer: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isTypedArray', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isTypedArray/vanilla.js",
    "content": "// Since Node.js v10+, it's available in the util library\n// https://nodejs.org/api/util.html#utiltypesistypedarrayvalue\n//\n// This implementation is a simplified version of the one found\n// in underscore.js (and it doesn't support IE some early Edge versions)\n\n// the Regex tests on whether the Object.toString of the array passed matches any\n// typed array. I.e.: [object Int32Array] or [object Float64Array]\nconst typedArrayPattern =\n  /\\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\\]/\n\nconst isTypedArray = value =>\n  typedArrayPattern.test(Object.prototype.toString.call(value))\n\nexports.uint8Array = isTypedArray(new Uint8Array())\n// => true\n\nexports.float64Array = isTypedArray(new Float64Array())\n// => true\n\nexports.arrayBuffer = isTypedArray(new ArrayBuffer())\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isUndefined/lodash.js",
    "content": "// https://lodash.com/docs/#isUndefined\nimport { isUndefined } from 'lodash'\n\nexports.undefVal = isUndefined(undefined)\n// => true\n\nexports.nullVal = isUndefined(null)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isUndefined/notes.md",
    "content": "Checks if <code>value</code> is <code>undefined</code>.\n\nResources: [Equality comparisons](https://developer.mozilla.org/docs/Web/JavaScript/Equality_comparisons_and_sameness)\n"
  },
  {
    "path": "src/content/lodash/lang/isUndefined/spec.js",
    "content": "const expected = {\n  nullVal: false,\n  undefVal: true,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isUndefined', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isUndefined/vanilla.js",
    "content": "const isUndefined = val => val === undefined\n\nexports.undefVal = isUndefined(undefined)\n// => true\n\nexports.nullVal = isUndefined(null)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isWeakMap/lodash.js",
    "content": "// https://lodash.com/docs/#isWeakMap\nimport { isWeakMap } from 'lodash'\n\nexports.weakMapValue = isWeakMap(new WeakMap())\n// => true\n\nexports.weakSetValue = isWeakMap(new WeakSet())\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isWeakMap/notes.md",
    "content": "Checks if <code>value</code> is an instance of <code>WeakMap</code>.\n\nResources: [Node.js](https://nodejs.org/api/util.html#utiltypesisweakmapvalue) [node-util](https://github.com/browserify/node-util/)\n"
  },
  {
    "path": "src/content/lodash/lang/isWeakMap/spec.js",
    "content": "const expected = {\n  weakMapValue: true,\n  weakSetValue: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isSet', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isWeakMap/vanilla.js",
    "content": "// Since Node.js v10+, it's available in the util library\n// https://nodejs.org/api/util.html##utiltypesisweakmapvalue\n//\n// This implementation is a simplified version of the one found\n// in the polyfill module node-util (and it doesn't support IE)\nconst isWeakMap = value => value.toString() === '[object WeakMap]'\n\nexports.weakMapValue = isWeakMap(new WeakMap())\n// => true\n\nexports.weakSetValue = isWeakMap(new WeakSet())\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isWeakSet/lodash.js",
    "content": "// https://lodash.com/docs/#isWeakSet\nimport { isWeakSet } from 'lodash'\n\nexports.weakSetValue = isWeakSet(new WeakSet())\n// => true\n\nexports.weakMapValue = isWeakSet(new WeakMap())\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/isWeakSet/notes.md",
    "content": "Checks if <code>value</code> is an instance of <code>WeakSet</code>.\n\nResources: [Node.js](https://nodejs.org/api/util.html#utiltypesisweaksetvalue) [node-util](https://github.com/browserify/node-util/)\n"
  },
  {
    "path": "src/content/lodash/lang/isWeakSet/spec.js",
    "content": "const expected = {\n  weakMapValue: false,\n  weakSetValue: true,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('isWeakSet', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/isWeakSet/vanilla.js",
    "content": "// Since Node.js v10+, it's available in the util library\n// https://nodejs.org/api/util.html#utiltypesisweaksetvalue\n//\n// This implementation is a simplified version of the one found\n// in the polyfill module node-util (and it doesn't support IE)\n\nconst isWeakSet = value => value.toString() === '[object WeakSet]'\n\nexports.weakSetValue = isWeakSet(new WeakSet())\n// => true\n\nexports.weakMapValue = isWeakSet(new WeakMap())\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/lt/lodash.js",
    "content": "// https://lodash.com/docs/#lt\nimport { lt } from 'lodash'\n\nexports.default = lt(1, 3)\n// => true\n\nexports.equal = lt(3, 3)\n// => false\n\nexports.flase = lt(3, 1)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/lt/notes.md",
    "content": "Checks if <code>value</code> is less than <code>other</code>.\n\nResources: [Comparison Operators](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Comparison_Operators)\n"
  },
  {
    "path": "src/content/lodash/lang/lt/spec.js",
    "content": "const expected = {\n  default: true,\n  equal: false,\n  flase: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('lt', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/lt/vanilla.js",
    "content": "const lt = (a, b) => a < b\n\nexports.default = lt(1, 3)\n// => true\n\nexports.equal = lt(3, 3)\n// => false\n\nexports.flase = lt(3, 1)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/lte/lodash.js",
    "content": "// https://lodash.com/docs/#lte\nimport { lte } from 'lodash'\n\nexports.default = lte(1, 3)\n// => true\n\nexports.equal = lte(3, 3)\n// => true\n\nexports.flase = lte(3, 1)\n// => false\n"
  },
  {
    "path": "src/content/lodash/lang/lte/notes.md",
    "content": "Checks if <code>value</code> is less than or equal to <code>other</code>.\n\nResources: [Comparison Operators](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Comparison_Operators)\n"
  },
  {
    "path": "src/content/lodash/lang/lte/spec.js",
    "content": "const expected = {\n  default: true,\n  equal: true,\n  flase: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('lt', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/lang/lte/vanilla.js",
    "content": "const lte = (a, b) => a <= b\n\nexports.default = lte(1, 3)\n// => true\n\nexports.equal = lte(3, 3)\n// => false\n\nexports.flase = lte(3, 1)\n// => false\n"
  },
  {
    "path": "src/content/lodash/math/add/lodash.js",
    "content": "// https://lodash.com/docs/#add\nimport { add } from 'lodash'\n\nmodule.exports = add(6, 4)\n// => 10\n"
  },
  {
    "path": "src/content/lodash/math/add/notes.md",
    "content": "Adds two numbers.\n"
  },
  {
    "path": "src/content/lodash/math/add/spec.js",
    "content": "const expected = 10\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('add', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/math/add/vanilla.js",
    "content": "const add = (a, b) => a + b\n\nmodule.exports = add(6, 4)\n// => 10\n"
  },
  {
    "path": "src/content/lodash/math/ceil/lodash.js",
    "content": "// https://lodash.com/docs/#ceil\nimport { ceil } from 'lodash'\n\nexports.ceil = ceil(4.006)\n// => 5\n\nexports.precision = ceil(6.004, 2)\n// => 6.01\n\nexports.negPrecision = ceil(6040, -2)\n// => 6100\n"
  },
  {
    "path": "src/content/lodash/math/ceil/notes.md",
    "content": "Computes <code>number</code> rounded up to <code>precision</code>.\n\nResources: [Assignment Operators](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Assignment_Operators#Exponentiation_assignment)\n"
  },
  {
    "path": "src/content/lodash/math/ceil/spec.js",
    "content": "const expected = {\n  ceil: 5,\n  precision: 6.01,\n  negPrecision: 6100,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('ceil', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/math/ceil/vanilla.js",
    "content": "const ceil = (num, precision) => {\n  const modifier = 10 ** precision\n  return Math.ceil(num * modifier) / modifier\n}\n\nexports.ceil = Math.ceil(4.006)\n// => 5\n\nexports.precision = ceil(6.004, 2)\n// => 6.01\n\nexports.negPrecision = ceil(6040, -2)\n// => 6100\n"
  },
  {
    "path": "src/content/lodash/math/divide/lodash.js",
    "content": "// https://lodash.com/docs/#divide\nimport { divide } from 'lodash'\n\nmodule.exports = divide(6, 4)\n// => 1.5\n"
  },
  {
    "path": "src/content/lodash/math/divide/notes.md",
    "content": "Divide two numbers.\n"
  },
  {
    "path": "src/content/lodash/math/divide/spec.js",
    "content": "const expected = 1.5\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('divide', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/math/divide/vanilla.js",
    "content": "const divide = (a, b) => a / b\n\nmodule.exports = divide(6, 4)\n// => 1.5\n"
  },
  {
    "path": "src/content/lodash/math/floor/lodash.js",
    "content": "// https://lodash.com/docs/#floor\nimport { floor } from 'lodash'\n\nexports.floor = floor(4.006)\n// => 4\n\nexports.precision = floor(0.046, 2)\n// => 0.04\n\nexports.negPrecision = floor(4060, -2)\n// => 4000\n"
  },
  {
    "path": "src/content/lodash/math/floor/notes.md",
    "content": "Computes <code>number</code> rounded down to <code>precision</code>.\n\nResources: [Assignment Operators](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Assignment_Operators#Exponentiation_assignment)\n"
  },
  {
    "path": "src/content/lodash/math/floor/spec.js",
    "content": "const expected = {\n  floor: 4,\n  precision: 0.04,\n  negPrecision: 4000,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('floor', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/math/floor/vanilla.js",
    "content": "const floor = (num, precision) => {\n  const modifier = 10 ** precision\n  return Math.floor(num * modifier) / modifier\n}\n\nexports.floor = Math.floor(4.006)\n// => 4\n\nexports.precision = floor(0.046, 2)\n// => 0.04\n\nexports.negPrecision = floor(4060, -2)\n// => 4000\n"
  },
  {
    "path": "src/content/lodash/math/max/lodash.js",
    "content": "// https://lodash.com/docs/#max\nimport { max } from 'lodash'\n\nexports.max = max([4, 2, 8, 6])\n// => 8\n\nexports.undefined = max([])\n// => undefined\n"
  },
  {
    "path": "src/content/lodash/math/max/notes.md",
    "content": "Computes the maximum value of <code>array</code>. If <code>array</code> is empty or falsey, <code>undefined</code> is returned.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax)\n"
  },
  {
    "path": "src/content/lodash/math/max/spec.js",
    "content": "const expected = {\n  max: 8,\n  undefined,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('max', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/math/max/vanilla.js",
    "content": "const max = nums => {\n  if (nums.length) return Math.max(...nums)\n}\n\nexports.max = max([4, 2, 8, 6])\n// => 8\n\nexports.undefined = max([])\n// => undefined\n"
  },
  {
    "path": "src/content/lodash/math/maxBy/lodash.js",
    "content": "// https://lodash.com/docs/#maxBy\nimport { maxBy } from 'lodash'\n\nconst objects = [{ n: 1 }, { n: 2 }]\n\nmodule.exports = maxBy(objects, o => o.n)\n// => { 'n': 2 }\n"
  },
  {
    "path": "src/content/lodash/math/maxBy/notes.md",
    "content": "This method is like <a href=\"#max\"><code>\\_.max</code></a> except that it accepts <code>iteratee</code> which is invoked for each element in <code>array</code> to generate the criterion by which the value is ranked. The iteratee is invoked with one argument: <em>(value)</em>.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax)\n"
  },
  {
    "path": "src/content/lodash/math/maxBy/spec.js",
    "content": "const expected = { n: 2 }\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('maxBy', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/math/maxBy/vanilla.js",
    "content": "const maxBy = (arr, func) => {\n  const max = Math.max(...arr.map(func))\n  return arr.find(item => func(item) === max)\n}\n\nconst objects = [{ n: 1 }, { n: 2 }]\n\nmodule.exports = maxBy(objects, o => o.n)\n// => { 'n': 2 }\n"
  },
  {
    "path": "src/content/lodash/math/mean/lodash.js",
    "content": "// https://lodash.com/docs/#mean\nimport { mean } from 'lodash'\n\nmodule.exports = mean([4, 2, 8, 6])\n// => 5\n"
  },
  {
    "path": "src/content/lodash/math/mean/notes.md",
    "content": "Computes the mean of the values in <code>array</code>.\n\nResources: [Array#reduce](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce)\n"
  },
  {
    "path": "src/content/lodash/math/mean/spec.js",
    "content": "const expected = 5\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('mean', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/math/mean/vanilla.js",
    "content": "const mean = arr => arr.reduce((acc, num) => acc + num, 0) / arr.length\n\nmodule.exports = mean([4, 2, 8, 6])\n// => 5\n"
  },
  {
    "path": "src/content/lodash/math/meanBy/lodash.js",
    "content": "// https://lodash.com/docs/#meanBy\nimport { meanBy } from 'lodash'\n\nconst objects = [{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }]\n\nmodule.exports = meanBy(objects, o => o.n)\n// => 5\n"
  },
  {
    "path": "src/content/lodash/math/meanBy/notes.md",
    "content": "This method is like <a href=\"#mean\"><code>\\_.mean</code></a> except that it accepts <code>iteratee</code> which is invoked for each element in <code>array</code> to generate the value to be averaged. The iteratee is invoked with one argument: <em>(value)</em>.\n\nResources: [Array#reduce](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce)\n"
  },
  {
    "path": "src/content/lodash/math/meanBy/spec.js",
    "content": "const expected = 5\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('meanBy', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/math/meanBy/vanilla.js",
    "content": "const meanBy = (arr, func) =>\n  arr.reduce((acc, item) => acc + func(item), 0) / arr.length\n\nconst objects = [{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }]\n\nmodule.exports = meanBy(objects, o => o.n)\n// => 5\n"
  },
  {
    "path": "src/content/lodash/math/min/lodash.js",
    "content": "// https://lodash.com/docs/#min\nimport { min } from 'lodash'\n\nexports.min = min([4, 2, 8, 6])\n// => 2\n\nexports.undefined = min([])\n// => undefined\n"
  },
  {
    "path": "src/content/lodash/math/min/notes.md",
    "content": "Computes the minimum value of <code>array</code>. If <code>array</code> is empty or falsey, <code>undefined</code> is returned.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax)\n"
  },
  {
    "path": "src/content/lodash/math/min/spec.js",
    "content": "const expected = {\n  min: 2,\n  undefined,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('min', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/math/min/vanilla.js",
    "content": "const min = nums => {\n  if (nums.length) return Math.min(...nums)\n}\n\nexports.min = min([4, 2, 8, 6])\n// => 2\n\nexports.undefined = min([])\n// => undefined\n"
  },
  {
    "path": "src/content/lodash/math/minBy/lodash.js",
    "content": "// https://lodash.com/docs/#minBy\nimport { minBy } from 'lodash'\n\nconst objects = [{ n: 1 }, { n: 2 }]\n\nmodule.exports = minBy(objects, o => o.n)\n// => { 'n': 1 }\n"
  },
  {
    "path": "src/content/lodash/math/minBy/notes.md",
    "content": "This method is like <a href=\"#min\"><code>\\_.min</code></a> except that it accepts <code>iteratee</code> which is invoked for each element in <code>array</code> to generate the criterion by which the value is ranked. The iteratee is invoked with one argument: <em>(value)</em>.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax)\n"
  },
  {
    "path": "src/content/lodash/math/minBy/spec.js",
    "content": "const expected = { n: 1 }\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('sumBy', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/math/minBy/vanilla.js",
    "content": "const minBy = (arr, func) => {\n  const min = Math.min(...arr.map(func))\n  return arr.find(item => func(item) === min)\n}\n\nconst objects = [{ n: 1 }, { n: 2 }]\n\nmodule.exports = minBy(objects, o => o.n)\n// => { 'n': 1 }\n"
  },
  {
    "path": "src/content/lodash/math/multiply/lodash.js",
    "content": "// https://lodash.com/docs/#multiply\nimport { multiply } from 'lodash'\n\nmodule.exports = multiply(6, 4)\n// => 24\n"
  },
  {
    "path": "src/content/lodash/math/multiply/notes.md",
    "content": "Multiply two numbers.\n"
  },
  {
    "path": "src/content/lodash/math/multiply/spec.js",
    "content": "const expected = 24\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('multiply', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/math/multiply/vanilla.js",
    "content": "const multiply = (a, b) => a * b\n\nmodule.exports = multiply(6, 4)\n// => 24\n"
  },
  {
    "path": "src/content/lodash/math/round/lodash.js",
    "content": "// https://lodash.com/docs/#round\nimport { round } from 'lodash'\n\nexports.round = round(4.006)\n// => 4\n\nexports.precision = round(4.006, 2)\n// => 4.01\n\nexports.negPrecision = round(4060, -2)\n// => 4100\n"
  },
  {
    "path": "src/content/lodash/math/round/notes.md",
    "content": "Computes <code>number</code> rounded to <code>precision</code>.\n\nResources: [Assignment Operators](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Assignment_Operators#Exponentiation_assignment)\n"
  },
  {
    "path": "src/content/lodash/math/round/spec.js",
    "content": "const expected = {\n  round: 4,\n  precision: 4.01,\n  negPrecision: 4100,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('round', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/math/round/vanilla.js",
    "content": "const round = (num, precision) => {\n  const modifier = 10 ** precision\n  return Math.round(num * modifier) / modifier\n}\n\nexports.round = Math.round(4.006)\n// => 4\n\nexports.precision = round(4.006, 2)\n// => 4.01\n\nexports.negPrecision = round(4060, -2)\n// => 4100\n"
  },
  {
    "path": "src/content/lodash/math/subtract/lodash.js",
    "content": "// https://lodash.com/docs/#subtract\nimport { subtract } from 'lodash'\n\nmodule.exports = subtract(6, 4)\n// => 2\n"
  },
  {
    "path": "src/content/lodash/math/subtract/notes.md",
    "content": "Subtract two numbers.\n"
  },
  {
    "path": "src/content/lodash/math/subtract/spec.js",
    "content": "const expected = 2\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('subtract', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/math/subtract/vanilla.js",
    "content": "const subtract = (a, b) => a - b\n\nmodule.exports = subtract(6, 4)\n// => 2\n"
  },
  {
    "path": "src/content/lodash/math/sum/lodash.js",
    "content": "// https://lodash.com/docs/#sum\nimport { sum } from 'lodash'\n\nmodule.exports = sum([4, 2, 8, 6])\n// => 20\n"
  },
  {
    "path": "src/content/lodash/math/sum/notes.md",
    "content": "Computes the sum of the values in <code>array</code>.\n\nResources: [Array#reduce](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce)\n"
  },
  {
    "path": "src/content/lodash/math/sum/spec.js",
    "content": "const expected = 20\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('sum', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/math/sum/vanilla.js",
    "content": "module.exports = [4, 2, 8, 6].reduce((acc, num) => {\n  acc += num\n  return acc\n}, 0)\n// => 20\n"
  },
  {
    "path": "src/content/lodash/math/sumBy/lodash.js",
    "content": "// https://lodash.com/docs/#sumBy\nimport { sumBy } from 'lodash'\n\nconst objects = [{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }]\n\nmodule.exports = sumBy(objects, o => o.n)\n// => 20\n"
  },
  {
    "path": "src/content/lodash/math/sumBy/notes.md",
    "content": "This method is like <a href=\"#sum\"><code>\\_.sum</code></a> except that it accepts <code>iteratee</code> which is invoked for each element in <code>array</code> to generate the value to be summed. The iteratee is invoked with one argument: <em>(value)</em>.\n\nResources: [Array#reduce](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce)\n"
  },
  {
    "path": "src/content/lodash/math/sumBy/spec.js",
    "content": "const expected = 20\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('sumBy', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/math/sumBy/vanilla.js",
    "content": "const sumBy = (arr, func) => arr.reduce((acc, item) => acc + func(item), 0)\n\nconst objects = [{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }]\n\nmodule.exports = sumBy(objects, o => o.n)\n// => 20\n"
  },
  {
    "path": "src/content/lodash/number/clamp/lodash.js",
    "content": "// https://lodash.com/docs/#clamp\nimport { clamp } from 'lodash'\n\nexports.noOptionalArg = clamp(-10, -5)\n// => -10\n\nexports.lower = clamp(-10, -5, 5)\n// => -5\n\nexports.higher = clamp(10, -5, 5)\n// => 5\n"
  },
  {
    "path": "src/content/lodash/number/clamp/notes.md",
    "content": "Clamps <code>number</code> within the inclusive <code>lower</code> and <code>upper</code> bounds.\n"
  },
  {
    "path": "src/content/lodash/number/clamp/spec.js",
    "content": "const expected = {\n  noOptionalArg: -10,\n  higher: 5,\n  lower: -5,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('clamp', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/number/clamp/vanilla.js",
    "content": "const clamp = (num, clamp, higher) =>\n  higher ? Math.min(Math.max(num, clamp), higher) : Math.min(num, clamp)\n\nexports.noOptionalArg = clamp(-10, -5)\n// => -10\n\nexports.lower = clamp(-10, -5, 5)\n// => -5\n\nexports.higher = clamp(10, -5, 5)\n// => 5\n"
  },
  {
    "path": "src/content/lodash/number/inRange/lodash.js",
    "content": "// https://lodash.com/docs/#inRange\nimport { inRange } from 'lodash'\n\nexports.example1 = inRange(3, 2, 4)\n// => true\n\nexports.example2 = inRange(4, 8)\n// => true\n\nexports.example3 = inRange(4, 2)\n// => false\n\nexports.example4 = inRange(2, 2)\n// => false\n\nexports.example5 = inRange(1.2, 2)\n// => true\n\nexports.example6 = inRange(5.2, 4)\n// => false\n\nexports.example7 = inRange(-3, -2, -6)\n// => true\n"
  },
  {
    "path": "src/content/lodash/number/inRange/notes.md",
    "content": "Checks if <code>n</code> is between <code>start</code> and up to, but not including, <code>end</code>. If <code>end</code> is not specified, it's set to <code>start</code> with <code>start</code> then set to <code>0</code>. If <code>start</code> is greater than <code>end</code> the params are swapped to support negative ranges.\n\nResources: [Default parameters](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Functions/Default_parameters)\n"
  },
  {
    "path": "src/content/lodash/number/inRange/spec.js",
    "content": "const expected = {\n  example1: true,\n  example2: true,\n  example3: false,\n  example4: false,\n  example5: true,\n  example6: false,\n  example7: true,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('inRange', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/number/inRange/vanilla.js",
    "content": "const inRange = (num, rangeStart, rangeEnd = 0) =>\n  (rangeStart < num && num < rangeEnd) || (rangeEnd < num && num < rangeStart)\n\nexports.example1 = inRange(3, 2, 4)\n// => true\n\nexports.example2 = inRange(4, 8)\n// => true\n\nexports.example3 = inRange(4, 2)\n// => false\n\nexports.example4 = inRange(2, 2)\n// => false\n\nexports.example5 = inRange(1.2, 2)\n// => true\n\nexports.example6 = inRange(5.2, 4)\n// => false\n\nexports.example7 = inRange(-3, -2, -6)\n// => true\n"
  },
  {
    "path": "src/content/lodash/number/random/lodash.js",
    "content": "// https://lodash.com/docs/#random\nimport { random } from 'lodash'\n\nexports.integer05 = random(0, 5)\n// => an integer between 0 and 5\n\nexports.integer5 = random(5)\n// => also an integer between 0 and 5\n\nexports.floating5 = random(5, true)\n// => a floating-point number between 0 and 5\n\nexports.floating = random(1.2, 5.2)\n// => a floating-point number between 1.2 and 5.2\n\nexports.integer = random()\n// => 0 or 1\n\nexports.negative = random(-1)\n// => -1 or 0\n"
  },
  {
    "path": "src/content/lodash/number/random/notes.md",
    "content": "Produces a random number between the inclusive <code>lower</code> and <code>upper</code> bounds. If only one argument is provided a number between <code>0</code> and the given number is returned. If <code>floating</code> is <code>true</code>, or either <code>lower</code> or <code>upper</code> are floats, a floating-point number is returned instead of an integer.<br><br><strong>Note:</strong> JavaScript follows the IEEE-754 standard for resolving floating-point values which can produce unexpected results.\n\nResources: [Number.isInteger](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger) [isNaN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/isNaN)\n"
  },
  {
    "path": "src/content/lodash/number/random/spec.js",
    "content": "const lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('random(0, 5)', () => {\n  expect(lodash.integer05).toBeGreaterThanOrEqual(0)\n  expect(plain.integer05).toBeGreaterThanOrEqual(0)\n  expect(lodash.integer05).toBeLessThanOrEqual(5)\n  expect(plain.integer05).toBeLessThanOrEqual(5)\n  expect([0, 1, 2, 3, 4, 5]).toContain(lodash.integer05)\n  expect([0, 1, 2, 3, 4, 5]).toContain(plain.integer05)\n})\n\ntest('random(5)', () => {\n  expect(lodash.integer5).toBeGreaterThanOrEqual(0)\n  expect(plain.integer5).toBeGreaterThanOrEqual(0)\n  expect(lodash.integer5).toBeLessThanOrEqual(5)\n  expect(plain.integer5).toBeLessThanOrEqual(5)\n  expect([0, 1, 2, 3, 4, 5]).toContain(lodash.integer5)\n  expect([0, 1, 2, 3, 4, 5]).toContain(plain.integer5)\n})\n\ntest('random(5, true)', () => {\n  expect(lodash.floating5).toBeGreaterThanOrEqual(0)\n  expect(plain.floating5).toBeGreaterThanOrEqual(0)\n  expect(lodash.floating5).toBeLessThanOrEqual(5)\n  expect(plain.floating5).toBeLessThanOrEqual(5)\n  expect([0, 1, 2, 3, 4, 5]).not.toContain(lodash.floating5)\n  expect([0, 1, 2, 3, 4, 5]).not.toContain(plain.floating5)\n})\n\ntest('random(1.2, 5.2)', () => {\n  expect(lodash.floating).toBeGreaterThanOrEqual(1.2)\n  expect(plain.floating).toBeGreaterThanOrEqual(1.2)\n  expect(lodash.floating).toBeLessThanOrEqual(5.2)\n  expect(plain.floating).toBeLessThanOrEqual(5.2)\n  expect([0, 1, 2, 3, 4, 5]).not.toContain(lodash.floating)\n  expect([0, 1, 2, 3, 4, 5]).not.toContain(plain.floating)\n})\n\ntest('random()', () => {\n  expect([0, 1]).toContain(lodash.integer)\n  expect([0, 1]).toContain(plain.integer)\n})\n\ntest('random(-1)', () => {\n  expect(lodash.negative).toBeLessThanOrEqual(0)\n  expect(plain.negative).toBeLessThanOrEqual(0)\n  expect([0, -1]).toContain(lodash.negative)\n  expect([0, -1]).toContain(plain.negative)\n})\n"
  },
  {
    "path": "src/content/lodash/number/random/vanilla.js",
    "content": "const random = (lower = 0, upper, floating) => {\n  if (typeof upper === 'boolean') {\n    floating = upper\n  }\n\n  if (isNaN(upper)) {\n    upper = lower < 0 ? 0 : 1\n  }\n\n  if (typeof floating === 'undefined') {\n    floating = !Number.isInteger(lower) || !Number.isInteger(upper)\n  }\n\n  const randomNumber = Math.random() * (upper - lower) + lower\n  return floating ? randomNumber : Math.round(randomNumber)\n}\n\nexports.integer05 = random(0, 5)\n// => an integer between 0 and 5\n\nexports.integer5 = random(5)\n// => also an integer between 0 and 5\n\nexports.floating5 = random(5, true)\n// => a floating-point number between 0 and 5\n\nexports.floating = random(1.2, 5.2)\n// => a floating-point number between 1.2 and 5.2\n\nexports.integer = random()\n// => 0 or 1\n\nexports.negative = random(-1)\n// => -1 or 0\n"
  },
  {
    "path": "src/content/lodash/object/assign/lodash.js",
    "content": "// https://lodash.com/docs/#assign\nimport { assign } from 'lodash'\n\nfunction Foo() {\n  this.a = 1\n}\n\nfunction Bar() {\n  this.c = 3\n}\n\nFoo.prototype.b = 2\nBar.prototype.d = 4\n\nmodule.exports = assign({ a: 0 }, new Foo(), new Bar())\n// => { 'a': 1, 'c': 3 }\n"
  },
  {
    "path": "src/content/lodash/object/assign/notes.md",
    "content": "Assigns own enumerable string keyed properties of source objects to the destination object. Source objects are applied from left to right. Subsequent sources overwrite property assignments of previous sources.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax)\n"
  },
  {
    "path": "src/content/lodash/object/assign/spec.js",
    "content": "const expected = { a: 1, c: 3 }\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('assign', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/object/assign/vanilla.js",
    "content": "function Foo() {\n  this.a = 1\n}\n\nfunction Bar() {\n  this.c = 3\n}\n\nFoo.prototype.b = 2\nBar.prototype.d = 4\n\nmodule.exports = { a: 0, ...new Foo(), ...new Bar() }\n// => { 'a': 1, 'c': 3 }\n"
  },
  {
    "path": "src/content/lodash/object/create/lodash.js",
    "content": "// https://lodash.com/docs/#create\nimport { create } from 'lodash'\n\nfunction Shape() {\n  this.x = 0\n  this.y = 0\n}\n\nfunction Circle() {\n  Shape.call(this)\n}\n\nCircle.prototype = create(Shape.prototype, {\n  constructor: Circle,\n})\n\nconst circle = new Circle()\nexports.circle = circle instanceof Circle\n// => true\n\nexports.shape = circle instanceof Shape\n// => true\n"
  },
  {
    "path": "src/content/lodash/object/create/notes.md",
    "content": "Creates an object that inherits from the <code>prototype</code> object. If a <code>properties</code> object is given, its own enumerable string keyed properties are assigned to the created object.\n\nResources: [Object.assign](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) [Object.create](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/create) [instanceof](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/instanceof)\n"
  },
  {
    "path": "src/content/lodash/object/create/spec.js",
    "content": "const expected = {\n  circle: true,\n  shape: true,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('create', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/object/create/vanilla.js",
    "content": "function Shape() {\n  this.x = 0\n  this.y = 0\n}\n\nfunction Circle() {\n  Shape.call(this)\n}\n\nCircle.prototype = Object.assign(Object.create(Shape.prototype), {\n  constructor: Circle,\n})\n\nconst circle = new Circle()\nexports.circle = circle instanceof Circle\n// => true\n\nexports.shape = circle instanceof Shape\n// => true\n"
  },
  {
    "path": "src/content/lodash/object/defaults/lodash.js",
    "content": "// https://lodash.com/docs/#defaults\nimport { defaults } from 'lodash'\n\nmodule.exports = defaults({ a: 1 }, { b: 2 }, { a: 3 })\n// // => { 'a': 1, 'b': 2 }\n"
  },
  {
    "path": "src/content/lodash/object/defaults/notes.md",
    "content": "Assigns own and inherited enumerable string keyed properties of source objects to the destination object for all destination properties that resolve to <code>undefined</code>. Source objects are applied from left to right. Once a property is set, additional values of the same property are ignored.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Array#reverse](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse) [Array#reduce](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce)\n"
  },
  {
    "path": "src/content/lodash/object/defaults/spec.js",
    "content": "const expected = { a: 1, b: 2 }\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('defaults', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/object/defaults/vanilla.js",
    "content": "const defaults = (...args) =>\n  args.reverse().reduce((acc, obj) => ({ ...acc, ...obj }), {})\n\nmodule.exports = defaults({ a: 1 }, { b: 2 }, { a: 3 })\n// // => { 'a': 1, 'b': 2 }\n"
  },
  {
    "path": "src/content/lodash/object/get/lodash.js",
    "content": "// https://lodash.com/docs/#get\nimport { get } from 'lodash'\n\nconst simpleObject = { a: { b: 2 } }\nconst complexObject = { a: [{ bar: { c: 3 } }] }\nconst falsyObject = { a: null, b: undefined, c: 0 }\n\nexports.simplePath = get(simpleObject, 'a.b')\n// => 2\nexports.complexPath = get(complexObject, 'a[0].bar.c')\n// => 3\nexports.complexPathArray = get(complexObject, ['a', '0', 'bar', 'c'])\n// => 2\nexports.simpleDefault = get(simpleObject, 'a.bar.c', 'default')\n// => 'default'\nexports.complexDefault = get(complexObject, 'a.bar.c', 'default')\n// =>  'default'\nexports.falseCase = get(complexObject, null)\n// =>  undefined\nexports.nullCase = get(falsyObject, 'a', 'default')\n// =>  null\nexports.undefinedCase = get(falsyObject, 'b', 'default')\n// =>  undefined\nexports.zeroCase = get(falsyObject, 'c', 'default')\n// =>  zero\n"
  },
  {
    "path": "src/content/lodash/object/get/notes.md",
    "content": "Gets the value at <code>path</code> of <code>object</code>. If the resolved value is <code>undefined</code>, the <code>defaultValue</code> is returned in its place.\n\nResources: [Array.isArray](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray) [Array#reduce](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce) [Array#filter](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) [xkcd](https://xkcd.com/1171/)\n"
  },
  {
    "path": "src/content/lodash/object/get/spec.js",
    "content": "const expected = {\n  simplePath: 2,\n  complexPath: 3,\n  complexPathArray: 3,\n  simpleDefault: 'default',\n  complexDefault: 'default',\n  falseCase: undefined,\n  nullCase: null,\n  zeroCase: 0,\n  undefinedCase: 'default',\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('get', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/object/get/vanilla.js",
    "content": "const get = (obj, path, defValue) => {\n  // If path is not defined or it has false value\n  if (!path) return undefined\n  // Check if path is string or array. Regex : ensure that we do not have '.' and brackets.\n  // Regex explained: https://regexr.com/58j0k\n  const pathArray = Array.isArray(path) ? path : path.match(/([^[.\\]])+/g)\n  // Find value\n  const result = pathArray.reduce(\n    (prevObj, key) => prevObj && prevObj[key],\n    obj\n  )\n  // If found value is undefined return default value; otherwise return the value\n  return result === undefined ? defValue : result\n}\n\nconst simpleObject = { a: { b: 2 } }\nconst complexObject = { a: [{ bar: { c: 3 } }] }\nconst falsyObject = { a: null, b: undefined, c: 0 }\n\nexports.simplePath = get(simpleObject, 'a.b')\n// => 2\nexports.complexPath = get(complexObject, 'a[0].bar.c')\n// => 3\nexports.complexPathArray = get(complexObject, ['a', '0', 'bar', 'c'])\n// => 2\nexports.simpleDefault = get(simpleObject, 'a.bar.c', 'default')\n// => 'default'\nexports.complexDefault = get(complexObject, 'a.bar.c', 'default')\n// =>  'default\nexports.falseCase = get(complexObject, null)\n// =>  undefined\nexports.nullCase = get(falsyObject, 'a', 'default')\n// =>  null\nexports.undefinedCase = get(falsyObject, 'b', 'default')\n// =>  undefined\nexports.zeroCase = get(falsyObject, 'c', 'default')\n// =>  zero\n"
  },
  {
    "path": "src/content/lodash/object/has/lodash.js",
    "content": "// https://lodash.com/docs/#has\nimport { has } from 'lodash'\n\nconst object = { a: { bar: 2 } }\n\nexports.simple = has(object, 'a')\n// => true\n\nexports.nested = has(object, 'a.bar')\n// => true\n\nexports.array = has(object, ['a', 'bar'])\n// => true\n\nexports.missing = has(object, ['a', 'c'])\n// => false\n"
  },
  {
    "path": "src/content/lodash/object/has/notes.md",
    "content": "Checks if <code>path</code> is a direct property of <code>object</code>.\n\nResources: [Array.isArray](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray) [Array#reduce](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce) [xkcd](https://xkcd.com/1171/)\n"
  },
  {
    "path": "src/content/lodash/object/has/spec.js",
    "content": "const expected = {\n  simple: true,\n  nested: true,\n  array: true,\n  missing: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('has', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/object/has/vanilla.js",
    "content": "const has = (obj, path) => {\n  // Regex explained: https://regexr.com/58j0k\n  const pathArray = Array.isArray(path) ? path : path.match(/([^[.\\]])+/g)\n\n  return !!pathArray.reduce((prevObj, key) => prevObj && prevObj[key], obj)\n}\n\nconst object = { a: { bar: 2 } }\n\nexports.simple = has(object, 'a')\n// => true\n\nexports.nested = has(object, 'a.bar')\n// => true\n\nexports.array = has(object, ['a', 'bar'])\n// => true\n\nexports.missing = has(object, ['a', 'c'])\n// => false\n"
  },
  {
    "path": "src/content/lodash/object/invert/lodash.js",
    "content": "// https://lodash.com/docs/#invert\nimport { invert } from 'lodash'\n\nconst object = { a: 1, b: 2, c: 1 }\n\nmodule.exports = invert(object)\n// => { '1': 'c', '2': 'b' }\n"
  },
  {
    "path": "src/content/lodash/object/invert/notes.md",
    "content": "Creates an object composed of the inverted keys and values of <code>object</code>. If <code>object</code> contains duplicate values, subsequent values overwrite property assignments of previous values.\n\nResources: [Object.entries](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/entries) [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Array#reduce](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce)\n"
  },
  {
    "path": "src/content/lodash/object/invert/spec.js",
    "content": "const expected = { '1': 'c', '2': 'b' }\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('invert', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/object/invert/vanilla.js",
    "content": "const object = { a: 1, b: 2, c: 1 }\n\nmodule.exports = Object.entries(object).reduce(\n  (acc, [key, value]) => ({\n    ...acc,\n    [value]: key,\n  }),\n  {}\n)\n\n// => { '1': 'c', '2': 'b' }\n"
  },
  {
    "path": "src/content/lodash/object/keys/lodash.js",
    "content": "// https://lodash.com/docs/#keys\nimport { keys } from 'lodash'\n\nfunction Foo() {\n  this.a = 1\n  this.b = 2\n}\n\nFoo.prototype.c = 3\n\nexports.instance = keys(new Foo())\n// => ['a', 'b'] (iteration order is not guaranteed)\n\nexports.string = keys('hi')\n// => ['0', '1']\n"
  },
  {
    "path": "src/content/lodash/object/keys/notes.md",
    "content": "Creates an array of the own enumerable property names of <code>object</code>.\n\nResources: [Object.keys](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/keys)\n"
  },
  {
    "path": "src/content/lodash/object/keys/spec.js",
    "content": "const expected = {\n  instance: ['a', 'b'],\n  string: ['0', '1'],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('instance', () => {\n  // sorting as the iteration order is not guaranteed\n  expect(lodash.instance.sort()).toEqual(expected.instance)\n  expect(plain.instance.sort()).toEqual(lodash.instance)\n})\n\ntest('string', () => {\n  expect(lodash.string).toEqual(expected.string)\n  expect(plain.string).toEqual(lodash.string)\n})\n"
  },
  {
    "path": "src/content/lodash/object/keys/vanilla.js",
    "content": "function Foo() {\n  this.a = 1\n  this.b = 2\n}\n\nFoo.prototype.c = 3\n\nexports.instance = Object.keys(new Foo())\n// => ['a', 'b'] (iteration order is not guaranteed)\n\nexports.string = Object.keys('hi')\n// => ['0', '1']\n"
  },
  {
    "path": "src/content/lodash/object/mapKeys/lodash.js",
    "content": "// https://lodash.com/docs/#mapKeys\nimport { mapKeys } from 'lodash'\n\nmodule.exports = mapKeys({ a: 1, b: 2 }, (value, key) => key + value)\n// => { 'a1': 1, 'b2': 2 }\n"
  },
  {
    "path": "src/content/lodash/object/mapKeys/notes.md",
    "content": "The opposite of <a href=\"#mapValues\"><code>\\_.mapValues</code></a>; this method creates an object with the same values as <code>object</code> and keys generated by running each own enumerable string keyed property of <code>object</code> thru <code>iteratee</code>. The iteratee is invoked with three arguments: <em>(value, key, object)</em>.\n\nResources: [Object.entries](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/entries) [Array#reduce](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce) [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Computed property names](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Object_initializer#Computed_property_names)\n"
  },
  {
    "path": "src/content/lodash/object/mapKeys/spec.js",
    "content": "const expected = { a1: 1, b2: 2 }\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('mapKeys', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/object/mapKeys/vanilla.js",
    "content": "const mapKeys = (obj, mapper) =>\n  Object.entries(obj).reduce(\n    (acc, [key, value]) => ({\n      ...acc,\n      [mapper(value, key)]: value,\n    }),\n    {}\n  )\n\nmodule.exports = mapKeys({ a: 1, b: 2 }, (value, key) => key + value)\n// => { 'a1': 1, 'b2': 2 }\n"
  },
  {
    "path": "src/content/lodash/object/omit/lodash.js",
    "content": "// https://lodash.com/docs/#omit\nimport { omit } from 'lodash'\n\nconst object = { a: 1, b: '2', c: 3 }\n\nmodule.exports = omit(object, ['a', 'c'])\n// => { 'b': '2' }\n"
  },
  {
    "path": "src/content/lodash/object/omit/notes.md",
    "content": "The opposite of <a href=\"#pick\"><code>\\_.pick</code></a>; this method creates an object composed of the own and inherited enumerable property paths of <code>object</code> that are not omitted.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Array#forEach](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach) [Delete operator](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/delete)\n"
  },
  {
    "path": "src/content/lodash/object/omit/spec.js",
    "content": "const expected = { b: '2' }\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('omit', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/object/omit/vanilla.js",
    "content": "const omit = (obj, props) => {\n  obj = { ...obj }\n  props.forEach(prop => delete obj[prop])\n  return obj\n}\nconst object = { a: 1, b: '2', c: 3 }\n\nmodule.exports = omit(object, ['a', 'c'])\n// => { 'b': '2' }\n"
  },
  {
    "path": "src/content/lodash/object/omitBy/lodash.js",
    "content": "// https://lodash.com/docs/#omitBy\nimport { omitBy, isNumber } from 'lodash'\n\nconst object = { a: 1, b: '2', c: 3 }\n\nmodule.exports = omitBy(object, isNumber)\n// => { 'b': '2' }\n"
  },
  {
    "path": "src/content/lodash/object/omitBy/notes.md",
    "content": "The opposite of <a href=\"#pickBy\"><code>\\_.pickBy</code></a>; this method creates an object composed of the own and inherited enumerable string keyed properties of <code>object</code> that <code>predicate</code> doesn't return truthy for. The predicate is invoked with two arguments: <em>(value, key)</em>.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Object.entries](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/entries) [Array#forEach](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach) [Delete operator](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/delete)\n"
  },
  {
    "path": "src/content/lodash/object/omitBy/spec.js",
    "content": "const expected = { b: '2' }\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('omitBy', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/object/omitBy/vanilla.js",
    "content": "const isNumber = a => typeof a === 'number'\n\nconst omitBy = (obj, check) => {\n  obj = { ...obj }\n  Object.entries(obj).forEach(([key, value]) => check(value) && delete obj[key])\n  return obj\n}\n\nconst object = { a: 1, b: '2', c: 3 }\n\nmodule.exports = omitBy(object, isNumber)\n// => { 'b': '2' }\n"
  },
  {
    "path": "src/content/lodash/object/pick/lodash.js",
    "content": "// https://lodash.com/docs/#pick\nimport { pick } from 'lodash'\n\nconst object = {\n  a: 1,\n  b: 2,\n  c: 3,\n}\n\nmodule.exports = pick(object, ['a', 'c'])\n// => {a: 1, c: 3}\n"
  },
  {
    "path": "src/content/lodash/object/pick/notes.md",
    "content": "Creates an object composed of the picked <code>object</code> properties.\n\nResources: [Object destructuring](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#Object_destructuring)\n"
  },
  {
    "path": "src/content/lodash/object/pick/spec.js",
    "content": "const expected = {\n  a: 1,\n  c: 3,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('pick', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/object/pick/vanilla.js",
    "content": "const object = {\n  a: 1,\n  b: 2,\n  c: 3,\n}\n\nconst { a, c } = object\n\nmodule.exports = { a, c }\n// => {a: 1, c: 3}\n"
  },
  {
    "path": "src/content/lodash/object/set/lodash.js",
    "content": "// https://lodash.com/docs/#set\nimport { set } from 'lodash'\n\nconst object = { a: [{ bar: { c: 3 } }] }\n\nset(object, 'a[0].bar.c', 4)\nexports.string = object.a[0].bar.c\n// => 4\n\nset(object, ['x', '0', 'y', 'z'], 5)\nexports.array = object.x[0].y.z\n// => 5\n"
  },
  {
    "path": "src/content/lodash/object/set/notes.md",
    "content": "Sets the value at <code>path</code> of <code>object</code>. If a portion of <code>path</code> doesn&apos;t exist, it&apos;s created. Arrays are created for missing index properties while objects are created for all other missing properties. Use <a href=\"#setWith\"><code>\\_.setWith</code></a> to customize <code>path</code> creation.<br><br><strong>Note:</strong> This method mutates <code>object</code>.\n\nResources: [Array.isArray](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray) [Array#reduce](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce) [xkcd](https://xkcd.com/1171/)\n"
  },
  {
    "path": "src/content/lodash/object/set/spec.js",
    "content": "const expected = {\n  string: 4,\n  array: 5,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('set', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/object/set/vanilla.js",
    "content": "const set = (obj, path, value) => {\n  // Regex explained: https://regexr.com/58j0k\n  const pathArray = Array.isArray(path) ? path : path.match(/([^[.\\]])+/g)\n\n  pathArray.reduce((acc, key, i) => {\n    if (acc[key] === undefined) acc[key] = {}\n    if (i === pathArray.length - 1) acc[key] = value\n    return acc[key]\n  }, obj)\n}\n\nconst object = { a: [{ bar: { c: 3 } }] }\n\nset(object, 'a[0].bar.c', 4)\nexports.string = object.a[0].bar.c\n// => 4\n\nset(object, ['x', '0', 'y', 'z'], 5)\nexports.array = object.x[0].y.z\n// => 5\n"
  },
  {
    "path": "src/content/lodash/object/unset/lodash.js",
    "content": "// https://lodash.com/docs/#unset\nimport { unset } from 'lodash'\n\nconst object = { a: [{ bar: { c: 7, d: 6 } }] }\n\nunset(object, 'a[0].bar.c')\nmodule.exports = object\n// => { 'a': [{ 'bar': { 'd': 6 } }] };\n"
  },
  {
    "path": "src/content/lodash/object/unset/notes.md",
    "content": "Removes the property at <code>path</code> of <code>object</code>.<br><br><strong>Note:</strong> This method mutates <code>object</code>.\n\nResources: [Array.isArray](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray) [Array#reduce](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce) [Delete operator](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/delete) [xkcd](https://xkcd.com/1171/)\n"
  },
  {
    "path": "src/content/lodash/object/unset/spec.js",
    "content": "const expected = { a: [{ bar: { d: 6 } }] }\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('unset', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/object/unset/vanilla.js",
    "content": "const unset = (obj, path) => {\n  // Regex explained: https://regexr.com/58j0k\n  const pathArray = Array.isArray(path) ? path : path.match(/([^[.\\]])+/g)\n\n  pathArray.reduce((acc, key, i) => {\n    if (i === pathArray.length - 1) delete acc[key]\n    return acc[key]\n  }, obj)\n}\nconst object = { a: [{ bar: { c: 7, d: 6 } }] }\n\nunset(object, 'a[0].bar.c')\nmodule.exports = object\n// => { 'a': [{ 'bar': { 'd': 6 } }] };\n"
  },
  {
    "path": "src/content/lodash/object/values/lodash.js",
    "content": "// https://lodash.com/docs/#values\nimport { values } from 'lodash'\n\nconst object = {\n  0: {\n    a: 1,\n    b: 2,\n    c: 3,\n  },\n  1: {\n    d: 4,\n    e: 5,\n    f: 6,\n  },\n}\n\nmodule.exports = values(object)\n// => [{a: 1, b: 2, c: 3}, {d: 4, e: 5, f: 6}]\n"
  },
  {
    "path": "src/content/lodash/object/values/notes.md",
    "content": "Creates an array of the own enumerable string keyed property values of <code>object</code>.\n\nResources: [Object.values](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/values)\n"
  },
  {
    "path": "src/content/lodash/object/values/spec.js",
    "content": "const expected = [\n  {\n    a: 1,\n    b: 2,\n    c: 3,\n  },\n  {\n    d: 4,\n    e: 5,\n    f: 6,\n  },\n]\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('values', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/object/values/vanilla.js",
    "content": "const object = {\n  0: {\n    a: 1,\n    b: 2,\n    c: 3,\n  },\n  1: {\n    d: 4,\n    e: 5,\n    f: 6,\n  },\n}\n\nmodule.exports = Object.values(object)\n// => [{a: 1, b: 2, c: 3}, {d: 4, e: 5, f: 6}]\n"
  },
  {
    "path": "src/content/lodash/string/capitalize/lodash.js",
    "content": "// https://lodash.com/docs/#capitalize\nimport { capitalize } from 'lodash'\n\nmodule.exports = capitalize('FRED')\n// => 'Fred'\n"
  },
  {
    "path": "src/content/lodash/string/capitalize/notes.md",
    "content": "Converts the first character of <code>string</code> to upper case and the remaining to lower case.\n\nResources: [String#charAt](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/charAt) [String#slice](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/slice)\n"
  },
  {
    "path": "src/content/lodash/string/capitalize/spec.js",
    "content": "const expected = 'Fred'\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('capitalize', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/string/capitalize/vanilla.js",
    "content": "const capitalize = str =>\n  `${str.charAt(0).toUpperCase()}${str.slice(1).toLowerCase()}`\n\nmodule.exports = capitalize('FRED')\n// => 'Fred'\n"
  },
  {
    "path": "src/content/lodash/string/deburr/lodash.js",
    "content": "// https://lodash.com/docs/#deburr\nimport { deburr } from 'lodash'\n\nexports.simple = deburr('déjà vu')\n// 'deja vu'\n\n// prettier-ignore\nconst specialChars =['ä','æ','ö','œ','ü','Ä','Æ','Ü','Ö','Œ','À','Á','Â','Ã','Ä','Å','Ā','Ă','Ą','à','á','â','ã','å','ā','ă','ą','Ç','Ć','Ĉ','Ċ','Č','ç','ć','ĉ','ċ','č','Ð','Ď','Đ','ð','ď','đ','È','É','Ê','Ë','Ē','Ĕ','Ė','Ę','Ě','è','é','ê','ë','ē','ĕ','ė','ę','ě','Ĝ','Ğ','Ġ','Ģ','ĝ','ğ','ġ','ģ','Ĥ','Ħ','ĥ','ħ','Ì','Í','Î','Ï','Ĩ','Ī','Ĭ','Į','İ','ì','í','î','ï','ĩ','ī','ĭ','į','ı','Ĵ','ĵ','Ķ','ķ','ĸ','Ĺ','Ļ','Ľ','Ŀ','Ł','L','ĺ','ļ','ľ','ŀ','ł','Ñ','Ń','Ņ','Ň','Ŋ','ñ','ń','ņ','ň','ŋ','Ò','Ó','Ô','Õ','Ō','Ŏ','Ő','Ø','ò','ó','ô','õ','ō','ő','ø','Ŕ','Ŗ','Ř','ŕ','ŗ','ř','Ś','Ŝ','Ş','Š','ś','ŝ','ş','š','ſ','Ţ','Ť','Ŧ','ţ','ť','ŧ','Ù','Ú','Û','Ũ','Ū','Ŭ','Ů','Ű','Ų','ù','ú','û','ũ','ū','ŭ','ů','ű','ų','Ý','Ÿ','Ŷ','ý','ÿ','ŷ','Ŵ','ŵ','Ź','Ż','Ž','ź','ż','ž','Þ','þ','Æ','ß','Ĳ','ĳ']\nexports.complex = specialChars.map(deburr)\n// ['a','ae','o','oe','u','A','Ae','U','O','Oe','A','A','A','A','A','A','A','A','A','a','a','a','a','a','a','a','a','C','C','C','C','C','c','c','c','c','c','D','D','D','d','d','d','E','E','E','E','E','E','E','E','E','e','e','e','e','e','e','e','e','e','G','G','G','G','g','g','g','g','H','H','h','h','I','I','I','I','I','I','I','I','I','i','i','i','i','i','i','i','i','i','J','j','K','k','k','L','L','L','L','L','L','l','l','l','l','l','N','N','N','N','N','n','n','n','n','n','O','O','O','O','O','O','O','O','o','o','o','o','o','o','o','R','R','R','r','r','r','S','S','S','S','s','s','s','s','s','T','T','T','t','t','t','U','U','U','U','U','U','U','U','U','u','u','u','u','u','u','u','u','u','Y','Y','Y','y','y','y','W','w','Z','Z','Z','z','z','z','Th','th','Ae','ss','IJ','ij']\n"
  },
  {
    "path": "src/content/lodash/string/deburr/notes.md",
    "content": "Deburrs <code>string</code> by converting <a href=\"https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table\">Latin-1 Supplement</a> and <a href=\"https://en.wikipedia.org/wiki/Latin_Extended-A\">Latin Extended-A</a> letters to basic Latin letters and removing <a href=\"https://en.wikipedia.org/wiki/Combining_Diacritical_Marks\">combining diacritical marks</a>.\n\nResources: [Source](https://stackoverflow.com/a/51874461) [Extended Version Source](https://stackoverflow.com/a/17694737) [String#normalize](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/normalize) [Unicode property escapes](https://developer.mozilla.org/docs/Web/JavaScript/Guide/Regular_Expressions/Unicode_Property_Escapes) [Object.entries](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/entries) [Array#reduce](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce)\n"
  },
  {
    "path": "src/content/lodash/string/deburr/spec.js",
    "content": "const expected = {\n  simple: 'deja vu',\n  //prettier-ignore\n  complex: ['a','ae','o','oe','u','A','Ae','U','O','Oe','A','A','A','A','A','A','A','A','A','a','a','a','a','a','a','a','a','C','C','C','C','C','c','c','c','c','c','D','D','D','d','d','d','E','E','E','E','E','E','E','E','E','e','e','e','e','e','e','e','e','e','G','G','G','G','g','g','g','g','H','H','h','h','I','I','I','I','I','I','I','I','I','i','i','i','i','i','i','i','i','i','J','j','K','k','k','L','L','L','L','L','L','l','l','l','l','l','N','N','N','N','N','n','n','n','n','n','O','O','O','O','O','O','O','O','o','o','o','o','o','o','o','R','R','R','r','r','r','S','S','S','S','s','s','s','s','s','T','T','T','t','t','t','U','U','U','U','U','U','U','U','U','u','u','u','u','u','u','u','u','u','Y','Y','Y','y','y','y','W','w','Z','Z','Z','z','z','z','Th','th','Ae','ss','IJ','ij'],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('deburr', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/string/deburr/vanilla.js",
    "content": "const deburr = str => str.normalize('NFD').replace(/\\p{Diacritic}/gu, '')\n\nexports.simple = deburr('déjà vu')\n// 'deja vu'\n\n// String#normalize only supports a subset of the _.deburr conversions.\n// For more information have a look at the documentation on MDN:\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/normalize\n//\n// You might be fine with the out of the box support but this implementation\n// also covers adding a range of extra characters.\n//\n// DISCLAIMER: the list presented might not be comprehensive!\n\nconst charMap = {\n  'oe': 'œ',\n  'ae': 'æ',\n  'Ae': 'Æ',\n  'Oe': 'Œ',\n  'D': 'Ð|D|Đ',\n  'd': 'ð|d|đ',\n  'H': 'Ħ',\n  'h': 'ħ',\n  'I': 'İ',\n  'i': 'ı',\n  'k': 'ĸ',\n  'L': 'Ŀ|Ł',\n  'l': 'ŀ|ł',\n  'N': 'Ŋ',\n  'n': 'ŋ',\n  'O': 'Ø',\n  'o': 'ø',\n  's': 'ſ',\n  'T': 'Ŧ',\n  't': 'ŧ',\n  'Th': 'Þ',\n  'th': 'þ',\n  'ss': 'ß',\n  'IJ': 'Ĳ',\n  'ij': 'ĳ',\n}\n\nconst removeExtraChars = str =>\n  Object.entries(charMap).reduce((str, [normalised, specialChar]) => {\n    var re = new RegExp(specialChar, 'g')\n    return str.replace(re, normalised)\n  }, str)\n\nconst extendedDeburr = str => removeExtraChars(deburr(str))\n\n// prettier-ignore\nconst specialChars =['ä','æ','ö','œ','ü','Ä','Æ','Ü','Ö','Œ','À','Á','Â','Ã','Ä','Å','Ā','Ă','Ą','à','á','â','ã','å','ā','ă','ą','Ç','Ć','Ĉ','Ċ','Č','ç','ć','ĉ','ċ','č','Ð','Ď','Đ','ð','ď','đ','È','É','Ê','Ë','Ē','Ĕ','Ė','Ę','Ě','è','é','ê','ë','ē','ĕ','ė','ę','ě','Ĝ','Ğ','Ġ','Ģ','ĝ','ğ','ġ','ģ','Ĥ','Ħ','ĥ','ħ','Ì','Í','Î','Ï','Ĩ','Ī','Ĭ','Į','İ','ì','í','î','ï','ĩ','ī','ĭ','į','ı','Ĵ','ĵ','Ķ','ķ','ĸ','Ĺ','Ļ','Ľ','Ŀ','Ł','L','ĺ','ļ','ľ','ŀ','ł','Ñ','Ń','Ņ','Ň','Ŋ','ñ','ń','ņ','ň','ŋ','Ò','Ó','Ô','Õ','Ō','Ŏ','Ő','Ø','ò','ó','ô','õ','ō','ő','ø','Ŕ','Ŗ','Ř','ŕ','ŗ','ř','Ś','Ŝ','Ş','Š','ś','ŝ','ş','š','ſ','Ţ','Ť','Ŧ','ţ','ť','ŧ','Ù','Ú','Û','Ũ','Ū','Ŭ','Ů','Ű','Ų','ù','ú','û','ũ','ū','ŭ','ů','ű','ų','Ý','Ÿ','Ŷ','ý','ÿ','ŷ','Ŵ','ŵ','Ź','Ż','Ž','ź','ż','ž','Þ','þ','Æ','ß','Ĳ','ĳ']\nexports.complex = specialChars.map(extendedDeburr)\n// ['a','ae','o','oe','u','A','Ae','U','O','Oe','A','A','A','A','A','A','A','A','A','a','a','a','a','a','a','a','a','C','C','C','C','C','c','c','c','c','c','D','D','D','d','d','d','E','E','E','E','E','E','E','E','E','e','e','e','e','e','e','e','e','e','G','G','G','G','g','g','g','g','H','H','h','h','I','I','I','I','I','I','I','I','I','i','i','i','i','i','i','i','i','i','J','j','K','k','k','L','L','L','L','L','L','l','l','l','l','l','N','N','N','N','N','n','n','n','n','n','O','O','O','O','O','O','O','O','o','o','o','o','o','o','o','R','R','R','r','r','r','S','S','S','S','s','s','s','s','s','T','T','T','t','t','t','U','U','U','U','U','U','U','U','U','u','u','u','u','u','u','u','u','u','Y','Y','Y','y','y','y','W','w','Z','Z','Z','z','z','z','Th','th','Ae','ss','IJ','ij']\n"
  },
  {
    "path": "src/content/lodash/string/endsWith/lodash.js",
    "content": "// https://lodash.com/docs/#endsWith\nimport { endsWith } from 'lodash'\n\nmodule.exports = endsWith('pinecone', 'cone')\n// => true\n"
  },
  {
    "path": "src/content/lodash/string/endsWith/notes.md",
    "content": "Checks if <code>string</code> ends with the given target string.\n\nResources: [endsWith](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith)\n"
  },
  {
    "path": "src/content/lodash/string/endsWith/spec.js",
    "content": "const expected = true\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('endsWith', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/string/endsWith/vanilla.js",
    "content": "module.exports = 'pinecone'.endsWith('cone')\n// => true\n"
  },
  {
    "path": "src/content/lodash/string/escape/lodash.js",
    "content": "// https://lodash.com/docs/#escape\nimport { escape } from 'lodash'\n\nmodule.exports = escape('fred, barney, & pebbles')\n// => 'fred, barney, &amp; pebbles'\n"
  },
  {
    "path": "src/content/lodash/string/escape/notes.md",
    "content": "Converts the characters \"&amp;\", \"&lt;\", \"&gt;\", '\"', and \"'\" in <code>string</code> to their corresponding HTML entities.<br><br><strong>Note:</strong> No other characters are escaped.\n\nResources: [String#replace](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/replace)\n"
  },
  {
    "path": "src/content/lodash/string/escape/spec.js",
    "content": "const expected = 'fred, barney, &amp; pebbles'\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('escape', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/string/escape/vanilla.js",
    "content": "const escape = str => {\n  const map = {\n    '&': '&amp;',\n    '<': '&lt;',\n    '>': '&gt;',\n    '\"': '&quot;',\n    \"'\": '&#39;',\n  }\n  return str.replace(/[&<>\"']/g, m => map[m])\n}\n\nmodule.exports = escape('fred, barney, & pebbles')\n// => 'fred, barney, &amp; pebbles'\n"
  },
  {
    "path": "src/content/lodash/string/kebabCase/lodash.js",
    "content": "// https://lodash.com/docs/#kebabCase\nimport { kebabCase } from 'lodash'\n\nexports.fooSpaceBar = kebabCase('Foo Bar')\n// => 'foo-bar'\n\nexports.fooBar = kebabCase('fooBar')\n// => 'foo-bar'\n\nexports.foo_bar = kebabCase('__FOO_BAR__')\n// => 'foo-bar'\n\nexports.null = kebabCase(null)\n// => ''\n\nexports.UPPERCASE = kebabCase('UPPERCASE')\n// => 'uppercase'\n\nexports.false = kebabCase(false)\n// => 'false'\n\nexports.undefined = kebabCase(undefined)\n// => ''\n\nexports.number = kebabCase(0)\n// => '0'\n\nexports.camelCase = kebabCase('camelCase')\n// => 'camel-case'\n\nexports.nonAlphaChar = kebabCase('?')\n// => ''\n\nexports.CustomXMLParser = kebabCase('Custom*XML*Parser')\n// => 'custom-xml-parser'\n\nexports.APIFinder = kebabCase('APIFinder')\n// => 'api-finder'\n\nexports.UserAPI20Endpoint = kebabCase('UserAPI20Endpoint')\n// => 'user-api-20-endpoint'\n\nexports.var30fghIJ = kebabCase('30fghIJ')\n// => '30-fgh-ij'\n"
  },
  {
    "path": "src/content/lodash/string/kebabCase/notes.md",
    "content": "Converts <code>string</code> to <a href=\"https://en.wikipedia.org/wiki/Letter_case#Special_case_styles\">kebab case</a>.\n\nResources: [Nullish coalescing operator (??)](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing) [Array#map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/map) [Array#join](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/join) [String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/String)\n"
  },
  {
    "path": "src/content/lodash/string/kebabCase/spec.js",
    "content": "const expected = {\n  fooSpaceBar: 'foo-bar',\n  fooBar: 'foo-bar',\n  foo_bar: 'foo-bar',\n  null: '',\n  UPPERCASE: 'uppercase',\n  false: 'false',\n  undefined: '',\n  number: '0',\n  camelCase: 'camel-case',\n  nonAlphaChar: '',\n  CustomXMLParser: 'custom-xml-parser',\n  APIFinder: 'api-finder',\n  UserAPI20Endpoint: 'user-api-20-endpoint',\n  var30fghIJ: '30-fgh-ij',\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('kebabCase', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/string/kebabCase/vanilla.js",
    "content": "// Regex explained: https://regexr.com/5c55v\nconst re = /([0-9]+|([A-Z][a-z]+)|[a-z]+|([A-Z]+)(?![a-z]))/g\n\nconst kebabCase = str =>\n  (String(str ?? '').match(re) || []).map(x => x.toLowerCase()).join('-')\n\nexports.fooSpaceBar = kebabCase('Foo Bar')\n// => 'foo-bar'\n\nexports.fooBar = kebabCase('fooBar')\n// => 'foo-bar'\n\nexports.foo_bar = kebabCase('__FOO_BAR__')\n// => 'foo-bar'\n\nexports.null = kebabCase(null)\n// => ''\n\nexports.UPPERCASE = kebabCase('UPPERCASE')\n// => 'uppercase'\n\nexports.false = kebabCase(false)\n// => 'false'\n\nexports.undefined = kebabCase(undefined)\n// => ''\n\nexports.number = kebabCase(0)\n// => '0'\n\nexports.camelCase = kebabCase('camelCase')\n// => 'camel-case'\n\nexports.nonAlphaChar = kebabCase('?')\n// => ''\n\nexports.CustomXMLParser = kebabCase('Custom*XML*Parser')\n// => 'custom-xml-parser'\n\nexports.APIFinder = kebabCase('APIFinder')\n// => 'api-finder'\n\nexports.UserAPI20Endpoint = kebabCase('UserAPI20Endpoint')\n// => 'user-api-20-endpoint'\n\nexports.var30fghIJ = kebabCase('30fghIJ')\n// => '30-fgh-ij'\n"
  },
  {
    "path": "src/content/lodash/string/lowerFirst/lodash.js",
    "content": "// https://lodash.com/docs/#lowerFirst\nimport { lowerFirst } from 'lodash'\n\nexports.normal = lowerFirst('Fred')\n// => 'fred'\n\nexports.allCaps = lowerFirst('FRED')\n// => 'fRED'\n"
  },
  {
    "path": "src/content/lodash/string/lowerFirst/notes.md",
    "content": "Converts the first character of <code>string</code> to lower case.\n\nResources: [String#charAt](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/charAt) [String#slice](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/slice)\n"
  },
  {
    "path": "src/content/lodash/string/lowerFirst/spec.js",
    "content": "const expected = {\n  normal: 'fred',\n  allCaps: 'fRED',\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('lowerFirst', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/string/lowerFirst/vanilla.js",
    "content": "const lowerFirst = str => `${str.charAt(0).toLowerCase()}${str.slice(1)}`\n\nexports.normal = lowerFirst('Fred')\n// => 'fred'\n\nexports.allCaps = lowerFirst('FRED')\n// => 'fRED'\n"
  },
  {
    "path": "src/content/lodash/string/pad/lodash.js",
    "content": "// https://lodash.com/docs/#pad\nimport { pad } from 'lodash'\n\nexports.defaultPadding = pad('abc', 8)\n// // => '  abc   '\n//\nexports.customPadding = pad('abc', 8, '_-')\n// // => '_-abc_-_'\n//\nexports.noExtraPadding = pad('abc', 3)\n// // => 'abc'\n"
  },
  {
    "path": "src/content/lodash/string/pad/notes.md",
    "content": "Pads <code>string</code> on the left and right sides if it's shorter than <code>length</code>. Padding characters are truncated if they can't be evenly divided by <code>length</code>.\n\nResources: [String#padStart](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/padStart) [String#padEnd](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd)\n"
  },
  {
    "path": "src/content/lodash/string/pad/spec.js",
    "content": "const expected = {\n  defaultPadding: '  abc   ',\n  customPadding: '_-abc_-_',\n  noExtraPadding: 'abc',\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('pad', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/string/pad/vanilla.js",
    "content": "const pad = (str, pad, custom) => {\n  const prePad = Math.floor((pad - str.length) / 2) + str.length\n  return str.padStart(prePad, custom).padEnd(pad, custom)\n}\n\nexports.defaultPadding = pad('abc', 8)\n// // => '  abc   '\n//\nexports.customPadding = pad('abc', 8, '_-')\n// // => '_-abc_-_'\n//\nexports.noExtraPadding = pad('abc', 3)\n// // => 'abc'\n"
  },
  {
    "path": "src/content/lodash/string/padEnd/lodash.js",
    "content": "// https://lodash.com/docs/#padEnd\nimport { padEnd } from 'lodash'\n\nexports.defaultPadding = padEnd('abc', 6)\n// => 'abc   '\n\nexports.customPadding = padEnd('abc', 6, '_-')\n// => 'abc_-_'\n\nexports.noExtraPadding = padEnd('abc', 3)\n// => 'abc'\n"
  },
  {
    "path": "src/content/lodash/string/padEnd/notes.md",
    "content": "Pads <code>string</code> on the right side if it's shorter than <code>length</code>. Padding characters are truncated if they exceed <code>length</code>.\n\nResources: [String#padEnd](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd)\n"
  },
  {
    "path": "src/content/lodash/string/padEnd/spec.js",
    "content": "const expected = {\n  defaultPadding: 'abc   ',\n  customPadding: 'abc_-_',\n  noExtraPadding: 'abc',\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('padEnd', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/string/padEnd/vanilla.js",
    "content": "exports.defaultPadding = 'abc'.padEnd(6)\n// => 'abc   '\n\nexports.customPadding = 'abc'.padEnd(6, '_-')\n// => 'abc_-_'\n\nexports.noExtraPadding = 'abc'.padEnd(3)\n// => 'abc'\n"
  },
  {
    "path": "src/content/lodash/string/padStart/lodash.js",
    "content": "// https://lodash.com/docs/#padStart\nimport { padStart } from 'lodash'\n\nexports.defaultPadding = padStart('abc', 6)\n// => '   abc'\n\nexports.customPadding = padStart('abc', 6, '_-')\n// => '_-_abc'\n\nexports.noExtraPadding = padStart('abc', 3)\n// => 'abc'\n"
  },
  {
    "path": "src/content/lodash/string/padStart/notes.md",
    "content": "Pads <code>string</code> on the left side if it's shorter than <code>length</code>. Padding characters are truncated if they exceed <code>length</code>.\n\nResources: [String#padStart](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/padStart)\n"
  },
  {
    "path": "src/content/lodash/string/padStart/spec.js",
    "content": "const expected = {\n  defaultPadding: '   abc',\n  customPadding: '_-_abc',\n  noExtraPadding: 'abc',\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('padStart', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/string/padStart/vanilla.js",
    "content": "exports.defaultPadding = 'abc'.padStart(6)\n// => '   abc'\n\nexports.customPadding = 'abc'.padStart(6, '_-')\n// => '_-_abc'\n\nexports.noExtraPadding = 'abc'.padStart(3)\n// => 'abc'\n"
  },
  {
    "path": "src/content/lodash/string/parseInt/lodash.js",
    "content": "// https://lodash.com/docs/#parseInt\nimport { parseInt } from 'lodash'\n\nexports.simple = parseInt('08')\n// => 8\n\nexports.map = ['6', '08', '10'].map(parseInt)\n// => [6, 8, 10]\n"
  },
  {
    "path": "src/content/lodash/string/parseInt/notes.md",
    "content": "Converts <code>string</code> to an integer of the specified radix.\n\nResources: [parseInt](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/parseInt)\n"
  },
  {
    "path": "src/content/lodash/string/parseInt/spec.js",
    "content": "const expected = {\n  simple: 8,\n  map: [6, 8, 10],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('parseInt', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/string/parseInt/vanilla.js",
    "content": "exports.simple = parseInt('08', 10)\n// => 8\n\nexports.map = ['6', '08', '10'].map(i => parseInt(i, 10))\n// => [6, 8, 10]\n"
  },
  {
    "path": "src/content/lodash/string/repeat/lodash.js",
    "content": "// https://lodash.com/docs/#repeat\nimport { repeat } from 'lodash'\n\nexports.char = repeat('*', 3)\n// => '***'\n\nexports.string = repeat('abc', 2)\n// => 'abcabc'\n\nexports.zero = repeat('abc', 0)\n// => ''\n"
  },
  {
    "path": "src/content/lodash/string/repeat/notes.md",
    "content": "Repeats the given string <code>n</code> times.\n\nResources: [String#repeat](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/repeat)\n"
  },
  {
    "path": "src/content/lodash/string/repeat/spec.js",
    "content": "const expected = { char: '***', string: 'abcabc', zero: '' }\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('repeat', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/string/repeat/vanilla.js",
    "content": "exports.char = '*'.repeat(3)\n// => '***'\n\nexports.string = 'abc'.repeat(2)\n// => 'abcabc'\n\nexports.zero = 'abc'.repeat(0)\n// => ''\n"
  },
  {
    "path": "src/content/lodash/string/replace/lodash.js",
    "content": "// https://lodash.com/docs/#replace\nimport { replace } from 'lodash'\n\nmodule.exports = replace('Hi Fred', 'Fred', 'Barney')\n// => 'Hi Barney'\n"
  },
  {
    "path": "src/content/lodash/string/replace/notes.md",
    "content": "Replaces matches for <code>pattern</code> in <code>string</code> with <code>replacement</code>.\n\nResources: [String#replace](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/replace)\n"
  },
  {
    "path": "src/content/lodash/string/replace/spec.js",
    "content": "const expected = 'Hi Barney'\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('replace', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/string/replace/vanilla.js",
    "content": "const replace = (str, s, r) => str.replace(s, r)\n\nmodule.exports = replace('Hi Fred', 'Fred', 'Barney')\n// => 'Hi Barney'\n"
  },
  {
    "path": "src/content/lodash/string/split/lodash.js",
    "content": "// https://lodash.com/docs/#split\nimport { split } from 'lodash'\n\nexports.all = split('a-b-c', '-')\n// => ['a', 'b', 'c']\n\nexports.justTwo = split('a-b-c', '-', 2)\n// => ['a', 'b']\n\nexports.graphemes = split('foo👨‍👨‍👧‍👦', '')\n// => ['f', 'o', 'o', '👨‍👨‍👧‍👦']\n"
  },
  {
    "path": "src/content/lodash/string/split/notes.md",
    "content": "Splits <code>string</code> by <code>separator</code>.\n\nResources: [String#split](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/split)\n[Intl.Segmenter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter)\n[Intl Segmenter Polyfill](https://www.npmjs.com/package/intl-segmenter-polyfill)\n"
  },
  {
    "path": "src/content/lodash/string/split/spec.js",
    "content": "const expected = {\n  all: ['a', 'b', 'c'],\n  justTwo: ['a', 'b'],\n  graphemes: ['f', 'o', 'o', '👨‍👨‍👧‍👦'],\n}\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('split', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/string/split/vanilla.js",
    "content": "exports.all = 'a-b-c'.split('-')\n// => ['a', 'b', 'c']\n\nexports.justTwo = 'a-b-c'.split('-').slice(0, 2)\n// => ['a', 'b']\n\n// When the split is used with the empty separator, `String#split` and `_.split`\n// will have the different behavior:\n//\n// `_.split` with empty string as a separator takes user-perceived characters\n// (grapheme clusters) and unicode characters (codepoints) into account;\n//\n// `String#split` with empty string as a separator does not take them into\n// account and will return string split by UTF-16 codeunits, which will destroy\n// the surrogate pairs.\n//\n// To avoid this issue, `Intl.Segmenter` API could be used\n//\n// Please note that it is not yet supported in Firefox\nexports.graphemes = Array.from(new Intl.Segmenter().segment('foo👨‍👨‍👧‍👦')).map(\n  ({ segment }) => segment\n)\n// => ['f', 'o', 'o', '👨‍👨‍👧‍👦']\n"
  },
  {
    "path": "src/content/lodash/string/startsWith/lodash.js",
    "content": "// https://lodash.com/docs/#startsWith\nimport { startsWith } from 'lodash'\n\nmodule.exports = startsWith('JavaScript', 'Java')\n// => true\n"
  },
  {
    "path": "src/content/lodash/string/startsWith/notes.md",
    "content": "Checks if <code>string</code> starts with the given target string.\n\nResources: [String#startsWith](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith)\n"
  },
  {
    "path": "src/content/lodash/string/startsWith/spec.js",
    "content": "const expected = true\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('startsWith', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/string/startsWith/vanilla.js",
    "content": "module.exports = 'JavaScript'.startsWith('Java')\n// => true\n"
  },
  {
    "path": "src/content/lodash/string/toLower/lodash.js",
    "content": "// https://lodash.com/docs/#toLower\nimport { toLower } from 'lodash'\n\nexports.dash = toLower('--Foo-Bar--')\n// => '--foo-bar--'\n\nexports.default = toLower('fooBar')\n// => 'foobar'\n\nexports.underscore = toLower('__FOO_BAR__')\n// => '__foo_bar__'\n"
  },
  {
    "path": "src/content/lodash/string/toLower/notes.md",
    "content": "Converts <code>string</code>, as a whole, to lower case.\n"
  },
  {
    "path": "src/content/lodash/string/toLower/spec.js",
    "content": "const expected = {\n  dash: '--foo-bar--',\n  default: 'foobar',\n  underscore: '__foo_bar__',\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('toLower', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/string/toLower/vanilla.js",
    "content": "const toLower = str => str.toLowerCase()\n\nexports.dash = toLower('--foo-bar--')\n// => '--foo-bar--'\n\nexports.default = toLower('fooBar')\n// => 'foobar'\n\nexports.underscore = toLower('__foo_bar__')\n// => '__foo_bar__'\n"
  },
  {
    "path": "src/content/lodash/string/toUpper/lodash.js",
    "content": "// https://lodash.com/docs/#toUpper\nimport { toUpper } from 'lodash'\n\nexports.example1 = toUpper('--foo-bar--')\n// => '--FOO-BAR--'\n\nexports.example2 = toUpper('fooBar')\n// => 'FOOBAR'\n\nexports.example3 = toUpper('__foo_bar__')\n// => '__FOO_BAR__'\n"
  },
  {
    "path": "src/content/lodash/string/toUpper/notes.md",
    "content": "Converts <code>string</code>, as a whole, to upper case just like <a href=\"https://mdn.io/toUpperCase\">String#toUpperCase</a>."
  },
  {
    "path": "src/content/lodash/string/toUpper/spec.js",
    "content": "const expected = {\n  example1: '--FOO-BAR--',\n  example2: 'FOOBAR',\n  example3: '__FOO_BAR__',\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('toUpper', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/string/toUpper/vanilla.js",
    "content": "const toUpper = str => str.toUpperCase()\n\nexports.example1 = toUpper('--foo-bar--')\n// => '--FOO-BAR--'\n\nexports.example2 = toUpper('fooBar')\n// => 'FOOBAR'\n\nexports.example3 = toUpper('__foo_bar__')\n// => '__FOO_BAR__'\n"
  },
  {
    "path": "src/content/lodash/string/trim/lodash.js",
    "content": "// https://lodash.com/docs/#trim\nimport { trim } from 'lodash'\n\nexports.simple = trim(' abc ')\n// => 'abc'\n\nexports.custom = trim('-_-abc-_-', '_-')\n// => 'abc'\n\nexports.map = [' foo ', ' bar '].map(trim)\n// => ['foo', 'bar']\n"
  },
  {
    "path": "src/content/lodash/string/trim/notes.md",
    "content": "Removes leading and trailing whitespace or specified characters from <code>string</code>.\n\nResources: [xkcd](https://xkcd.com/1171/)\n"
  },
  {
    "path": "src/content/lodash/string/trim/spec.js",
    "content": "const expected = {\n  simple: 'abc',\n  custom: 'abc',\n  map: ['foo', 'bar'],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('trim', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/string/trim/vanilla.js",
    "content": "// Regex explained: https://regexr.com/4v6jg\nconst trim = (str, c = '\\\\s') =>\n  str.replace(new RegExp(`^([${c}]*)(.*?)([${c}]*)$`), '$2')\n\nexports.simple = ' abc '.trim()\n// => 'abc'\n\nexports.custom = trim('-_-abc-_-', '_-')\n// => 'abc'\n\nexports.map = [' foo ', ' bar '].map(s => trim(s))\n// => ['foo', 'bar']\n"
  },
  {
    "path": "src/content/lodash/string/trimEnd/lodash.js",
    "content": "// https://lodash.com/docs/#trimEnd\nimport { trimEnd } from 'lodash'\n\nexports.simple = trimEnd(' abc ')\n// => ' abc'\n\nexports.custom = trimEnd('-_-abc-_-', '_-')\n// => '-_-abc'\n"
  },
  {
    "path": "src/content/lodash/string/trimEnd/notes.md",
    "content": "Removes trailing whitespace or specified characters from <code>string</code>.\n\nResources: [xkcd](https://xkcd.com/1171/)\n"
  },
  {
    "path": "src/content/lodash/string/trimEnd/spec.js",
    "content": "const expected = {\n  simple: ' abc',\n  custom: '-_-abc',\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('trimEnd', () => {\n  expect(lodash.simple).toEqual(expected.simple)\n  expect(plain.simple).toEqual(lodash.simple)\n  expect(plain.simpleAlt).toEqual(lodash.simple)\n})\n\ntest('trimEnd – with custom characters', () => {\n  expect(lodash.custom).toEqual(expected.custom)\n  expect(plain.custom).toEqual(lodash.custom)\n})\n"
  },
  {
    "path": "src/content/lodash/string/trimEnd/vanilla.js",
    "content": "// Regex explained: https://regexr.com/4v6iu\nconst trimEnd = (str, c = '\\\\s') =>\n  str.replace(new RegExp(`^(.*?)([${c}]*)$`), '$1')\n\nexports.simple = ' abc '.trimEnd()\n// => ' abc'\n\nexports.simpleAlt = trimEnd(' abc ')\n// => ' abc'\n\nexports.custom = trimEnd('-_-abc-_-', '_-')\n// => '-_-abc'\n"
  },
  {
    "path": "src/content/lodash/string/trimStart/lodash.js",
    "content": "// https://lodash.com/docs/#trimStart\nimport { trimStart } from 'lodash'\n\nexports.simple = trimStart(' abc ')\n// => 'abc '\n\nexports.custom = trimStart('-_-abc-_-', '_-')\n// => 'abc-_-'\n"
  },
  {
    "path": "src/content/lodash/string/trimStart/notes.md",
    "content": "Removes leading whitespace or specified characters from <code>string</code>.\n\nResources: [xkcd](https://xkcd.com/1171/)\n"
  },
  {
    "path": "src/content/lodash/string/trimStart/spec.js",
    "content": "const expected = {\n  simple: 'abc ',\n  custom: 'abc-_-',\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('trimStart', () => {\n  expect(lodash.simple).toEqual(expected.simple)\n  expect(plain.simple).toEqual(lodash.simple)\n  expect(plain.simpleAlt).toEqual(lodash.simple)\n})\n\ntest('trimStart – with custom characters', () => {\n  expect(lodash.custom).toEqual(expected.custom)\n  expect(plain.custom).toEqual(lodash.custom)\n})\n"
  },
  {
    "path": "src/content/lodash/string/trimStart/vanilla.js",
    "content": "// Regex explained: https://regexr.com/4v6j7\nconst trimStart = (str, c = '\\\\s') =>\n  str.replace(new RegExp(`^([${c}]*)(.*)$`), '$2')\n\nexports.simple = ' abc '.trimStart()\n// => 'abc '\n\nexports.simpleAlt = trimStart(' abc ')\n// => 'abc '\n\nexports.custom = trimStart('-_-abc-_-', '_-')\n// => 'abc-_-'\n"
  },
  {
    "path": "src/content/lodash/string/upperFirst/lodash.js",
    "content": "// https://lodash.com/docs/#upperFirst\nimport { upperFirst } from 'lodash'\n\nexports.lowerCase = upperFirst('fred')\n// => 'Fred'\n\nexports.upperCase = upperFirst('FRED')\n// => 'FRED'\n"
  },
  {
    "path": "src/content/lodash/string/upperFirst/notes.md",
    "content": "Converts the first character of <code>string</code> to upper case.\n\nResources: [String#charAt](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/charAt) [String#slice](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/slice)\n"
  },
  {
    "path": "src/content/lodash/string/upperFirst/spec.js",
    "content": "const expected = {\n  lowerCase: 'Fred',\n  upperCase: 'FRED',\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('upperFirst', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/string/upperFirst/vanilla.js",
    "content": "const upperFirst = str => `${str.charAt(0).toUpperCase()}${str.slice(1)}`\n\nexports.lowerCase = upperFirst('fred')\n// => 'Fred'\n\nexports.upperCase = upperFirst('FRED')\n// => 'FRED'\n"
  },
  {
    "path": "src/content/lodash/string/words/lodash.js",
    "content": "// https://lodash.com/docs/#words\nimport { words } from 'lodash'\n\nexports.enumeration = words('fred, barney, & pebbles')\n// => ['fred', 'barney', 'pebbles']\n"
  },
  {
    "path": "src/content/lodash/string/words/notes.md",
    "content": "Splits <code>string</code> into an array of its words.\n\nResources: [Intl.Segmenter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter)\n"
  },
  {
    "path": "src/content/lodash/string/words/spec.js",
    "content": "const expected = {\n  enumeration: ['fred', 'barney', 'pebbles'],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('words', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/string/words/vanilla.js",
    "content": "const words = str => {\n  const segmenter = new Intl.Segmenter('en', { granularity: 'word' })\n  return Array.from(segmenter.segment(str))\n    .filter(({ isWordLike }) => isWordLike)\n    .map(({ segment }) => segment)\n}\n\nexports.enumeration = words('fred, barney, & pebbles')\n// => ['fred', 'barney', 'pebbles']\n"
  },
  {
    "path": "src/content/lodash/util/attempt/lodash.js",
    "content": "// https://lodash.com/docs/#attempt\nimport { attempt } from 'lodash'\n\nexports.success = attempt(item => item.split(''), 'string')\n// => [\"s\", \"t\", \"r\", \"i\", \"n\", \"g\"]\n\nexports.failure = attempt(item => item.split(''), 1)\n// => [TypeError: item.split is not a function]\n"
  },
  {
    "path": "src/content/lodash/util/attempt/notes.md",
    "content": "Attempts to invoke <code>func</code>, returning either the result or the caught error object. Any additional arguments are provided to <code>func</code> when it's invoked.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [try...catch](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/try...catch)\n"
  },
  {
    "path": "src/content/lodash/util/attempt/spec.js",
    "content": "const expected = {\n  success: ['s', 't', 'r', 'i', 'n', 'g'],\n  failure: new TypeError('item.split is not a function'),\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('attempt', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/util/attempt/vanilla.js",
    "content": "const attempt = (func, ...args) => {\n  try {\n    return func(...args)\n  } catch (e) {\n    return e\n  }\n}\n\nexports.success = attempt(item => item.split(''), 'string')\n// => [\"s\", \"t\", \"r\", \"i\", \"n\", \"g\"]\n\nexports.failure = attempt(item => item.split(''), 1)\n// => [TypeError: item.split is not a function]\n"
  },
  {
    "path": "src/content/lodash/util/cond/lodash.js",
    "content": "// https://lodash.com/docs/#cond\nimport { cond, conforms, constant, isNumber, matches, stubTrue } from 'lodash'\n\nvar func = cond([\n  [matches({ 'a': 1 }), constant('matches A')],\n  [conforms({ 'b': isNumber }), constant('matches B')],\n  [stubTrue, constant('no match')],\n])\n\nexports.matchesA = func({ 'a': 1, 'b': 2 })\n// => 'matches A'\n\nexports.matchesB = func({ 'a': 0, 'b': 1 })\n// => 'matches B'\n\nexports.noMatch = func({ 'a': '1', 'b': '2' })\n// => 'no match'\n\nconst multiArgCondition = cond([\n  [(x, y) => x > y, (x, y) => x - y * 2],\n  [() => true, (x, y) => y - x],\n])\n\nexports.fiveMinusZero = multiArgCondition(0, 5)\n// => (y - x) === (5 - 0) === 5\n\nexports.twoMinusOneByTwo = multiArgCondition(2, 1)\n// => (x - y * 2 ) === (2 - 2) === 0\n\nexports.twoMinusTwo = multiArgCondition(2, 2)\n// => (y - x) === (2 - 2) === 0\n"
  },
  {
    "path": "src/content/lodash/util/cond/notes.md",
    "content": "Creates a function that iterates over <code>pairs</code> and invokes the corresponding function of the first predicate to return truthy. The predicate-function <code>pairs</code> are invoked with the arguments of the created function.\n\nResources: [for...of](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/for...of)\nResources: [Destructuring_assignment](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment)\n"
  },
  {
    "path": "src/content/lodash/util/cond/spec.js",
    "content": "const expected = {\n  matchesA: 'matches A',\n  matchesB: 'matches B',\n  noMatch: 'no match',\n  fiveMinusZero: 5,\n  twoMinusOneByTwo: 0,\n  twoMinusTwo: 0,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('cond', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/util/cond/vanilla.js",
    "content": "const cond =\n  pairs =>\n  (...item) => {\n    for (const [predicate, fn] of pairs) {\n      if (predicate(...item)) {\n        return fn(...item)\n      }\n    }\n  }\n\nvar func = cond([\n  [i => i.a === 1, () => 'matches A'],\n  [i => i.b === Number(i.b), () => 'matches B'],\n  [() => true, () => 'no match'],\n])\n\nexports.matchesA = func({ 'a': 1, 'b': 2 })\n// => 'matches A'\n\nexports.matchesB = func({ 'a': 0, 'b': 1 })\n// => 'matches B'\n\nexports.noMatch = func({ 'a': '1', 'b': '2' })\n// => 'no match'\n\nconst multiArgCondition = cond([\n  [(x, y) => x > y, (x, y) => x - y * 2],\n  [() => true, (x, y) => y - x],\n])\n\nexports.fiveMinusZero = multiArgCondition(0, 5)\n// => (y - x) === (5 - 0) === 5\n\nexports.twoMinusOneByTwo = multiArgCondition(2, 1)\n// => (x - y * 2) === (2 - 2) === 0\n\nexports.twoMinusTwo = multiArgCondition(2, 2)\n// => (y - x) === (2 - 2) === 0\n"
  },
  {
    "path": "src/content/lodash/util/constant/lodash.js",
    "content": "// https://lodash.com/docs/#constant\nimport { constant } from 'lodash'\n\nconst return42 = constant(42)\nmodule.exports = return42()\n// => 42\n"
  },
  {
    "path": "src/content/lodash/util/constant/notes.md",
    "content": "Creates a function that returns <code>value</code>.\n"
  },
  {
    "path": "src/content/lodash/util/constant/spec.js",
    "content": "const expected = 42\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('constant', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/util/constant/vanilla.js",
    "content": "const constant = arg => () => arg\nconst return42 = constant(42)\n\nmodule.exports = return42()\n// => 42\n"
  },
  {
    "path": "src/content/lodash/util/defaultTo/lodash.js",
    "content": "// https://lodash.com/docs/#defaultTo\nimport { defaultTo } from 'lodash'\n\nexports.default = defaultTo(1, 10)\n// => 1\n\nexports.falsy = defaultTo('', 10)\n// => ''\n\nexports.undefined = defaultTo(undefined, 10)\nexports.null = defaultTo(null, 10)\nexports.nan = defaultTo(NaN, 10)\n// => 10\n"
  },
  {
    "path": "src/content/lodash/util/defaultTo/notes.md",
    "content": "Checks <code>value</code> to determine whether a default value should be returned in its place. The <code>defaultValue</code> is returned if <code>value</code> is <code>NaN</code>, <code>null</code>, or <code>undefined</code>.\n\nResources: [Object.is](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/is)\n"
  },
  {
    "path": "src/content/lodash/util/defaultTo/spec.js",
    "content": "const expected = {\n  default: 1,\n  falsy: '',\n  undefined: 10,\n  null: 10,\n  nan: 10,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('defaultTo', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/util/defaultTo/vanilla.js",
    "content": "const defaultTo = (a, b) => (a == null || Object.is(a, NaN) ? b : a)\n\nexports.default = defaultTo(1, 10)\n// => 1\n\nexports.falsy = defaultTo('', 10)\n// => ''\n\nexports.undefined = defaultTo(undefined, 10)\nexports.null = defaultTo(null, 10)\nexports.nan = defaultTo(NaN, 10)\n// => 10\n"
  },
  {
    "path": "src/content/lodash/util/flow/lodash.js",
    "content": "// https://lodash.com/docs/#flow\nimport { flow } from 'lodash'\n\nconst add = (a, b) => a + b\n\nconst square = n => n * n\n\nconst addSquare = flow([add, square])\nmodule.exports = addSquare(1, 2)\n// => 9\n"
  },
  {
    "path": "src/content/lodash/util/flow/notes.md",
    "content": "Creates a function that returns the result of invoking the given functions with the <code>this</code> binding of the created function, where each successive invocation is supplied the return value of the previous.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Array#reduce](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce)\n"
  },
  {
    "path": "src/content/lodash/util/flow/spec.js",
    "content": "const expected = 9\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('flow', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/util/flow/vanilla.js",
    "content": "const flow =\n  funcs =>\n  (...args) =>\n    funcs.reduce((prev, fnc) => [fnc(...prev)], args)[0]\n\nconst add = (a, b) => a + b\n\nconst square = n => n * n\n\nconst addSquare = flow([add, square])\nmodule.exports = addSquare(1, 2)\n// => 9\n"
  },
  {
    "path": "src/content/lodash/util/flowRight/lodash.js",
    "content": "// https://lodash.com/docs/#flowRight\nimport { flowRight } from 'lodash'\n\nfunction add(a, b) {\n  return a + b\n}\n\nfunction square(n) {\n  return n * n\n}\n\nconst addSquare = flowRight([square, add])\nmodule.exports = addSquare(1, 2)\n// => 9\n"
  },
  {
    "path": "src/content/lodash/util/flowRight/notes.md",
    "content": "This method is like <a href=\"#flow\"><code>\\_.flow</code></a> except that it creates a function that invokes the given functions from right to left.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Array#reduce](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce)\n"
  },
  {
    "path": "src/content/lodash/util/flowRight/spec.js",
    "content": "const expected = 9\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('flowRight', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/util/flowRight/vanilla.js",
    "content": "const flowRight =\n  funcs =>\n  (...args) =>\n    funcs.reverse().reduce((prev, fnc) => [fnc(...prev)], args)[0]\n\nconst add = (a, b) => a + b\n\nconst square = n => n * n\n\nconst addSquare = flowRight([square, add])\nmodule.exports = addSquare(1, 2)\n// => 9\n"
  },
  {
    "path": "src/content/lodash/util/identity/lodash.js",
    "content": "// https://lodash.com/docs/#identity\nimport { identity } from 'lodash'\n\nconst object = { a: 1 }\n\nmodule.exports = identity(object) === object\n// => true\n"
  },
  {
    "path": "src/content/lodash/util/identity/notes.md",
    "content": "This method returns the first argument it receives.\n"
  },
  {
    "path": "src/content/lodash/util/identity/spec.js",
    "content": "const expected = true\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('identity', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/util/identity/vanilla.js",
    "content": "const identity = a => a\n\nconst object = { a: 1 }\n\nmodule.exports = identity(object) === object\n// => true\n"
  },
  {
    "path": "src/content/lodash/util/noop/lodash.js",
    "content": "// https://lodash.com/docs/#noop\nimport { noop } from 'lodash'\n\nmodule.exports = noop()\n// => undefined\n"
  },
  {
    "path": "src/content/lodash/util/noop/notes.md",
    "content": "This method returns <code>undefined</code>.\n"
  },
  {
    "path": "src/content/lodash/util/noop/spec.js",
    "content": "const expected = undefined\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('noop', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/util/noop/vanilla.js",
    "content": "const noop = () => {}\n\nmodule.exports = noop()\n// => undefined\n"
  },
  {
    "path": "src/content/lodash/util/nthArg/lodash.js",
    "content": "// https://lodash.com/docs/#nthArg\nimport { nthArg } from 'lodash'\n\nlet func = nthArg(1)\nexports.simple = func('a', 'b', 'c', 'd')\n// => 'b'\n\nfunc = nthArg(-2)\nexports.negative = func('a', 'b', 'c', 'd')\n// => 'c'\n"
  },
  {
    "path": "src/content/lodash/util/nthArg/notes.md",
    "content": "Creates a function that gets the argument at index <code>n</code>. If <code>n</code> is negative, the nth argument from the end is returned.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Array#slice](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/slice)\n"
  },
  {
    "path": "src/content/lodash/util/nthArg/spec.js",
    "content": "const expected = {\n  simple: 'b',\n  negative: 'c',\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('nthArg', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/util/nthArg/vanilla.js",
    "content": "const nthArg =\n  idx =>\n  (...args) =>\n    args.slice(idx, idx + 1)[0]\n\nlet func = nthArg(1)\nexports.simple = func('a', 'b', 'c', 'd')\n// => 'b'\n\nfunc = nthArg(-2)\nexports.negative = func('a', 'b', 'c', 'd')\n// => 'c'\n"
  },
  {
    "path": "src/content/lodash/util/over/lodash.js",
    "content": "// https://lodash.com/docs/#over\nimport { over } from 'lodash'\n\nconst func = over([Math.max, Math.min])\n\nmodule.exports = func(1, 2, 3, 4)\n// => [4, 1]\n"
  },
  {
    "path": "src/content/lodash/util/over/notes.md",
    "content": "Creates a function that invokes <code>iteratees</code> with the arguments it receives and returns their results.\n\nResources: [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Array#map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/map)\n"
  },
  {
    "path": "src/content/lodash/util/over/spec.js",
    "content": "const expected = [4, 1]\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('over', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/util/over/vanilla.js",
    "content": "const over =\n  arr =>\n  (...args) =>\n    arr.map(func => func(...args))\n\nconst func = over([Math.max, Math.min])\n\nmodule.exports = func(1, 2, 3, 4)\n// => [4, 1]\n"
  },
  {
    "path": "src/content/lodash/util/overEvery/.eslintrc",
    "content": "{\n  \"rules\": {\n    \"no-restricted-globals\": 0\n  }\n}\n"
  },
  {
    "path": "src/content/lodash/util/overEvery/lodash.js",
    "content": "// https://lodash.com/docs/#overEvery\nimport { overEvery } from 'lodash'\n\nconst func = overEvery([Boolean, isFinite])\n\nexports.string = func('1')\n// => true\n\nexports.null = func(null)\n// => false\n\nexports.nan = func(NaN)\n// => false\n"
  },
  {
    "path": "src/content/lodash/util/overEvery/notes.md",
    "content": "Creates a function that checks if <strong>all</strong> of the <code>predicates</code> return truthy when invoked with the arguments it receives.\n\nResources: [Array#every](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/every)\n"
  },
  {
    "path": "src/content/lodash/util/overEvery/spec.js",
    "content": "const expected = {\n  string: true,\n  null: false,\n  nan: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('overEvery', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/util/overEvery/vanilla.js",
    "content": "const overSome = checks => item => checks.every(check => check(item))\n\nconst func = overSome([Boolean, isFinite])\n\nexports.string = func('1')\n// => true\n\nexports.null = func(null)\n// => false\n\nexports.nan = func(NaN)\n// => false\n"
  },
  {
    "path": "src/content/lodash/util/overSome/.eslintrc",
    "content": "{\n  \"rules\": {\n    \"no-restricted-globals\": 0\n  }\n}\n"
  },
  {
    "path": "src/content/lodash/util/overSome/lodash.js",
    "content": "// https://lodash.com/docs/#overSome\nimport { overSome } from 'lodash'\n\nconst func = overSome([Boolean, isFinite])\n\nexports.string = func('1')\n// => true\n\nexports.null = func(null)\n// => true\n\nexports.nan = func(NaN)\n// => false\n"
  },
  {
    "path": "src/content/lodash/util/overSome/notes.md",
    "content": "Creates a function that checks if <strong>any</strong> of the <code>predicates</code> return truthy when invoked with the arguments it receives.\n\nResources: [Array#some](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/some)\n"
  },
  {
    "path": "src/content/lodash/util/overSome/spec.js",
    "content": "const expected = {\n  string: true,\n  null: true,\n  nan: false,\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('overSome', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/util/overSome/vanilla.js",
    "content": "const overSome = checks => item => checks.some(check => check(item))\n\nconst func = overSome([Boolean, isFinite])\n\nexports.string = func('1')\n// => true\n\nexports.null = func(null)\n// => true\n\nexports.nan = func(NaN)\n// => false\n"
  },
  {
    "path": "src/content/lodash/util/range/lodash.js",
    "content": "// https://lodash.com/docs/#range\nimport { range } from 'lodash'\n\nexports.example1 = range(4)\n// => [0, 1, 2, 3]\n\nexports.example2 = range(-4)\n// => [0, -1, -2, -3]\n\nexports.example3 = range(1, 5)\n// => [1, 2, 3, 4]\n\nexports.example4 = range(0, 20, 5)\n// => [0, 5, 10, 15]\n\nexports.example5 = range(0, -4, -1)\n// => [0, -1, -2, -3]\n\nexports.example6 = range(1, 4, 0)\n// => [1, 1, 1]\n\nexports.example7 = range(0)\n// => []\n"
  },
  {
    "path": "src/content/lodash/util/range/notes.md",
    "content": "Creates an array of numbers <em>(positive and/or negative)</em> progressing from <code>start</code> up to, but not including, <code>end</code>. A step of <code>-1</code> is used if a negative <code>start</code> is specified without an <code>end</code> or <code>step</code>. If <code>end</code> is not specified, it's set to <code>start</code> with <code>start</code> then set to <code>0</code>.\n\nResources: [Array.from](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/from) [Array#reduce](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce) [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Math.abs](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Math/abs) [Math.sign](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Math/sign) [typeof](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/typeof)\n"
  },
  {
    "path": "src/content/lodash/util/range/spec.js",
    "content": "const expected = {\n  example1: [0, 1, 2, 3],\n  example2: [0, -1, -2, -3],\n  example3: [1, 2, 3, 4],\n  example4: [0, 5, 10, 15],\n  example5: [0, -1, -2, -3],\n  example6: [1, 1, 1],\n  example7: [],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('range', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/util/range/vanilla.js",
    "content": "const range = (start, end, increment) => {\n  // if the end is not defined...\n  const isEndDef = typeof end !== 'undefined'\n  // ...the first argument should be the end of the range...\n  end = isEndDef ? end : start\n  // ...and 0 should be the start\n  start = isEndDef ? start : 0\n\n  // if the increment is not defined, we could need a +1 or -1\n  // depending on whether we are going up or down\n  if (typeof increment === 'undefined') {\n    increment = Math.sign(end - start)\n  }\n\n  // calculating the lenght of the array, which has always to be positive\n  const length = Math.abs((end - start) / (increment || 1))\n\n  // In order to return the right result, we need to create a new array\n  // with the calculated length and fill it with the items starting from\n  // the start value + the value of increment.\n  const { result } = Array.from({ length }).reduce(\n    ({ result, current }) => ({\n      // append the current value to the result array\n      result: [...result, current],\n      // adding the increment to the current item\n      // to be used in the next iteration\n      current: current + increment,\n    }),\n    { current: start, result: [] }\n  )\n\n  return result\n}\n\nexports.example1 = range(4)\n// => [0, 1, 2, 3]\n\nexports.example2 = range(-4)\n// => [0, -1, -2, -3]\n\nexports.example3 = range(1, 5)\n// => [1, 2, 3, 4]\n\nexports.example4 = range(0, 20, 5)\n// => [0, 5, 10, 15]\n\nexports.example5 = range(0, -4, -1)\n// => [0, -1, -2, -3]\n\nexports.example6 = range(1, 4, 0)\n// => [1, 1, 1]\n\nexports.example7 = range(0)\n// => []\n"
  },
  {
    "path": "src/content/lodash/util/rangeRight/lodash.js",
    "content": "// https://lodash.com/docs/#rangeRight\nimport { rangeRight } from 'lodash'\n\nexports.example1 = rangeRight(4)\n// => [3, 2, 1, 0]\n\nexports.example2 = rangeRight(-4)\n// => [-3, -2, -1, 0]\n\nexports.example3 = rangeRight(1, 5)\n// => [4, 3, 2, 1]\n\nexports.example4 = rangeRight(0, 20, 5)\n// => [15, 10, 5, 0]\n\nexports.example5 = rangeRight(0, -4, -1)\n// => [-3, -2, -1, 0]\n\nexports.example6 = rangeRight(1, 4, 0)\n// => [1, 1, 1]\n\nexports.example7 = rangeRight(0)\n// => []\n"
  },
  {
    "path": "src/content/lodash/util/rangeRight/notes.md",
    "content": "This method is like <a href=\"#range\"><code>\\_.range</code></a> except that it populates values in descending order.\n\nResources: [Array.from](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/from) [Array#reduce](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce) [Spread syntax](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax) [Math.abs](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Math/abs) [Math.sign](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Math/sign) [typeof](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/typeof)\n"
  },
  {
    "path": "src/content/lodash/util/rangeRight/spec.js",
    "content": "const expected = {\n  example1: [3, 2, 1, 0],\n  example2: [-3, -2, -1, 0],\n  example3: [4, 3, 2, 1],\n  example4: [15, 10, 5, 0],\n  example5: [-3, -2, -1, 0],\n  example6: [1, 1, 1],\n  example7: [],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('rangeRight', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/util/rangeRight/vanilla.js",
    "content": "const rangeRight = (start, end, increment) => {\n  // if the end is not defined...\n  const isEndDef = typeof end !== 'undefined'\n  // ...the first argument should be the end of the range...\n  end = isEndDef ? end : start\n  // ...and 0 should be the start\n  start = isEndDef ? start : 0\n\n  // if the increment is not defined, we could need a +1 or -1\n  // depending on whether we are going up or down\n  if (typeof increment === 'undefined') {\n    increment = Math.sign(end - start)\n  }\n\n  // calculating the lenght of the array, which has always to be positive\n  const length = Math.abs((end - start) / (increment || 1))\n\n  // In order to return the right result, we need to create a new array\n  // with the calculated length and fill it with the items starting from\n  // the start value + the value of increment.\n  const { result } = Array.from({ length }).reduce(\n    ({ result, current }) => ({\n      // prepend the current value to the result array\n      result: [current, ...result],\n      // adding the increment to the current item\n      // to be used in the next iteration\n      current: current + increment,\n    }),\n    { current: start, result: [] }\n  )\n\n  return result\n}\n\nexports.example1 = rangeRight(4)\n// => [3, 2, 1, 0]\nexports.example2 = rangeRight(-4)\n// => [-3, -2, -1, 0]\nexports.example3 = rangeRight(1, 5)\n// => [4, 3, 2, 1]\nexports.example4 = rangeRight(0, 20, 5)\n// => [15, 10, 5, 0]\nexports.example5 = rangeRight(0, -4, -1)\n// => [-3, -2, -1, 0]\nexports.example6 = rangeRight(1, 4, 0)\n// => [1, 1, 1]\nexports.example7 = rangeRight(0)\n// => []\n"
  },
  {
    "path": "src/content/lodash/util/stubArray/lodash.js",
    "content": "// https://lodash.com/docs/#stubArray\nimport { stubArray } from 'lodash'\n\nmodule.exports = stubArray()\n// => []\n"
  },
  {
    "path": "src/content/lodash/util/stubArray/notes.md",
    "content": "This method returns a new empty array.\n"
  },
  {
    "path": "src/content/lodash/util/stubArray/spec.js",
    "content": "const expected = []\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('stubArray', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/util/stubArray/vanilla.js",
    "content": "const stubArray = () => []\n\nmodule.exports = stubArray()\n// => []\n"
  },
  {
    "path": "src/content/lodash/util/stubFalse/lodash.js",
    "content": "// https://lodash.com/docs/#stubFalse\nimport { stubFalse } from 'lodash'\n\nmodule.exports = stubFalse()\n// => false\n"
  },
  {
    "path": "src/content/lodash/util/stubFalse/notes.md",
    "content": "This method returns <code>false</code>.\n"
  },
  {
    "path": "src/content/lodash/util/stubFalse/spec.js",
    "content": "const expected = false\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('stubFalse', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/util/stubFalse/vanilla.js",
    "content": "const stubFalse = () => false\n\nmodule.exports = stubFalse()\n// => false\n"
  },
  {
    "path": "src/content/lodash/util/stubObject/lodash.js",
    "content": "// https://lodash.com/docs/#stubObject\nimport { stubObject } from 'lodash'\n\nmodule.exports = stubObject()\n// => {}\n"
  },
  {
    "path": "src/content/lodash/util/stubObject/notes.md",
    "content": "This method returns a new empty object.\n"
  },
  {
    "path": "src/content/lodash/util/stubObject/spec.js",
    "content": "const expected = {}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('stubObject', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/util/stubObject/vanilla.js",
    "content": "const stubObject = () => ({})\n\nmodule.exports = stubObject()\n// => {}\n"
  },
  {
    "path": "src/content/lodash/util/stubString/lodash.js",
    "content": "// https://lodash.com/docs/#stubString\nimport { stubString } from 'lodash'\n\nmodule.exports = stubString()\n// => ''\n"
  },
  {
    "path": "src/content/lodash/util/stubString/notes.md",
    "content": "This method returns an empty string.\n"
  },
  {
    "path": "src/content/lodash/util/stubString/spec.js",
    "content": "const expected = ''\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('stubString', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/util/stubString/vanilla.js",
    "content": "const stubString = () => ''\n\nmodule.exports = stubString()\n// => ''\n"
  },
  {
    "path": "src/content/lodash/util/stubTrue/lodash.js",
    "content": "// https://lodash.com/docs/#stubTrue\nimport { stubTrue } from 'lodash'\n\nmodule.exports = stubTrue()\n// => true\n"
  },
  {
    "path": "src/content/lodash/util/stubTrue/notes.md",
    "content": "This method returns <code>true</code>.\n"
  },
  {
    "path": "src/content/lodash/util/stubTrue/spec.js",
    "content": "const expected = true\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('stubTrue', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/util/stubTrue/vanilla.js",
    "content": "const stubTrue = () => true\n\nmodule.exports = stubTrue()\n// => true\n"
  },
  {
    "path": "src/content/lodash/util/times/lodash.js",
    "content": "// https://lodash.com/docs/#times\nimport { times } from 'lodash'\n\nexports.simple = times(3)\n// => [0, 1, 2]\n\nexports.withIteratee = times(3, i => i + 3)\n// => [3, 4, 5]\n"
  },
  {
    "path": "src/content/lodash/util/times/notes.md",
    "content": "Invokes the iteratee <code>n</code> times, returning an array of the results of each invocation. The iteratee is invoked with one argument; <em>(index)</em>.\n\nResources: [Array.from](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/from) [Array#map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/map)\n"
  },
  {
    "path": "src/content/lodash/util/times/spec.js",
    "content": "const expected = {\n  simple: [0, 1, 2],\n  withIteratee: [3, 4, 5],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('times', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/util/times/vanilla.js",
    "content": "const times = (n, func = i => i) =>\n  Array.from({ length: n }).map((_, i) => func(i))\n\nexports.simple = times(3)\n// => [0, 1, 2]\n\nexports.withIteratee = times(3, i => i + 3)\n// => [3, 4, 5]\n"
  },
  {
    "path": "src/content/lodash/util/toPath/lodash.js",
    "content": "// https://lodash.com/docs/#toPath\nimport { toPath } from 'lodash'\n\nexports.example1 = toPath('a.b.c')\n// => ['a', 'b', 'c']\n\nexports.example2 = toPath('a[0].b.c')\n// => ['a', '0', 'b', 'c']\n"
  },
  {
    "path": "src/content/lodash/util/toPath/notes.md",
    "content": "Converts <code>value</code> to a property path array."
  },
  {
    "path": "src/content/lodash/util/toPath/spec.js",
    "content": "const expected = {\n  example1: ['a', 'b', 'c'],\n  example2: ['a', '0', 'b', 'c'],\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('toPath', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/util/toPath/vanilla.js",
    "content": "// Regex explained: https://regexr.com/58j0k\nconst toPath = path => path.match(/([^[.\\]])+/g)\n\nexports.example1 = toPath('a.b.c')\n// => ['a', 'b', 'c']\n\nexports.example2 = toPath('a[0].b.c')\n// => ['a', '0', 'b', 'c']\n"
  },
  {
    "path": "src/content/lodash/util/uniqueId/.eslintrc",
    "content": "{\n  \"rules\": {\n    \"no-plusplus\": 0\n  }\n}\n"
  },
  {
    "path": "src/content/lodash/util/uniqueId/lodash.js",
    "content": "// https://lodash.com/docs/#uniqueId\nimport { uniqueId } from 'lodash'\n\nexports.composed = uniqueId('contact_')\n// => 'contact_1'\n\nexports.simple = uniqueId()\n// => '2'\n"
  },
  {
    "path": "src/content/lodash/util/uniqueId/notes.md",
    "content": "Generates a unique ID. If <code>prefix</code> is given, the ID is appended to it.\n\nResources: [IIFE](https://developer.mozilla.org/docs/Glossary/IIFE)\n"
  },
  {
    "path": "src/content/lodash/util/uniqueId/spec.js",
    "content": "const expected = {\n  composed: 'contact_1',\n  simple: '2',\n}\n\nconst lodash = require('./lodash')\nconst plain = require('./vanilla')\n\ntest('uniqueId', () => {\n  expect(lodash).toEqual(expected)\n  expect(plain).toEqual(lodash)\n})\n"
  },
  {
    "path": "src/content/lodash/util/uniqueId/vanilla.js",
    "content": "const uniqueId = (\n  counter =>\n  (str = '') =>\n    `${str}${++counter}`\n)(0)\n\nexports.composed = uniqueId('contact_')\n// => 'contact_1'\n\nexports.simple = uniqueId()\n// => '2'\n"
  },
  {
    "path": "src/content/lodash-missing.md",
    "content": "[<< back](/lodash)\n\n# YOU MIGHT NOT NEED LODASH\n\n## Missing\n\n### Array\n\n[\\_.differenceWith](https://lodash.com/docs/#differenceWith)  \n[\\_.dropRightWhile](https://lodash.com/docs/#dropRightWhile)  \n[\\_.dropWhile](https://lodash.com/docs/#dropWhile)  \n[\\_.intersectionWith](https://lodash.com/docs/#intersectionWith)  \n[\\_.pullAll](https://lodash.com/docs/#pullAll)  \n[\\_.pullAllBy](https://lodash.com/docs/#pullAllBy)  \n[\\_.pullAllWith](https://lodash.com/docs/#pullAllWith)  \n[\\_.sortedIndex](https://lodash.com/docs/#sortedIndex)  \n[\\_.sortedIndexBy](https://lodash.com/docs/#sortedIndexBy)  \n[\\_.sortedLastIndex](https://lodash.com/docs/#sortedLastIndex)  \n[\\_.sortedLastIndexBy](https://lodash.com/docs/#sortedLastIndexBy)  \n[\\_.sortedUniqBy](https://lodash.com/docs/#sortedUniqBy)  \n[\\_.takeRightWhile](https://lodash.com/docs/#takeRightWhile)  \n[\\_.takeWhile](https://lodash.com/docs/#takeWhile)  \n[\\_.unionWith](https://lodash.com/docs/#unionWith)  \n[\\_.uniqWith](https://lodash.com/docs/#uniqWith)  \n[\\_.unzipWith](https://lodash.com/docs/#unzipWith)  \n[\\_.xorBy](https://lodash.com/docs/#xorBy)  \n[\\_.xorWith](https://lodash.com/docs/#xorWith)  \n[\\_.zipObjectDeep](https://lodash.com/docs/#zipObjectDeep)  \n[\\_.zipWith](https://lodash.com/docs/#zipWith)\n\n### Collection – only covered arrays so far\n\n[\\_.countBy](https://lodash.com/docs/#countBy)  \n[\\_.findLast](https://lodash.com/docs/#findLast)  \n[\\_.flatMapDeep](https://lodash.com/docs/#flatMapDeep)  \n[\\_.flatMapDepth](https://lodash.com/docs/#flatMapDepth)  \n[\\_.groupBy](https://lodash.com/docs/#groupBy)  \n[\\_.invokeMap](https://lodash.com/docs/#invokeMap)  \n[\\_.keyBy](https://lodash.com/docs/#keyBy)  \n[\\_.orderBy](https://lodash.com/docs/#orderBy)  \n[\\_.partition](https://lodash.com/docs/#partition)  \n[\\_.reject](https://lodash.com/docs/#reject)  \n[\\_.sample](https://lodash.com/docs/#sample)  \n[\\_.sampleSize](https://lodash.com/docs/#sampleSize)  \n[\\_.shuffle](https://lodash.com/docs/#shuffle)  \n[\\_.sortBy](https://lodash.com/docs/#sortBy)\n\n### Function\n\n[\\_.defer](https://lodash.com/docs/#defer)  \n[\\_.memoize](https://lodash.com/docs/#memoize)  \n[\\_.throttle](https://lodash.com/docs/#throttle)\n\n### Lang\n\n[\\_.clone](https://lodash.com/docs/#clone)  \n[\\_.cloneDeepWith](https://lodash.com/docs/#cloneDeepWith)  \n[\\_.cloneWith](https://lodash.com/docs/#cloneWith)  \n[\\_.eq](https://lodash.com/docs/#eq)  \n[\\_.isArguments](https://lodash.com/docs/#isArguments)  \n[\\_.isArrayLike](https://lodash.com/docs/#isArrayLike)  \n[\\_.isArrayLikeObject](https://lodash.com/docs/#isArrayLikeObject)  \n[\\_.isBuffer](https://lodash.com/docs/#isBuffer)  \n[\\_.isElement](https://lodash.com/docs/#isElement)  \n[\\_.isEqual](https://lodash.com/docs/#isEqual)  \n[\\_.isEqualWith](https://lodash.com/docs/#isEqualWith)  \n[\\_.isFunction](https://lodash.com/docs/#isFunction)  \n[\\_.isLength](https://lodash.com/docs/#isLength)  \n[\\_.isMatch](https://lodash.com/docs/#isMatch)  \n[\\_.isMatchWith](https://lodash.com/docs/#isMatchWith)  \n[\\_.isNative](https://lodash.com/docs/#isNative)  \n[\\_.isNumber](https://lodash.com/docs/#isNumber)  \n[\\_.isObjectLike](https://lodash.com/docs/#isObjectLike)  \n[\\_.isPlainObject](https://lodash.com/docs/#isPlainObject)  \n[\\_.toArray](https://lodash.com/docs/#toArray)  \n[\\_.toFinite](https://lodash.com/docs/#toFinite)  \n[\\_.toInteger](https://lodash.com/docs/#toInteger)  \n[\\_.toLength](https://lodash.com/docs/#toLength)  \n[\\_.toNumber](https://lodash.com/docs/#toNumber)  \n[\\_.toPlainObject](https://lodash.com/docs/#toPlainObject)  \n[\\_.toSafeInteger](https://lodash.com/docs/#toSafeInteger)  \n[\\_.toString](https://lodash.com/docs/#toString)\n\n### Object\n\n[\\_.assignIn](https://lodash.com/docs/#assignIn)  \n[\\_.assignInWith](https://lodash.com/docs/#assignInWith)  \n[\\_.assignWith](https://lodash.com/docs/#assignWith)  \n[\\_.at](https://lodash.com/docs/#at)  \n[\\_.defaultsDeep](https://lodash.com/docs/#defaultsDeep)  \n[\\_.findKey](https://lodash.com/docs/#findKey)  \n[\\_.findLastKey](https://lodash.com/docs/#findLastKey)  \n[\\_.forIn](https://lodash.com/docs/#forIn)  \n[\\_.forInRight](https://lodash.com/docs/#forInRight)  \n[\\_.forOwn](https://lodash.com/docs/#forOwn)  \n[\\_.forOwnRight](https://lodash.com/docs/#forOwnRight)  \n[\\_.functions](https://lodash.com/docs/#functions)  \n[\\_.functionsIn](https://lodash.com/docs/#functionsIn)  \n[\\_.hasIn](https://lodash.com/docs/#hasIn)  \n[\\_.invertBy](https://lodash.com/docs/#invertBy)  \n[\\_.invoke](https://lodash.com/docs/#invoke)  \n[\\_.keysIn](https://lodash.com/docs/#keysIn)  \n[\\_.mapValues](https://lodash.com/docs/#mapValues)  \n[\\_.merge](https://lodash.com/docs/#merge)  \n[\\_.mergeWith](https://lodash.com/docs/#mergeWith)  \n[\\_.pickBy](https://lodash.com/docs/#pickBy)  \n[\\_.result](https://lodash.com/docs/#result)  \n[\\_.setWith](https://lodash.com/docs/#setWith)  \n[\\_.toPairsIn](https://lodash.com/docs/#toPairsIn)  \n[\\_.transform](https://lodash.com/docs/#transform)  \n[\\_.update](https://lodash.com/docs/#update)  \n[\\_.updateWith](https://lodash.com/docs/#updateWith)  \n[\\_.valuesIn](https://lodash.com/docs/#valuesIn)\n\n### String\n\n[\\_.camelCase](https://lodash.com/docs/#camelCase)  \n[\\_.escapeRegExp](https://lodash.com/docs/#escapeRegExp)  \n[\\_.lowerCase](https://lodash.com/docs/#lowerCase)  \n[\\_.snakeCase](https://lodash.com/docs/#snakeCase)  \n[\\_.startCase](https://lodash.com/docs/#startCase)  \n[\\_.template](https://lodash.com/docs/#template)  \n[\\_.truncate](https://lodash.com/docs/#truncate)  \n[\\_.unescape](https://lodash.com/docs/#unescape)  \n[\\_.upperCase](https://lodash.com/docs/#upperCase)\n\n### Util\n\n[\\_.bindAll](https://lodash.com/docs/#bindAll)  \n[\\_.conforms](https://lodash.com/docs/#conforms)  \n[\\_.iteratee](https://lodash.com/docs/#iteratee)  \n[\\_.matches](https://lodash.com/docs/#matches)  \n[\\_.matchesProperty](https://lodash.com/docs/#matchesProperty)  \n[\\_.method](https://lodash.com/docs/#method)  \n[\\_.methodOf](https://lodash.com/docs/#methodOf)  \n[\\_.mixin](https://lodash.com/docs/#mixin)  \n[\\_.noConflict](https://lodash.com/docs/#noConflict)  \n[\\_.property](https://lodash.com/docs/#property)  \n[\\_.propertyOf](https://lodash.com/docs/#propertyOf)  \n[\\_.runInContext](https://lodash.com/docs/#runInContext)\n"
  },
  {
    "path": "src/content/lodash.md",
    "content": "# YOU MIGHT NOT NEED **LODASH**\n\nBut **you should use Lodash**.\n\nIt's a great library, well crafted, battle tested and with a very skilled and active community contributing. **The goal of this project is _NOT_ to provide drop in replacements**, but to show how to achieve similar functionalities in plain Javascript, to understand how things work behind the hood.\n\nBeing a learning platform, **some implementations have been simplified to make them more digestible, and they might miss edge cases** covered in the original version.\n\nIf you think something important is missing, or plain wrong, feel free to [open an issue](https://github.com/cedmax/youmightnotneed/issues), just be aware we are not aiming at feature parity. There are also [quite a few methods yet to be ported](/lodash/missing); please help [contributing on github](https://github.com/cedmax/youmightnotneed/blob/master/src/content/how-to-contribute.md).\n"
  },
  {
    "path": "src/content/moment.md",
    "content": "# YOU MIGHT NOT NEED MOMENT.JS\n\nThis page has been deprecated, please refer to [You don't need Moment.js](https://github.com/you-dont-need/You-Dont-Need-Momentjs)\n"
  },
  {
    "path": "src/content/readme.md",
    "content": "# YOU MIGHT NOT NEED&nbsp;\\*\n\n#### a collection of `You might not need ${something}` resources\n\n---\n\n#### [You might not need Lodash](/lodash)\n\nThe most comprehensive, unit tested collection of lodash methods re-implemented in vanilla js\n\n---\n\n#### [You might not need date-fns](/date-fns)\n\nA unit tested collection of date-fns methods re-implemented in vanilla js\n\n---\n\n#### External Resources\n\n- [You might not need JavaScript](http://youmightnotneedjs.com/)\n- [You don't need Moment.js](https://github.com/you-dont-need/You-Dont-Need-Momentjs)\n- [You may not need Axios](https://danlevy.net/you-may-not-need-axios/)\n- [You might not need jQuery](http://youmightnotneedjquery.com/)\n- [You don't need Bootstrap](https://github.com/davidhartsough/you-dont-need-bootstrap)\n- [Awesome serverless](https://github.com/anaibol/awesome-serverless/blob/master/README.md)\n- [You might not need Redux](https://medium.com/@dan_abramov/you-might-not-need-redux-be46360cf367)\n- [You might not need a CSS framework](https://hacks.mozilla.org/2016/04/you-might-not-need-a-css-framework/)\n"
  },
  {
    "path": "src/helpers/data-filter.js",
    "content": "export default (data, value) =>\n  Object.keys(data).reduce((cache, section) => {\n    const methods = Object.keys(data[section]).filter(\n      method => method.toLowerCase().indexOf(value.toLowerCase()) === 0\n    )\n\n    cache[section] = methods.reduce((innerCache, method) => {\n      innerCache[method] = data[section][method]\n      return innerCache\n    }, {})\n\n    if (!Object.keys(cache[section]).length) {\n      delete cache[section]\n    }\n\n    return cache\n  }, {})\n"
  },
  {
    "path": "src/helpers/map-imports.js",
    "content": "const parse = object => {\n  const result = Object.keys(object).reduce((cache, file) => {\n    const parts = file.split('/')\n    const area = parts[1]\n    const method = parts[2]\n    const version = parts[3]\n      .replace('.js', '')\n      .replace('vanilla', 'plain js')\n      .replace('.md', '')\n\n    cache[area] = cache[area] || {}\n    cache[area][method] = cache[area][method] || {}\n\n    if (version === 'notes') {\n      const [description, resources] = object[file].split('<p>Resources:')\n      cache[area][method].resources = resources\n        ? `Resources:${resources}`\n        : null\n\n      object[file] = description.replace(/^\\s+|\\s+$/g, '')\n    }\n\n    cache[area][method][version] = (object[file].default || object[file])\n      .replace(/<a href=\"([^#])/gi, '<a target=\"_blank\" href=\"$1')\n      .replace(/(module.)?exports(\\.(.+))? = /g, '')\n\n    return cache\n  }, {})\n  return result\n}\n\nexport default parse\n"
  },
  {
    "path": "src/helpers/static-props.js",
    "content": "import glob from 'glob'\nimport fs from 'fs'\nimport path from 'path'\nimport requireMarkdownC from 'require-markdown'\nimport mapImports from './map-imports'\n\nconst requireMarkdown = requireMarkdownC({\n  typographer: true,\n  html: true,\n})\n\nconst parseMarkdown = file => requireMarkdown(path.resolve(file))\n\nconst fetchContent = prj => {\n  const obj = {}\n  glob\n    .sync(`./src/content/${prj}/**/*.*`)\n    .filter(file => !file.match(/jest\\..+\\.js/))\n    .forEach(file => {\n      const fileKey = file.replace(`src/content/${prj}/`, '')\n      obj[fileKey] = file.endsWith('.md')\n        ? parseMarkdown(file)\n        : fs.readFileSync(file, 'utf8')\n    })\n  return mapImports(obj)\n}\n\nconst staticProps = {\n  footer: parseMarkdown('src/content/footer.md'),\n  index: {\n    content: parseMarkdown('src/content/readme.md'),\n    title: 'You Might Not Need *',\n  },\n  lodash: {\n    content: parseMarkdown('./src/content/lodash.md'),\n    title: 'You Might Not Need Lodash',\n    data: fetchContent('lodash'),\n  },\n  'lodash/missing': {\n    content: parseMarkdown('src/content/lodash-missing.md'),\n    title: 'You Might Not Need Lodash',\n  },\n  'date-fns': {\n    content: parseMarkdown('./src/content/date-fns.md'),\n    title: 'You Might Not Need date-fns',\n    data: fetchContent('date-fns'),\n  },\n  'date-fns/missing': {\n    content: parseMarkdown('src/content/date-fns-missing.md'),\n    title: 'You Might Not Need date-fns',\n  },\n  momentjs: {\n    content: parseMarkdown('src/content/moment.md'),\n    title: 'You Might Not Need Moment.js',\n  },\n  'css': {\n    content: parseMarkdown('src/content/css.md'),\n    title: 'You Might Not Need Css',\n  },\n}\n\nexport const getStaticProps = key => {\n  const siteRoot =\n    process.env.PULL_REQUEST === 'true'\n      ? process.env.DEPLOY_PRIME_URL\n      : (process.env.URL || '').replace('http://', 'https://')\n\n  return {\n    props: {\n      ...staticProps[key],\n      footer: staticProps.footer,\n      configKey: key,\n      siteRoot,\n    },\n  }\n}\n"
  },
  {
    "path": "src/helpers/styles.js",
    "content": "import '@exampledev/new.css/new.css'\nimport styled, { createGlobalStyle } from 'styled-components'\n\nexport const GlobalStyle = createGlobalStyle`\n  :root {\n    ${({ theme }) => theme.variables};\n  }\n\n\n  body {\n    font-family: 'HelveticaNeue-Light', 'Helvetica Neue Light', 'Helvetica Neue', Helvetica, Arial,\n      'Lucida Grande', sans-serif;\n    font-weight: 300;\n    font-size: 16px;\n    max-width: 100%;\n    margin: 0;\n    padding: 0;\n  }\n\n  .ReactModal__Body--open {\n    overflow: hidden;\n  }\n\n  .hljs a {\n    text-decoration: underline;\n    text-decoration-style: dotted;\n  }\n\n  pre {\n    padding: 0;\n    border-radius: 0 4px 4px 0;\n  }\n\n  .button, .button:hover,.button:focus, .button:active {\n    background: none;\n    color: var(--nc-lk-1);\n  }\n\n  .button:hover, .button:focus, .button:active {\n    background: none;\n    color: var(--nc-lk-2);\n  }\n\n  .button {\n    padding-top: 0;\n    padding-bottom: 0;\n  }\n\n  strong {\n    font-weight: 700;\n  }\n`\n\nexport default styled.div`\n  nav {\n    display: flex;\n    justify-content: flex-start;\n    align-items: center;\n\n    @media (max-width: 640px) {\n      align-items: flex-start;\n      flex-direction: column;\n    }\n\n    box-sizing: border-box;\n    width: 100%;\n    padding: 1rem;\n    position: relative;\n\n    @media screen and (min-width: 30em) {\n      padding: 2rem;\n      padding-right: 3.5em;\n    }\n\n    a:first-child {\n      color: var(--nc-tx-1);\n      font-weight: bold;\n    }\n\n    a:first-child[aria-current]::after {\n      content: ' *';\n    }\n\n    a {\n      display: inline-block;\n      text-decoration: none;\n      transition: color 0.15s ease-in;\n      color: var(--nc-lk-2);\n      opacity: 1;\n      transition: opacity 0.15s ease-in;\n      margin-right: 1rem;\n    }\n\n    a[aria-current] {\n      font-weight: bold;\n      color: var(--nc-tx-1);\n    }\n\n    a:last-child {\n      margin-right: 0;\n    }\n\n    a:active {\n      opacity: 0.8;\n      transition: opacity 0.15s ease-out;\n    }\n\n    a:hover {\n      opacity: 0.5;\n      transition: opacity 0.15s ease-in;\n      text-decoration: underline;\n    }\n    button {\n      color: var(--nc-lk-2);\n      font-size: 12px;\n\n      &,\n      :hover,\n      :active,\n      :focus {\n        opacity: 0.7;\n        margin-left: auto;\n        background-repeat: no-repeat;\n        background-position: center;\n        background-size: 25px;\n        overflow: hidden;\n        background-color: transparent;\n      }\n    }\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5 {\n    margin-bottom: 0.5em;\n    border-bottom: 0;\n  }\n\n  footer {\n    text-align: right;\n  }\n`\n"
  },
  {
    "path": "src/helpers/use-dark-mode.js",
    "content": "import { useCallback, useState } from 'react'\n\nconst preference =\n  typeof window !== 'undefined' &&\n  window.matchMedia &&\n  window.matchMedia('(prefers-color-scheme: dark)').matches\n    ? 'dark'\n    : 'light'\n\nconst saved =\n  typeof window !== 'undefined' && window.localStorage.getItem('theme')\n\nexport const useDarkMode = () => {\n  const [theme, setTheme] = useState(saved ? saved : preference)\n\n  const themeToggler = useCallback(() => {\n    setTheme(theme => {\n      const newTheme = theme === 'light' ? 'dark' : 'light'\n      typeof window !== 'undefined' &&\n        window.localStorage.setItem('theme', newTheme)\n      return newTheme\n    })\n  }, [])\n\n  return [theme, themeToggler]\n}\n"
  },
  {
    "path": "src/pages/404.js",
    "content": "import React from 'react'\nimport Page from '../components/Page'\n\nexport async function getStaticProps() {\n  const { getStaticProps } = require('../helpers/static-props')\n\n  return getStaticProps('index')\n}\n\nexport default props => (\n  <Page\n    {...props}\n    content=\"<h1>404</h1><h2>This page could not be found.</h2>\"\n  />\n)\n"
  },
  {
    "path": "src/pages/[frw]/missing.js",
    "content": "import React from 'react'\nimport Page from '../../components/Page'\n\nexport async function getStaticProps({ params: { frw } }) {\n  const { getStaticProps } = require('../../helpers/static-props')\n\n  return getStaticProps(`${frw}/missing`)\n}\n\nexport async function getStaticPaths() {\n  const frws = ['lodash', 'date-fns']\n\n  const paths = frws.map(frw => {\n    return { params: { frw } }\n  })\n\n  return {\n    paths,\n    fallback: false,\n  }\n}\n\nexport default props => <Page {...props} />\n"
  },
  {
    "path": "src/pages/[frw].js",
    "content": "import React from 'react'\nimport Page from '../components/Page'\nimport dynamic from 'next/dynamic'\n\nconst LibPage = dynamic(import('../components/LibPage'))\n\nexport async function getStaticProps({ params: { frw } }) {\n  const { getStaticProps } = require('../helpers/static-props')\n\n  return getStaticProps(frw)\n}\n\nexport async function getStaticPaths() {\n  const frws = ['lodash', 'date-fns', 'momentjs']\n\n  const paths = frws.map(frw => {\n    return { params: { frw } }\n  })\n\n  return {\n    paths,\n    fallback: false,\n  }\n}\n\nexport default ({ data, configKey, ...props }) => (\n  <Page {...props}>{data && <LibPage data={data} frw={configKey} />}</Page>\n)\n"
  },
  {
    "path": "src/pages/_app.js",
    "content": "import React, { useEffect } from 'react'\nimport { ThemeProvider } from 'styled-components'\nimport { useDarkMode } from '../helpers/use-dark-mode'\nimport AppStyles, { GlobalStyle } from '../helpers/styles'\nimport Nav from '../components/Nav'\n\nconst lightTheme = {\n  variables: `\n    --nc-tx-1: rgb(40, 40, 40);\n    --nc-tx-2: rgb(66, 78, 88);\n    --nc-lk-1: rgb(155, 77, 202);\n    --nc-lk-2: rgb(96, 108, 118);\n    --nc-bg-1: #FFFFFF;\n    --nc-bg-2: #F8F8F8;\n    --nc-bg-3: #e8e8e8;\n    --custom-bk-code: #f0f0f0\n  `,\n}\n\nconst darkTheme = {\n  variables: `\n    --nc-tx-1: #e8e8e8;\n    --nc-tx-2: #ccc;\n    --nc-bg-1: #111111;\n    --nc-bg-2: #181818;\n    --nc-bg-3: #3a3a3a;\n    --nc-lk-1: #99BFFF;\n    --nc-lk-2: rgb(176, 188, 198);\n    --custom-bk-code: #282c34;\n  `,\n}\n\nconst App = ({ Component, pageProps }) => {\n  const [theme, themeToggler] = useDarkMode()\n\n  useEffect(() => {\n    let link = document.getElementById('highlightjs-css')\n    if (!link) {\n      link = document.createElement('link')\n      link.id = 'highlightjs-css'\n      link.rel = 'stylesheet'\n      const head = document.getElementsByTagName('head')[0]\n      head.appendChild(link)\n    }\n\n    const themefile = theme === 'light' ? 'xcode' : 'hybrid'\n    link.href = `https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/${themefile}.min.css`\n\n    // import 'highlight.js/styles/xcode.css'\n  }, [theme])\n\n  return (\n    <ThemeProvider theme={theme === 'light' ? lightTheme : darkTheme}>\n      <GlobalStyle />\n      <AppStyles>\n        <Nav themeToggler={themeToggler} />\n        <Component {...pageProps} />\n      </AppStyles>\n      <div id=\"modal-root\"></div>\n    </ThemeProvider>\n  )\n}\n\nexport default App\n"
  },
  {
    "path": "src/pages/_document.js",
    "content": "import React from 'react'\nimport Document from 'next/document'\nimport { ServerStyleSheet } from 'styled-components'\n\nexport default class MyDocument extends Document {\n  static async getInitialProps(ctx) {\n    const sheet = new ServerStyleSheet()\n    const originalRenderPage = ctx.renderPage\n\n    try {\n      ctx.renderPage = () =>\n        originalRenderPage({\n          enhanceApp: App => props => sheet.collectStyles(<App {...props} />),\n        })\n\n      const initialProps = await Document.getInitialProps(ctx)\n      return {\n        ...initialProps,\n        styles: (\n          <>\n            {initialProps.styles}\n            {sheet.getStyleElement()}\n          </>\n        ),\n      }\n    } finally {\n      sheet.seal()\n    }\n  }\n}\n"
  },
  {
    "path": "src/pages/css.js",
    "content": "import React from 'react'\nimport Page from '../components/Page'\nimport ResponsiveVideo from '../components/ResponsiveVideo'\n\nexport async function getStaticProps() {\n  const { getStaticProps } = require('../helpers/static-props')\n\n  return getStaticProps('css')\n}\n\nexport default props => (\n  <Page {...props}>\n    <ResponsiveVideo\n      title=\"First class styles\"\n      embedUrl=\"https://www.youtube.com/embed/KmtgJ1d4zuY\"\n    />\n  </Page>\n)\n"
  },
  {
    "path": "src/pages/index.js",
    "content": "import React from 'react'\nimport Page from '../components/Page'\n\nexport async function getStaticProps() {\n  const { getStaticProps } = require('../helpers/static-props')\n\n  return getStaticProps('index')\n}\n\nexport default props => <Page {...props} />\n"
  }
]