From 5978f4b1cb81e640d972103792c82d4521773d4b Mon Sep 17 00:00:00 2001 From: Austin Chen Date: Sun, 29 May 2022 17:33:41 -0700 Subject: [PATCH 01/24] Show blog link in sidebar --- web/components/nav/profile-menu.tsx | 23 -------------------- web/components/nav/sidebar.tsx | 33 ++++++++++++++++++++++++++--- 2 files changed, 30 insertions(+), 26 deletions(-) diff --git a/web/components/nav/profile-menu.tsx b/web/components/nav/profile-menu.tsx index 0082e4ca..e026b35d 100644 --- a/web/components/nav/profile-menu.tsx +++ b/web/components/nav/profile-menu.tsx @@ -4,29 +4,6 @@ import { formatMoney } from 'common/util/format' import { Avatar } from '../avatar' import { IS_PRIVATE_MANIFOLD } from 'common/envs/constants' -export function getNavigationOptions(user?: User | null) { - if (IS_PRIVATE_MANIFOLD) { - return [{ name: 'Leaderboards', href: '/leaderboards' }] - } - - if (!user) { - return [ - { name: 'Leaderboards', href: '/leaderboards' }, - { name: 'Discord', href: 'https://discord.gg/eHQBNBqXuh' }, - { name: 'Twitter', href: 'https://twitter.com/ManifoldMarkets' }, - ] - } - - return [ - { name: 'Add funds', href: '/add-funds' }, - { name: 'Leaderboards', href: '/leaderboards' }, - { name: 'Discord', href: 'https://discord.gg/eHQBNBqXuh' }, - { name: 'Twitter', href: 'https://twitter.com/ManifoldMarkets' }, - { name: 'About', href: 'https://docs.manifold.markets' }, - { name: 'Sign out', href: '#', onClick: () => firebaseLogout() }, - ] -} - export function ProfileSummary(props: { user: User }) { const { user } = props return ( diff --git a/web/components/nav/sidebar.tsx b/web/components/nav/sidebar.tsx index 33a84191..db81b97d 100644 --- a/web/components/nav/sidebar.tsx +++ b/web/components/nav/sidebar.tsx @@ -9,6 +9,7 @@ import { PresentationChartLineIcon, ChatAltIcon, SparklesIcon, + NewspaperIcon, } from '@heroicons/react/outline' import clsx from 'clsx' import { sortBy } from 'lodash' @@ -16,16 +17,17 @@ import Link from 'next/link' import { useRouter } from 'next/router' import { useFollowedFolds } from 'web/hooks/use-fold' import { useUser } from 'web/hooks/use-user' -import { firebaseLogin, firebaseLogout } from 'web/lib/firebase/users' +import { firebaseLogin, firebaseLogout, User } from 'web/lib/firebase/users' import { ManifoldLogo } from './manifold-logo' import { MenuButton } from './menu' -import { getNavigationOptions, ProfileSummary } from './profile-menu' +import { ProfileSummary } from './profile-menu' import { getUtcFreeMarketResetTime, useHasCreatedContractToday, } from 'web/hooks/use-has-created-contract-today' import { Row } from '../layout/row' import React, { useEffect, useState } from 'react' +import { IS_PRIVATE_MANIFOLD } from 'common/envs/constants' // Create an icon from the url of an image function IconFromUrl(url: string): React.ComponentType<{ className?: string }> { @@ -47,6 +49,30 @@ function getNavigation(username: string) { ] } +function getMoreNavigation(user?: User | null) { + if (IS_PRIVATE_MANIFOLD) { + return [{ name: 'Leaderboards', href: '/leaderboards' }] + } + + if (!user) { + return [ + { name: 'Leaderboards', href: '/leaderboards' }, + { name: 'Discord', href: 'https://discord.gg/eHQBNBqXuh' }, + { name: 'Twitter', href: 'https://twitter.com/ManifoldMarkets' }, + ] + } + + return [ + { name: 'Add funds', href: '/add-funds' }, + { name: 'Leaderboards', href: '/leaderboards' }, + { name: 'Blog', href: 'https://news.manifold.markets' }, + { name: 'Discord', href: 'https://discord.gg/eHQBNBqXuh' }, + { name: 'Twitter', href: 'https://twitter.com/ManifoldMarkets' }, + { name: 'About', href: 'https://docs.manifold.markets' }, + { name: 'Sign out', href: '#', onClick: () => firebaseLogout() }, + ] +} + const signedOutNavigation = [ { name: 'Home', href: '/home', icon: HomeIcon }, { name: 'Explore', href: '/markets', icon: SearchIcon }, @@ -57,6 +83,7 @@ const signedOutNavigation = [ const signedOutMobileNavigation = [ { name: 'Charity', href: '/charity', icon: HeartIcon }, { name: 'Leaderboards', href: '/leaderboards', icon: CakeIcon }, + { name: 'Blog', href: 'https://news.manifold.markets', icon: NewspaperIcon }, { name: 'Discord', href: 'https://discord.gg/eHQBNBqXuh', @@ -193,7 +220,7 @@ export default function Sidebar(props: { className?: string }) { ))} } /> From 3bc4e7b3362f19980d231c80ccb680cbdd972cb8 Mon Sep 17 00:00:00 2001 From: Austin Chen Date: Tue, 31 May 2022 08:32:11 -0700 Subject: [PATCH 02/24] Embed @wasabipesto's charts on /analytics --- web/pages/analytics.tsx | 47 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 4 deletions(-) diff --git a/web/pages/analytics.tsx b/web/pages/analytics.tsx index 7dc6671f..45e84e85 100644 --- a/web/pages/analytics.tsx +++ b/web/pages/analytics.tsx @@ -15,6 +15,8 @@ import { getDailyBets } from 'web/lib/firebase/bets' import { getDailyComments } from 'web/lib/firebase/comments' import { getDailyContracts } from 'web/lib/firebase/contracts' import { getDailyNewUsers } from 'web/lib/firebase/users' +import { SiteLink } from 'web/components/site-link' +import { Linkify } from 'web/components/linkify' export const getStaticProps = fromPropz(getStaticPropz) export async function getStaticPropz() { @@ -192,9 +194,22 @@ export default function Analytics(props: { } return ( - - - {!IS_PRIVATE_MANIFOLD && } + , + }, + { + title: 'Market Stats', + content: , + }, + { + title: 'Google Analytics', + content: , + }, + ]} + /> ) } @@ -431,7 +446,6 @@ export function FirebaseAnalytics() { return ( <> - <p className="text-gray-500"> Less accurate; includes all viewers (not just signed-in users). </p> @@ -447,3 +461,28 @@ export function FirebaseAnalytics() { </> ) } + +export function WasabiCharts() { + return ( + <> + <p className="text-gray-500"> + Courtesy of <Linkify text="@wasabipesto" />; originally found{' '} + <SiteLink + className="font-bold" + href="https://wasabipesto.com/jupyter/manifold/" + > + here. + </SiteLink> + </p> + <Spacer h={4} /> + <iframe + className="w-full" + height={12000} + src="https://wasabipesto.com/jupyter/manifold/" + frameBorder="0" + style={{ border: 0 }} + allowFullScreen + /> + </> + ) +} From 2fb1c4bb1175543b768ae5d6d39e319430f67fb8 Mon Sep 17 00:00:00 2001 From: Ian Philips <iansphilips@gmail.com> Date: Tue, 31 May 2022 09:51:44 -0600 Subject: [PATCH 03/24] Free markets: Generate new date for setUTCHours --- functions/src/create-contract.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/functions/src/create-contract.ts b/functions/src/create-contract.ts index e30ba608..ab65180b 100644 --- a/functions/src/create-contract.ts +++ b/functions/src/create-contract.ts @@ -69,7 +69,7 @@ export const createContract = newEndpoint(['POST'], async (req, [user, _]) => { // Uses utc time on server: const today = new Date() - let freeMarketResetTime = today.setUTCHours(16, 0, 0, 0) + let freeMarketResetTime = new Date().setUTCHours(16, 0, 0, 0) if (today.getTime() < freeMarketResetTime) { freeMarketResetTime = freeMarketResetTime - 24 * 60 * 60 * 1000 } From a4330cfdf2e4d57b82f796d83d7fb5b2cc440d9f Mon Sep 17 00:00:00 2001 From: Austin Chen <akrolsmir@gmail.com> Date: Tue, 31 May 2022 10:49:07 -0700 Subject: [PATCH 04/24] Publicly display bets placed after 06-01-2022 --- web/components/bets-list.tsx | 9 ++++++--- web/components/user-page.tsx | 28 +++++++++++++++++++++------- 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/web/components/bets-list.tsx b/web/components/bets-list.tsx index 9ec28b14..0bcb3a61 100644 --- a/web/components/bets-list.tsx +++ b/web/components/bets-list.tsx @@ -52,9 +52,12 @@ import { NumericContract } from 'common/contract' type BetSort = 'newest' | 'profit' | 'closeTime' | 'value' type BetFilter = 'open' | 'sold' | 'closed' | 'resolved' | 'all' -export function BetsList(props: { user: User }) { - const { user } = props - const bets = useUserBets(user.id, { includeRedemptions: true }) +export function BetsList(props: { user: User; hideBetsBefore?: number }) { + const { user, hideBetsBefore } = props + let bets = useUserBets(user.id, { includeRedemptions: true }) + // Hide bets before 06-01-2022 if this isn't your own profile + // NOTE: This means profits shown are only starting 06-01-2022 as well. + bets = (bets ?? []).filter((bet) => bet.createdTime >= (hideBetsBefore ?? 0)) const [contracts, setContracts] = useState<Contract[] | undefined>() const [sort, setSort] = useState<BetSort>('newest') diff --git a/web/components/user-page.tsx b/web/components/user-page.tsx index e1398fea..c1099ce8 100644 --- a/web/components/user-page.tsx +++ b/web/components/user-page.tsx @@ -44,6 +44,7 @@ export function UserLink(props: { } export const TAB_IDS = ['markets', 'comments', 'bets'] +const JUNE_1_2022 = new Date('2022-06-01T00:00:00.000Z').valueOf() export function UserPage(props: { user: User @@ -229,14 +230,27 @@ export function UserPage(props: { title: 'Bets', content: ( <div> - <AlertBox - title="Bets are becoming publicly visible on 2022-06-01" - text="Bettor identities have always been traceable through the Manifold API. - However, our interface implied that they were private. - As we develop new features such as leaderboards and bet history, it won't be technically feasible to keep this info private. - For more context, or if you'd like to wipe your bet history, see: https://manifold.markets/Austin/will-all-bets-on-manifold-be-public" + {isCurrentUser && ( + <AlertBox + title="Bets after 2022-06-01 are publicly visible by default." + text="Note that all historical bets are also publicly accessible through the API. + See: https://manifold.markets/Austin/will-all-bets-on-manifold-be-public" + /> + )} + <BetsList + user={user} + hideBetsBefore={isCurrentUser ? 0 : JUNE_1_2022} /> - {isCurrentUser && <BetsList user={user} />} + {!isCurrentUser && ( + <> + <Spacer h={4} /> + <AlertBox + title="Bets before 2022-06-01 are hidden by default." + text="Note that all historical bets are also publicly accessible through the API. + See: https://manifold.markets/Austin/will-all-bets-on-manifold-be-public" + /> + </> + )} </div> ), tabIcon: ( From 5bcff4171beb6f355761a5747ed6980261807142 Mon Sep 17 00:00:00 2001 From: James Grugett <jahooma@gmail.com> Date: Tue, 31 May 2022 14:15:26 -0500 Subject: [PATCH 05/24] Revert "Publicly display bets placed after 06-01-2022" This reverts commit a4330cfdf2e4d57b82f796d83d7fb5b2cc440d9f. --- web/components/bets-list.tsx | 9 +++------ web/components/user-page.tsx | 28 +++++++--------------------- 2 files changed, 10 insertions(+), 27 deletions(-) diff --git a/web/components/bets-list.tsx b/web/components/bets-list.tsx index 0bcb3a61..9ec28b14 100644 --- a/web/components/bets-list.tsx +++ b/web/components/bets-list.tsx @@ -52,12 +52,9 @@ import { NumericContract } from 'common/contract' type BetSort = 'newest' | 'profit' | 'closeTime' | 'value' type BetFilter = 'open' | 'sold' | 'closed' | 'resolved' | 'all' -export function BetsList(props: { user: User; hideBetsBefore?: number }) { - const { user, hideBetsBefore } = props - let bets = useUserBets(user.id, { includeRedemptions: true }) - // Hide bets before 06-01-2022 if this isn't your own profile - // NOTE: This means profits shown are only starting 06-01-2022 as well. - bets = (bets ?? []).filter((bet) => bet.createdTime >= (hideBetsBefore ?? 0)) +export function BetsList(props: { user: User }) { + const { user } = props + const bets = useUserBets(user.id, { includeRedemptions: true }) const [contracts, setContracts] = useState<Contract[] | undefined>() const [sort, setSort] = useState<BetSort>('newest') diff --git a/web/components/user-page.tsx b/web/components/user-page.tsx index c1099ce8..e1398fea 100644 --- a/web/components/user-page.tsx +++ b/web/components/user-page.tsx @@ -44,7 +44,6 @@ export function UserLink(props: { } export const TAB_IDS = ['markets', 'comments', 'bets'] -const JUNE_1_2022 = new Date('2022-06-01T00:00:00.000Z').valueOf() export function UserPage(props: { user: User @@ -230,27 +229,14 @@ export function UserPage(props: { title: 'Bets', content: ( <div> - {isCurrentUser && ( - <AlertBox - title="Bets after 2022-06-01 are publicly visible by default." - text="Note that all historical bets are also publicly accessible through the API. - See: https://manifold.markets/Austin/will-all-bets-on-manifold-be-public" - /> - )} - <BetsList - user={user} - hideBetsBefore={isCurrentUser ? 0 : JUNE_1_2022} + <AlertBox + title="Bets are becoming publicly visible on 2022-06-01" + text="Bettor identities have always been traceable through the Manifold API. + However, our interface implied that they were private. + As we develop new features such as leaderboards and bet history, it won't be technically feasible to keep this info private. + For more context, or if you'd like to wipe your bet history, see: https://manifold.markets/Austin/will-all-bets-on-manifold-be-public" /> - {!isCurrentUser && ( - <> - <Spacer h={4} /> - <AlertBox - title="Bets before 2022-06-01 are hidden by default." - text="Note that all historical bets are also publicly accessible through the API. - See: https://manifold.markets/Austin/will-all-bets-on-manifold-be-public" - /> - </> - )} + {isCurrentUser && <BetsList user={user} />} </div> ), tabIcon: ( From 6106eeee95c9dd87492b910b2c2221ce33aa967a Mon Sep 17 00:00:00 2001 From: Sinclair Chen <sinclair@daommo.com> Date: Tue, 31 May 2022 13:23:01 -0700 Subject: [PATCH 06/24] copyedit: donations available after May --- web/pages/charity/index.tsx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/web/pages/charity/index.tsx b/web/pages/charity/index.tsx index f33ceb33..98494e53 100644 --- a/web/pages/charity/index.tsx +++ b/web/pages/charity/index.tsx @@ -57,9 +57,8 @@ export default function Charity(props: { <Col className="max-w-xl gap-2"> <Title className="!mt-0" text="Manifold for Good" /> <div className="mb-6 text-gray-500"> - Donate your winnings to charity! Through the month of May, every{' '} - {formatMoney(100)} you contribute turns into $1 USD sent to your - chosen charity. + Donate your winnings to charity! Every {formatMoney(100)} you give + turns into $1 USD we send to your chosen charity. <Spacer h={5} /> Together we've donated over ${Math.floor(totalRaised / 100)} USD so far! From c640b4c830c29ce5e350ae857ea0ee8c7376e4fa Mon Sep 17 00:00:00 2001 From: Marshall Polaris <marshall@pol.rs> Date: Tue, 31 May 2022 14:30:58 -0700 Subject: [PATCH 07/24] Bring docs repo into main repo as new workspace (#369) * Bring docs repo into main repo as new workspace * Pin @types/react to 17.x --- docs/.gitattributes | 2 + docs/.gitignore | 20 + docs/.prettierrc | 7 + docs/README.md | 3 + docs/babel.config.js | 3 + docs/docs/about.md | 85 + docs/docs/api.md | 369 + docs/docs/binary-markets.md | 52 + docs/docs/bounties.md | 67 + docs/docs/faq.md | 126 + docs/docusaurus.config.js | 133 + docs/package.json | 47 + docs/sidebars.js | 31 + .../src/components/HomepageFeatures/index.tsx | 70 + .../HomepageFeatures/styles.module.css | 11 + docs/src/css/custom.css | 44 + docs/src/pages/markdown-page.md | 7 + docs/static/.nojekyll | 0 docs/static/img/docusaurus.png | Bin 0 -> 5142 bytes docs/static/img/favicon.ico | Bin 0 -> 3626 bytes docs/static/img/logo.svg | 1 + .../img/tutorial/docsVersionDropdown.png | Bin 0 -> 25102 bytes docs/static/img/tutorial/localeDropdown.png | Bin 0 -> 30020 bytes .../static/img/undraw_docusaurus_mountain.svg | 171 + docs/static/img/undraw_docusaurus_react.svg | 170 + docs/static/img/undraw_docusaurus_tree.svg | 40 + docs/tsconfig.json | 7 + package.json | 4 + yarn.lock | 6130 ++++++++++++++++- 29 files changed, 7503 insertions(+), 97 deletions(-) create mode 100644 docs/.gitattributes create mode 100644 docs/.gitignore create mode 100644 docs/.prettierrc create mode 100644 docs/README.md create mode 100644 docs/babel.config.js create mode 100644 docs/docs/about.md create mode 100644 docs/docs/api.md create mode 100644 docs/docs/binary-markets.md create mode 100644 docs/docs/bounties.md create mode 100644 docs/docs/faq.md create mode 100644 docs/docusaurus.config.js create mode 100644 docs/package.json create mode 100644 docs/sidebars.js create mode 100644 docs/src/components/HomepageFeatures/index.tsx create mode 100644 docs/src/components/HomepageFeatures/styles.module.css create mode 100644 docs/src/css/custom.css create mode 100644 docs/src/pages/markdown-page.md create mode 100644 docs/static/.nojekyll create mode 100644 docs/static/img/docusaurus.png create mode 100644 docs/static/img/favicon.ico create mode 100644 docs/static/img/logo.svg create mode 100644 docs/static/img/tutorial/docsVersionDropdown.png create mode 100644 docs/static/img/tutorial/localeDropdown.png create mode 100644 docs/static/img/undraw_docusaurus_mountain.svg create mode 100644 docs/static/img/undraw_docusaurus_react.svg create mode 100644 docs/static/img/undraw_docusaurus_tree.svg create mode 100644 docs/tsconfig.json diff --git a/docs/.gitattributes b/docs/.gitattributes new file mode 100644 index 00000000..dfe07704 --- /dev/null +++ b/docs/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 00000000..b2d6de30 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,20 @@ +# Dependencies +/node_modules + +# Production +/build + +# Generated files +.docusaurus +.cache-loader + +# Misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/docs/.prettierrc b/docs/.prettierrc new file mode 100644 index 00000000..bd18729f --- /dev/null +++ b/docs/.prettierrc @@ -0,0 +1,7 @@ +{ + "tabWidth": 2, + "useTabs": false, + "semi": false, + "trailingComma": "es5", + "singleQuote": true +} diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..381a221f --- /dev/null +++ b/docs/README.md @@ -0,0 +1,3 @@ +# docs + +Manifold Markets Docs diff --git a/docs/babel.config.js b/docs/babel.config.js new file mode 100644 index 00000000..67526481 --- /dev/null +++ b/docs/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: [require.resolve('@docusaurus/core/lib/babel/preset')], +} diff --git a/docs/docs/about.md b/docs/docs/about.md new file mode 100644 index 00000000..7d8220ee --- /dev/null +++ b/docs/docs/about.md @@ -0,0 +1,85 @@ +--- +id: about +slug: / +--- + +# About Manifold Markets + +Manifold Markets lets anyone create a prediction market on any topic. Win virtual money betting on what you know, from **[chess tournaments](https://manifold.markets/SG/will-magnus-carlsen-lose-any-regula)** to **[lunar collisions](https://manifold.markets/Duncan/will-the-wayward-falcon-9-booster-h)** to **[newsletter subscriber rates](https://manifold.markets/Nu%C3%B1oSempere/how-many-additional-subscribers-wil)** - or learn about the future by creating your own market! + +### **What are prediction markets?** + +**Prediction markets are a place where you can bet on the outcome of future events.** + +Consider a question like: "Will Democrats win the 2024 US presidential election?" + +If I think the Democrats are very likely to win, and you disagree, I might offer $70 to your $30 (with the winner taking home $100 total). This set of bets imply a 70% probability of the Democrats winning. + +Now, you or I could be mistaken and overshooting the true probability one way or another. If so, there's an incentive for someone else to bet and correct it! Over time, the implied probability will converge to the **[market's best estimate](https://en.wikipedia.org/wiki/Efficient-market_hypothesis)**. Since these probabilities are public, anyone can use them to make better decisions! + +### **How does Manifold Markets work?** + +1. **Anyone can create a market for any yes-or-no question.** + + You can ask questions about the future like "Will Taiwan remove its 14-day COVID quarantine by Jun 01, 2022?" If the market thinks this is very likely, you can plan more activities for your trip. + + You can also ask subjective, personal questions like "Will I enjoy my 2022 Taiwan trip?". Then share the market with your family and friends and get their takes! + +2. **Anyone can bet on a market using Manifold Dollars (M$), our platform currency.** + + You get M$ 1,000 just for signing up, so you can start betting immediately! When a market creator decides an outcome in your favor, you'll win Manifold Dollars from people who bet against you. + +More questions? Check out **[this community-driven FAQ](https://outsidetheasylum.blog/manifold-markets-faq/)**! + +### **Can prediction markets work without real money?** + +Yes! There is substantial evidence that play-money prediction markets provide real predictive power. Examples include **[sports betting](http://www.electronicmarkets.org/fileadmin/user_upload/doc/Issues/Volume_16/Issue_01/V16I1_Statistical_Tests_of_Real-Money_versus_Play-Money_Prediction_Markets.pdf)** and internal prediction markets at firms like **[Google](https://www.networkworld.com/article/2284098/google-bets-on-value-of-prediction-markets.html)**. + +Our overall design also ensures that good forecasting will come out on top in the long term. In the competitive environment of the marketplace, bettors that are correct more often will gain influence, leading to better-calibrated forecasts over time. + +Since our launch, we've seen hundreds of users trade each day, on over a thousand different markets! You can track the popularity of our platform at **[http://manifold.markets/analytics](http://manifold.markets/analytics)**. + +### **Why is this important?** + +Prediction markets aggregate and reveal crucial information that would not otherwise be known. They are a bottom-up mechanism that can influence everything from politics, economics, and business, to scientific research and education. + +Prediction markets can predict **[which research papers will replicate](https://www.pnas.org/content/112/50/15343)**; which drug is the most effective; which policy would generate the most tax revenue; which charity will be underfunded; or which startup idea is the most promising. By surfacing and quantifying our collective knowledge, we as a society become wiser. + +### **How are markets resolved?** + +The creator of the prediction market decides the outcome and earns a commission based on the trade volume. + +This simple resolution mechanism has surprising benefits in allowing a diversity of views to flourish. Competition between market creators will lead to traders flocking to the creators with good judgment on market resolution. + +What's more, when the creator is free to use their judgment, many new kinds of prediction markets can be created that are less objective or even personal. (E.g. "Will I enjoy participating in the Metaverse in 2023?") + +<!-- ### **Can I create private markets?** + +Soon! We're running a pilot version of Manifold for Teams - private Manifold instances where you can discuss internal topics and predict on outcomes for your organization. + +If this sounds like something you’d want, **[join the waitlist here](https://docs.google.com/forms/d/e/1FAIpQLSfM_rxRHemCjKE6KPiYXGyP2nBSInZNKn_wc7yS1-rvlLAVnA/viewform?usp=sf_link)**! --> + +### **Who are we?** + +Manifold Markets is currently a team of three: + +- James Grugett +- Stephen Grugett +- Austin Chen + +We've previously launched consumer-facing startups (**[Throne](https://throne.live/)**, **[One Word](http://oneword.games/platform)**), and worked at top tech and trading firms (Google, Susquehanna). + +## **Talk to us!** + +Questions? Comments? Want to create a market? Talk to us! + +- Email: **[info@manifold.markets](mailto:info@manifold.markets)** +- Office hours: + - **[Calendly — Austin](https://calendly.com/austinchen/manifold)** + - **[Calendly — James](https://calendly.com/jamesgrugett/manifold)** +- Chat: **[Manifold Markets Discord server](https://discord.gg/eHQBNBqXuh)** + +## **Further Reading** + +- **[Above the fold](https://manifoldmarkets.substack.com/)**, our newsletter +- **[Scott Alexander on play-money prediction markets](https://astralcodexten.substack.com/p/play-money-and-reputation-systems)** diff --git a/docs/docs/api.md b/docs/docs/api.md new file mode 100644 index 00000000..da692afc --- /dev/null +++ b/docs/docs/api.md @@ -0,0 +1,369 @@ +# API + +:::caution + +Our API is still in alpha — things may change or break at any time! + +::: + +Manifold currently supports a basic, read-only API for getting information about our markets. + +If you have questions, come chat with us on [Discord](https://discord.com/invite/eHQBNBqXuh). We’d love to hear about what you build! + +## List out all markets + +### `/v0/markets` + +- Example request + ``` + http://manifold.markets/api/v0/markets + ``` +- Example response + ```json + [ + { + "id":"FKtYX3t8ZfIp5gytJWAI", + "creatorUsername":"JamesGrugett", + "creatorName":"James Grugett", + "createdTime":1645139406452, + "closeTime":1647406740000, + "question":"What will be the best assessment of the Free response feature on March 15th?", + "description":"Hey guys, let's try this out!\nWe will see how people use the new Free response market type over the next month. Then I will pick the answer that I think best describes the consensus view of this feature on March 15th. Cheers.", + "tags":[ + "ManifoldMarkets" + ], + "url":"https://manifold.markets/JamesGrugett/what-will-be-the-best-assessment-of", + "pool":null, + "probability":0, + "volume7Days":100, + "volume24Hours":100, + "isResolved":false, + ... + } + ``` +- Response type: Array of `LiteMarket` + + ```tsx + // Information about a market, but without bets or comments + type LiteMarket = { + // Unique identifer for this market + id: string + + // Attributes about the creator + creatorUsername: string + creatorName: string + createdTime: number + creatorAvatarUrl?: string + + // Market attributes. All times are in milliseconds since epoch + closeTime?: number // Min of creator's chosen date, and resolutionTime + question: string + description: string + tags: string[] + url: string + + pool: number + probability: number + volume7Days: number + volume24Hours: number + isResolved: boolean + resolutionTime?: number + resolution?: string + } + ``` + +## Get information about one market + +### `/v0/market/[marketId]` + +- Example request + + ``` + https://manifold.markets/api/v0/market/3zspH9sSzMlbFQLn9GKR + ``` + +- <details><summary>Example response</summary><p> + + ```json + { + "id": "3zspH9sSzMlbFQLn9GKR", + "creatorUsername": "Austin", + "creatorName": "Austin Chen", + "createdTime": 1644103005345, + "closeTime": 1667894340000, + "question": "Will Carrick Flynn win the general election for Oregon's 6th District?", + "description": "The Effective Altruism movement usually stays out of politics, but here is a recent, highly-upvoted endorsement of donating to Carrick Flynn as a high-impact area: https://forum.effectivealtruism.org/posts/Qi9nnrmjwNbBqWbNT/the-best-usd5-800-i-ve-ever-donated-to-pandemic-prevention\nFurther reading: https://ballotpedia.org/Oregon%27s_6th_Congressional_District_election,_2022\n\n#EffectiveAltruism #Politics", + "tags": ["EffectiveAltruism", "Politics"], + "url": "https://manifold.markets/Austin/will-carrick-flynn-win-the-general", + "pool": 400.0916328426886, + "probability": 0.34455568984059187, + "volume7Days": 326.9083671573114, + "volume24Hours": 0, + "isResolved": false, + "bets": [ + { + "createdTime": 1644103005345, + "isAnte": true, + "shares": 83.66600265340756, + "userId": "igi2zGXsfxYPgB0DJTXVJVmwCOr2", + "amount": 70, + "probAfter": 0.3, + "probBefore": 0.3, + "id": "E1MjiVYBM0GkqRXhv5cR", + "outcome": "NO", + "contractId": "3zspH9sSzMlbFQLn9GKR" + }, + { + "contractId": "3zspH9sSzMlbFQLn9GKR", + "probAfter": 0.3, + "shares": 54.77225575051661, + "userId": "igi2zGXsfxYPgB0DJTXVJVmwCOr2", + "isAnte": true, + "createdTime": 1644103005345, + "id": "jn3iIGwD5f0vxOHxo62o", + "amount": 30, + "probBefore": 0.3, + "outcome": "YES" + }, + { + "shares": 11.832723364874056, + "probAfter": 0.272108843537415, + "userId": "PkBnU8cAZiOLa0fjxiUzMKsFMYZ2", + "contractId": "3zspH9sSzMlbFQLn9GKR", + "outcome": "NO", + "amount": 10, + "id": "f6sHBab6lbGw9PsnVXdc", + "probBefore": 0.3, + "createdTime": 1644203305863 + }, + { + "userId": "BTksWMdCeHfDitWVaAZdjLSdu3o1", + "amount": 10, + "id": "Vfui2KOQwy7gkRPP7xc6", + "shares": 18.12694184700382, + "outcome": "YES", + "createdTime": 1644212358699, + "contractId": "3zspH9sSzMlbFQLn9GKR", + "probBefore": 0.272108843537415, + "probAfter": 0.3367768595041322 + }, + { + "contractId": "3zspH9sSzMlbFQLn9GKR", + "probAfter": 0.3659259259259259, + "userId": "BTksWMdCeHfDitWVaAZdjLSdu3o1", + "probBefore": 0.3367768595041322, + "amount": 5, + "outcome": "YES", + "createdTime": 1644433184238, + "id": "eGI1VwAWF822LkcmOUot", + "shares": 8.435122540124937 + }, + { + "userId": "NHA7Gv9nNpb7b60GpLD3oFkBvPa2", + "shares": 59.79133423528123, + "amount": 50, + "probAfter": 0.24495867768595042, + "contractId": "3zspH9sSzMlbFQLn9GKR", + "createdTime": 1644693685223, + "probBefore": 0.3659259259259259, + "id": "fbU0DbmDWMnubggpQotw", + "outcome": "NO" + }, + { + "amount": 25, + "userId": "iXw2OSyhs0c4QW2fAfK3yqmaYDv1", + "probAfter": 0.20583333333333328, + "outcome": "NO", + "shares": 28.3920247989266, + "contractId": "3zspH9sSzMlbFQLn9GKR", + "createdTime": 1644695698202, + "id": "k9hyljJD3MMXK2OYxTsR", + "probBefore": 0.24495867768595042 + }, + { + "createdTime": 1644716782308, + "shares": 11.17480183821209, + "probBefore": 0.20583333333333328, + "userId": "clvYFhVDzccYu20OUc5NBKJyDxj2", + "probAfter": 0.1927679500520291, + "id": "yYkZ4JpLgZHrRQUugpCD", + "outcome": "NO", + "contractId": "3zspH9sSzMlbFQLn9GKR", + "amount": 10 + }, + { + "contractId": "3zspH9sSzMlbFQLn9GKR", + "outcome": "YES", + "amount": 30, + "id": "IU2Hb1DesgKIN140BkhE", + "shares": 58.893424111838016, + "createdTime": 1644736846538, + "probBefore": 0.1927679500520291, + "userId": "BTksWMdCeHfDitWVaAZdjLSdu3o1", + "probAfter": 0.3289359861591695 + }, + { + "isSold": true, + "userId": "5zeWhzi9nlNNf5C9TVjshAN7QOd2", + "createdTime": 1644751343436, + "outcome": "NO", + "contractId": "3zspH9sSzMlbFQLn9GKR", + "amount": 25, + "probBefore": 0.3289359861591695, + "id": "fkCxVH7THaDbEhyJjXVk", + "probAfter": 0.2854194032651529, + "shares": 30.022082866721178 + }, + { + "probAfter": 0.2838618650900295, + "id": "Ao05LRRMXVWw8d7LtwhL", + "outcome": "NO", + "probBefore": 0.2854194032651529, + "shares": 1.1823269994736165, + "userId": "pUF3dMs9oLNpgU2LYtFmodaoDow1", + "amount": 1, + "contractId": "3zspH9sSzMlbFQLn9GKR", + "createdTime": 1644768321860 + }, + { + "id": "LJ8H8DTuK7CH9vN3u0Sd", + "createdTime": 1644771352663, + "shares": 113.5114039238785, + "probAfter": 0.17510453314667793, + "outcome": "NO", + "amount": 100, + "probBefore": 0.2838618650900295, + "contractId": "3zspH9sSzMlbFQLn9GKR", + "userId": "ebX5nzwrs8V0M5UynWvbtcj7KAI2" + }, + { + "outcome": "YES", + "amount": 20, + "probBefore": 0.17510453314667793, + "id": "TECEF9I5FqTqt6uTIsJX", + "contractId": "3zspH9sSzMlbFQLn9GKR", + "createdTime": 1644805061501, + "shares": 43.88281646028875, + "userId": "lHxg3179e4amWm5LJhJoJrcWK482", + "probAfter": 0.24160019644701852 + }, + { + "amount": -25.908367157311375, + "id": "G3u2EzETWOyrGo15wtiQ", + "outcome": "NO", + "createdTime": 1644847494264, + "sale": { + "betId": "fkCxVH7THaDbEhyJjXVk", + "amount": 25.862948799445807 + }, + "probAfter": 0.26957595409437557, + "shares": -30.022082866721178, + "probBefore": 0.24160019644701852, + "contractId": "3zspH9sSzMlbFQLn9GKR", + "userId": "5zeWhzi9nlNNf5C9TVjshAN7QOd2" + }, + { + "createdTime": 1644853733891, + "userId": "lbTXACtCnIacKDloKfXxYkDn0zM2", + "amount": 10, + "id": "z443uCkbYRLZW9QdXu1u", + "probAfter": 0.25822886066938844, + "contractId": "3zspH9sSzMlbFQLn9GKR", + "outcome": "NO", + "shares": 11.655141043149968, + "probBefore": 0.26957595409437557 + }, + { + "userId": "BTksWMdCeHfDitWVaAZdjLSdu3o1", + "amount": 15, + "shares": 28.311399392675895, + "id": "axoryV664uzHZ0jzWSXR", + "outcome": "YES", + "probBefore": 0.25822886066938844, + "contractId": "3zspH9sSzMlbFQLn9GKR", + "createdTime": 1644863335939, + "probAfter": 0.3033936853512369 + }, + { + "createdTime": 1644987330420, + "id": "jHAYDdZRkDw3lFoDXdmm", + "shares": 26.353902809992064, + "userId": "BTksWMdCeHfDitWVaAZdjLSdu3o1", + "contractId": "3zspH9sSzMlbFQLn9GKR", + "probAfter": 0.34455568984059187, + "probBefore": 0.3033936853512369, + "amount": 15, + "outcome": "YES" + } + ], + "comments": [ + { + "contractId": "3zspH9sSzMlbFQLn9GKR", + "userUsername": "Celer", + "userAvatarUrl": "https://lh3.googleusercontent.com/a/AATXAJwp0vAolZgOmT7GbzFq7mOf8lr0BFEB_LqWWfZk=s96-c", + "userId": "NHA7Gv9nNpb7b60GpLD3oFkBvPa2", + "text": "It's a D+3 district, and the person we're pushing is functionally an outsider. I maxed my donation, but 25%, what I bought down to, implying even odds on both the general and the primary, seems if anything optimistic.", + "createdTime": 1644693740967, + "id": "fbU0DbmDWMnubggpQotw", + "betId": "fbU0DbmDWMnubggpQotw", + "userName": "Celer" + } + ] + } + ``` + + </p> + </details> + +- Response type: A `FullMarket` + + ```tsx + // A complete market, along with bets and comments + type FullMarket = LiteMarket & { + bets: Bet[] + comments: Comment[] + } + + type Bet = { + id: string + contractId: string + + amount: number // bet size; negative if SELL bet + outcome: string + shares: number // dynamic parimutuel pool weight; negative if SELL bet + + probBefore: number + probAfter: number + + sale?: { + amount: number // amount user makes from sale + betId: string // id of bet being sold + } + + isSold?: boolean // true if this BUY bet has been sold + isAnte?: boolean + + createdTime: number + } + ``` + +### `/v0/slug/[marketSlug]` + +This is a convenience endpoint for getting info about a market from it slug (everything after the last slash in a market’s URL). + +- Example request + ``` + https://manifold.markets/api/v0/slug/will-carrick-flynn-win-the-general + ``` +- Response type: A `FullMarket` ; same as above. + +## Deprecated + +- Our old Markets API was available at [https://us-central1-mantic-markets.cloudfunctions.net/markets](https://us-central1-mantic-markets.cloudfunctions.net/markets) +- We don’t plan on continuing to change this, but we’ll support this endpoint until 2022-03-30 + +## Changelog + +- 2022-02-28: Add `resolutionTime` to markets, change `closeTime` definition +- 2022-02-19: Removed user IDs from bets +- 2022-02-17: Released our v0 API, with `/markets`, `/market/[marketId]`, and `/slug/[slugId]` diff --git a/docs/docs/binary-markets.md b/docs/docs/binary-markets.md new file mode 100644 index 00000000..99eaee48 --- /dev/null +++ b/docs/docs/binary-markets.md @@ -0,0 +1,52 @@ +# Guide to YES/NO markets + +# Overview + +Historically, Manifold used a special type of automated market marker based on a dynamic pari-mutuel (DPM) betting +system. Free response and numeric markets still use this system. Binary markets created prior to March 15, 2022 used +this system. + +Binary markets created after March 15 use a constant-function market maker which holds constant the weighted geometric +mean, with weights equal to the probabilities chosen by the market creator at creation. This design was inspired by +Uniswap's CPMM and a suggestion from Manifold user Pepe. + +# Basic facts + +- Markets are structured around a question with a binary outcome. +- Traders can place a bet on either YES or NO and receive shares in the outcome in return. +- 1 YES share = M$1 if the event happens. 1 NO share = M$1 if the event does not happen. + - Notice that 1 YES share + 1 NO share = M$1. If you ever get multiple YES and NO shares, they will cancel out and you will be left with cash. +- When the market is resolved, you will be paid out according to your shares. If you own 100 YES shares, if the event resolves YES, you will earn M$100. (If the event resolves NO, you will earn M$0). +- The creator of each market is responsible for resolving each market YES or NO. + - Creators can also resolve N/A to cancel all transactions and return the money, or resolve to a particular probability (say 50%). + +# Betting + +- Betting on YES will increase the market’s implied probability; betting on NO will decrease the probability. +- Manifold's automated market automatically adjusts the market probability after each trade and determines how many shares a user will get for their bet. +- You can sell back your shares for cash. If you sell YES shares, the market probability will go down. If you sell NO shares, the probability will go up. +- Manifold charges fees on each trade. They are baked into the number of shares you receive. + - If you place a M$100 bet on YES when the probability is 50%, you may end up with 150 YES shares. These shares already include our fees. Notice also that when you buy, the probability goes up, so you are not getting in exactly at 200 shares or 50%. + - Our fee schedule is currently: 13% * (1 - post-bet probability) * bet amount + - The post-trade probability is what the market probability would be after your bet if there were no fees. + - Example: + - If you bet M$100 on NO and the resulting probability without fees would be 10%, then you pay M$100 * 13% * 10% = M$1.3. + - If you bet M$100 on YES and the resulting probability without fees would be 90%, then you pay `M$100 * 13% * 10% = M$1.3`. + - The fees are used to provide a commission to the market creator and to subsidize trading within the market. + - The market creator’s commission is paid out only after the market is resolved. + - No fees are levied on sales. + +# Market creation + +- Users can create a market on any question they want. +- When you create a market, you must choose an initial probability and a close date (after which trading will halt). +- You must also pay a M$ 50 market creation fee, which is used to subsidize trading on your market. +- You will earn a commission on all bets placed in your market. +- You are responsible for resolving your market in a timely manner. All the fees you earned as a commission will be paid out after resolution. + +# Liquidity + +- The liquidity in a market is the amount of capital available for traders to trade against. +- The more liquidity, the greater incentive there is for traders to bet, the more accurate the market will be. +- You can add liquidity to a market you are interested in to increase the incentives for traders to participate. You can think of added liquidity as a subsidy for getting your question answered. +- You can add liquidity to any market by opening up the market info popup window located in the (...) section of the header on the market page. diff --git a/docs/docs/bounties.md b/docs/docs/bounties.md new file mode 100644 index 00000000..62aeb072 --- /dev/null +++ b/docs/docs/bounties.md @@ -0,0 +1,67 @@ +# Bounties + +## What are Manifold bounties? + +From time to time, a member of our community goes above and beyond in helping Manifold make prediction markets accessible & ubiquitous. We’d like to recognize such contributions publicly, and include a token of our appreciation in the form of M$! + +Examples of community work that may be eligible for a bounty: + +- Blog posts, markets, or comments which lead us to significantly change our views +- A track record of creating markets that help people make better decisions +- Promoting Manifold & forecasting to a wider audience +- Identifying serious exploits with our financial infrastructure + +Our community is the beating heart of Manifold; your individual contributions are what make this platform valuable at all. Thanks to everyone listed here (as well as countless unnamed others) for your help & support! + +## Awarded bounties + +🥧 *Awarded 2022-03-14* + +**[Kevin Zielnicki](https://manifold.markets/kjz): M$ 10,000** + +- For identifying issues with our Dynamic Parimutuel Market Maker in an [excellent blog post](https://kevin.zielnicki.com/2022/02/17/manifold/) (and [associated market](https://manifold.markets/kjz/will-manifolds-developers-agree-wit)), leading us to change to a different mechanism. + +**[Pepe](https://manifold.markets/Pepe): M$ 10,000** + +- For developing the function used in our Constant Function Market Maker and working with us to polish it on Discord, making it easier for us to provision liquidity compared to a CPMM. + +**[Gurkenglas](https://manifold.markets/Gurkenglas): M$ 5,000** + +- For concrete suggestions on Discord around improving our market maker algorithms, and creating useful graphs to make our different market makers more legible. + +**[Scott Alexander](https://manifold.markets/ScottAlexander): M$ 5,000** + +- For [developing and publicizing the idea of providing interest-free loans on each market](https://astralcodexten.substack.com/p/play-money-and-reputation-systems), helping make long-term markets more accurate. + +**[David Glidden](https://manifold.markets/dglid): M$ 5,000** + +- For taking on the mantle of [@MetaculusBot](https://manifold.markets/MetaculusBot), which allows traders access to a wider spread of topics, and permits head-to-head comparisons between our prediction markets and other forecasting platforms. + +**[Isaac King](https://manifold.markets/IsaacKing): M$ 5,000** + +- For [compiling a comprehensive FAQ](https://outsidetheasylum.blog/manifold-markets-faq/) that answers a variety of questions that new users commonly face, and also inspiring us to move to [this open-source docs platform](http://docs.manifold.markets/). + +**[Blazer](https://manifold.markets/BlazingDarkness): M$ 2,500** + +- For [calling out our mistake](https://manifold.markets/BlazingDarkness/was-it-an-unpleasant-surprise-when) in retroactively publicizing all market creator’s trades, leading us to revert this feature entirely. + +⛑️ _Awarded 2022-01-09_ + +**[Duncan](https://manifold.markets/Duncan): USD $50** + +- For identifying and confidentially reporting an exploit where entering negative numbers into the trade box would allow the trade to go through. +- _Note: this was denominated in USD, as it predated the creation of our bounty program._ + +## Final note + +If a particular contribution isn't listed here, that doesn't mean we didn't really appreciate it. There’s so much great work by our community; we aren't always able to catch them all! + +If you feel that someone's exceptional contribution has fallen through the cracks (including your own!), please consider creating a market for “Will <X\> be recognized for a Manifold bounty?” and posting it on our Discord. Thanks! + +## See also + +- [Will Manifold implement retroactive public goods funding by June 1?](https://manifold.markets/Austin/will-manifold-implement-retroactive) +- [Bounties as described on LessWrong](https://www.lesswrong.com/tag/bounties-active) +- Mistakes pages we admire: [Scott Alexander](https://astralcodexten.substack.com/p/mistakes), [Nintil](https://nintil.com/mistakes), [80K Hours](https://80000hours.org/about/credibility/evaluations/mistakes/) +- [Donald Knuth’s reward checks](https://en.wikipedia.org/wiki/Knuth_reward_check) + ![https://imgs.xkcd.com/comics/applied_math.png](https://imgs.xkcd.com/comics/applied_math.png) diff --git a/docs/docs/faq.md b/docs/docs/faq.md new file mode 100644 index 00000000..ed153509 --- /dev/null +++ b/docs/docs/faq.md @@ -0,0 +1,126 @@ +# Community FAQ + +## General + +### Do I have to pay real money in order to participate? + +Nope! Each account starts with a free M$ 1000. If you invest it wisely, you can increase your total without ever needing to put any real money into the site. + +### What is the name for the currency Manifold uses, represented by M$? + +Manifold Dollars, or mana for short. + + +### Can M$ be sold for real money? + +No. Gambling laws put many restrictions on real-money prediction markets, so Manifold uses play money instead. + +### How do the free response markets work? + +Any user can enter a response and bet on it, or they can bet on on other people's responses. The response probabilities are weighted proportionally to how many people have bet on them. The market creator's ante goes into a "none of the above" pseudo-option that can't be bet on and can't be chosen as a correct answer when the market is resolved. (This means that free response markets tend to lose their creator almost their entire ante, whereas normal markets only lose them a small fraction that's proportional to how well they chose their starting odds. It also means that if there are only a finite number of options that could win, traders can make guaranteed money by investing in them all equally.) See [here](https://manifoldmarkets.substack.com/p/above-the-fold-milestones-and-new) for more information. + +### How accurate are the market probabilities? + +In general, prediction markets are very accurate. They do have some known issues, most of which can be found on the [Wikipedia page.](https://en.wikipedia.org/wiki/Prediction_market#Accuracy). There are also a few factors that are specific to Manifold Markets: + +- Manifold uses play money for their markets, so there's less of an incentive for people to invest safely. People often goof around with silly markets and investments that they don't expect to win M$ from. +- Anyone can create a market on Manifold, and there's nothing preventing the creator of a market from trying to manipulate it to make a profit. +- Manifold Markets is a new project and has a large number of individual markets, which means that many of their markets don't have many participants, sometimes less than 5 people. +- Manifold's betting system isn't perfect and has some sources of error, discussed in detail [here](https://kevin.zielnicki.com/2022/02/17/manifold/). + +As a general heuristic, check the total pool for the market in question. The more M$ there is in the market, the more likely it is to be accurate. + + +### Can I participate without having a Google account? + +No. See [here](https://manifold.markets/hamnox/will-manifold-markets-add-nongoogle) for the probability that this changes. + +## Placing and winning bets + +### The payout probabilities I'm shown sometimes aren't right. For example if a market is at 15% and I bet M$ 1 on "no", it tells me that I'll make a 42% profit if I win, but the listed payout is just M$ 1. What's going on? + +Payout amounts are visually rounded to the nearest M$ 1, and only integer amounts can be put into markets. Behind the scenes however, your balance does track fractional amounts, so you're making a M$ 0.42 profit on that bet. Once you win another M$ 0.08, that fractional M$ 0.5 will display as an extra M$ 1 in your account. (There's no way to view your exact balance, you can only see the rounded value.) + +### What are the rules about insider trading? (Using private information about a market to make a profit.) + +It's not only allowed, but encouraged. The whole point of a prediction market is to uncover and amplify this sort of hidden information. For example, if there's a market like "will [company] make [decision]?" and you work for that company and know what decision they're going to make, you can use that information to win M$ and make the market more accurate at the same time. (Subject to your company's policies on disclosing internal information of course.) However, if the reason you have private information is because you're colluding with the market creator, this will likely earn both of you a bad reputation and people will be less interested in participating in your markets in the future. + +### Can I see who is buying/selling in a market? + +Trading is anonymous by default. You'll only see their username if they leave a comment. As an exception, trading from the market's creator has their name attached. + +## Creating and resolving markets + +### Is there any benefit to creating markets? + +You get your question answered! Plus, you earn a commission on trades in your markets. + +### What can I create a market about? + +Anything you want to! People ask about politics, science, gaming, and even [their personal lives](https://www.smbc-comics.com/?id=2418). Take a look at the [current list of markets](https://manifold.markets/markets) to see what sorts of things people ask about. + +### What's the difference between a market being "closed" and being "resolved"? + +A market being "closed" means that people can no longer place or sell bets, "locking in" the current probability. Markets close when the close date of the market is met. A market being "resolved" means that the market creator has indicated a given resolution to the market's question, such as "yes", "no", "N/A", or a certain probability. This is the point at which people are cashed out of the market. Resolving a market automatically closes it, but a market can close days, weeks, or even years before it gets resolved. + +### What does "PROB" mean? + +Resolving a market as "PROB" means that it's resolved at a certain probability, chosen by the market creator. PROB 100% is the same as "yes", and PROB 0% is the same as "no". For example, if a market is resolved at PROB 75%, anyone who bought "yes" at less than 75% will (usually) make a profit, and anyone who bought "yes" at greater than 75% will (usually) take a loss. Vice versa for "no". + +### What happens if a market creator resolves a market incorrectly, or doesn't resolve it at all? + +Nothing. The idea is for Manifold Markets to function with similar freedom and versatility to a Twitter poll, but with more accurate results due to the dynamics of prediction markets. Individual market resolution is not enforced by the site, so if you don't trust a certain user to judge their markets fairly, you probably shouldn't participate in their markets. + +### How do I tell if a certain market creator is trustworthy? + +Look at their market resolution history on their profile page. If their past markets have all been resolved correctly, their future ones probably will be too. You can also look at the comments on those markets to see if any traders noticed anything suspicious. You can also ask about that person in the [Manifold Markets Discord](https://discord.gg/eHQBNBqXuh). And if their profile links to their website or social media pages, you can take that into account too. + +### Are there any content filters? What happens if someone creates an inappropriate, offensive, or [dangerous](https://en.wikipedia.org/wiki/Assassination_market) market? + +Right now, there are no restrictions on what markets can be created. If this becomes a problem, they may change their policies. + +### Can a market creator change the close date of their market? + +Yes. As long as the market hasn't been resolved yet, the creator can freely change its close date. They can even reopen a market that has already closed. + +### Is there a way to see my closed markets that I need to resolve? + +You'll get an automated email when they close. You can also go to your profile page and select "closed" in the dropdown menu. (This will display only markets that you haven't resolved yet.) + +### When do market creators get their commission fees? + +When the creator resolves their market, they get the commission from all the trades that were exectuted in the market. + +### How do I see markets that are currently open? + +You can see the top 99 markets in various categories [here](https://manifold.markets/markets). + +### Can I bet in a market I created? + +Yes. However if you're doing things that the community would perceive as "shady", such as put all your money on the correct resolution immediately before closing the market, people may be more reluctant to participate in your markets in the future. Betting "normally" in your own market is fine though. + +## Miscellaneous + +### How do I report bugs or ask for new features? + +Contact them via [email](mailto:info@manifold.markets), post in their [Discord](https://discord.gg/eHQBNBqXuh), or create a market about that bug/feature in order to draw more attention to it and get community input. + +### How can I get notified of new developments? + +Being a very recent project, Manifold is adding new features and tweaking existing ones quite frequently. You can keep up with changes by subscribing to their [Substack](https://manifoldmarkets.substack.com/), or joining their [Discord server](https://discord.gg/eHQBNBqXuh). + +### Is there an app? + +No, but the website is designed responsively and looks great on mobile. + +### Does Manifold have an API for programmers? + +Yep. Documentation is [here](https://www.notion.so/Manifold-Markets-API-5e7d0aef4dcf452bb04b319e178fabc5). + +### If I have a question that isn't answered here, where can I ask it? + +You can contact Manifold Markets via [email](mailto:info@manifold.markets) or post in their [Discord](https://discord.gg/eHQBNBqXuh). Once you have an answer, please consider updating this FAQ via "Edit this page" on Github! + +## Credits + +This FAQ was originally compiled by [Isaac King](https://outsidetheasylum.blog/manifold-markets-faq/). diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js new file mode 100644 index 00000000..95320288 --- /dev/null +++ b/docs/docusaurus.config.js @@ -0,0 +1,133 @@ +// @ts-check +// Note: type annotations allow type checking and IDEs autocompletion + +const lightCodeTheme = require('prism-react-renderer/themes/github') +const darkCodeTheme = require('prism-react-renderer/themes/dracula') +const math = require('remark-math') +const katex = require('rehype-katex') + +/** @type {import('@docusaurus/types').Config} */ +const config = { + title: 'Manifold Docs', + tagline: 'Learn more about the BESTEST prediction market platform~', + url: 'https://docs.manifold.markets', + baseUrl: '/', + onBrokenLinks: 'throw', + onBrokenMarkdownLinks: 'warn', + favicon: 'https://manifold.markets/favicon.ico', + organizationName: 'manifoldmarkets', // Usually your GitHub org/user name. + projectName: 'docs', // Usually your repo name. + + presets: [ + [ + 'classic', + /** @type {import('@docusaurus/preset-classic').Options} */ + ({ + docs: { + routeBasePath: '/', + sidebarPath: require.resolve('./sidebars.js'), + // Please change this to your repo. + editUrl: 'https://github.com/manifoldmarkets/docs/tree/main/', + remarkPlugins: [math], + rehypePlugins: [katex], + }, + theme: { + customCss: require.resolve('./src/css/custom.css'), + }, + }), + ], + ], + + stylesheets: [ + { + href: 'https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css', + type: 'text/css', + integrity: + 'sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM', + crossorigin: 'anonymous', + }, + ], + + scripts: [ + { + src: 'https://cdn.jsdelivr.net/npm/link-summoner@1.0.2/dist/browser.min.js', + async: 'true' + } + ], + + themeConfig: + /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ + ({ + navbar: { + title: 'Manifold Docs', + logo: { + alt: 'Manifold Markets Logo', + src: 'https://manifold.markets/logo.svg', + }, + items: [ + { + type: 'doc', + docId: 'about', + position: 'left', + label: 'Docs', + }, + { + href: 'https://github.com/manifoldmarkets/docs', + label: 'GitHub', + position: 'right', + }, + ], + }, + footer: { + style: 'dark', + links: [ + { + title: 'Manifold', + items: [ + { + label: 'Manifold Markets', + to: 'https://manifold.markets', + }, + { + label: 'Docs', + to: '/', + }, + ], + }, + { + title: 'Community', + items: [ + { + label: 'Discord', + href: 'https://discord.gg/eHQBNBqXuh', + }, + { + label: 'Twitter', + href: 'https://twitter.com/manifoldmarkets', + }, + ], + }, + { + title: 'More', + items: [ + { + label: 'Blog', + to: 'https://manifoldmarkets.substack.com', + }, + { + label: 'GitHub', + href: 'https://github.com/manifoldmarkets/docs', + }, + ], + }, + ], + copyright: `Copyright © ${new Date().getFullYear()} Manifold Markets, Inc. Built with Docusaurus.`, + }, + prism: { + theme: lightCodeTheme, + darkTheme: darkCodeTheme, + }, + }), +} + +module.exports = config diff --git a/docs/package.json b/docs/package.json new file mode 100644 index 00000000..9e320306 --- /dev/null +++ b/docs/package.json @@ -0,0 +1,47 @@ +{ + "name": "docs", + "version": "0.0.0", + "private": true, + "scripts": { + "docusaurus": "docusaurus", + "dev": "yarn start", + "start": "docusaurus start", + "build": "docusaurus build", + "swizzle": "docusaurus swizzle", + "deploy": "docusaurus deploy", + "clear": "docusaurus clear", + "serve": "docusaurus serve", + "write-translations": "docusaurus write-translations", + "write-heading-ids": "docusaurus write-heading-ids", + "typecheck": "tsc", + "format": "prettier --write ." + }, + "dependencies": { + "@docusaurus/core": "2.0.0-beta.17", + "@docusaurus/preset-classic": "2.0.0-beta.17", + "@mdx-js/react": "^1.6.22", + "clsx": "^1.1.1", + "hast-util-is-element": "1.1.0", + "prism-react-renderer": "^1.2.1", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "rehype-katex": "5", + "remark-math": "3" + }, + "devDependencies": { + "@docusaurus/module-type-aliases": "2.0.0-beta.17", + "@tsconfig/docusaurus": "^1.0.4" + }, + "browserslist": { + "production": [ + ">0.5%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/docs/sidebars.js b/docs/sidebars.js new file mode 100644 index 00000000..e8dc9470 --- /dev/null +++ b/docs/sidebars.js @@ -0,0 +1,31 @@ +/** + * Creating a sidebar enables you to: + - create an ordered group of docs + - render a sidebar for each doc of that group + - provide next/previous navigation + + The sidebars can be generated from the filesystem, or explicitly defined here. + + Create as many sidebars as you want. + */ + +// @ts-check + +/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ +const sidebars = { + // By default, Docusaurus generates a sidebar from the docs folder structure + tutorialSidebar: [{ type: 'autogenerated', dirName: '.' }], + + // But you can create a sidebar manually + /* + tutorialSidebar: [ + { + type: 'category', + label: 'Tutorial', + items: ['hello'], + }, + ], + */ +} + +module.exports = sidebars diff --git a/docs/src/components/HomepageFeatures/index.tsx b/docs/src/components/HomepageFeatures/index.tsx new file mode 100644 index 00000000..fb050130 --- /dev/null +++ b/docs/src/components/HomepageFeatures/index.tsx @@ -0,0 +1,70 @@ +import React from 'react' +import clsx from 'clsx' +import styles from './styles.module.css' + +type FeatureItem = { + title: string + Svg: React.ComponentType<React.ComponentProps<'svg'>> + description: JSX.Element +} + +const FeatureList: FeatureItem[] = [ + { + title: 'Easy to Use', + Svg: require('@site/static/img/undraw_docusaurus_mountain.svg').default, + description: ( + <> + Docusaurus was designed from the ground up to be easily installed and + used to get your website up and running quickly. + </> + ), + }, + { + title: 'Focus on What Matters', + Svg: require('@site/static/img/undraw_docusaurus_tree.svg').default, + description: ( + <> + Docusaurus lets you focus on your docs, and we'll do the chores. Go + ahead and move your docs into the <code>docs</code> directory. + </> + ), + }, + { + title: 'Powered by React', + Svg: require('@site/static/img/undraw_docusaurus_react.svg').default, + description: ( + <> + Extend or customize your website layout by reusing React. Docusaurus can + be extended while reusing the same header and footer. + </> + ), + }, +] + +function Feature({ title, Svg, description }: FeatureItem) { + return ( + <div className={clsx('col col--4')}> + <div className="text--center"> + <Svg className={styles.featureSvg} role="img" /> + </div> + <div className="text--center padding-horiz--md"> + <h3>{title}</h3> + <p>{description}</p> + </div> + </div> + ) +} + +export default function HomepageFeatures(): JSX.Element { + return ( + <section className={styles.features}> + <div className="container"> + <div className="row"> + {FeatureList.map((props, idx) => ( + <Feature key={idx} {...props} /> + ))} + </div> + </div> + </section> + ) +} diff --git a/docs/src/components/HomepageFeatures/styles.module.css b/docs/src/components/HomepageFeatures/styles.module.css new file mode 100644 index 00000000..b248eb2e --- /dev/null +++ b/docs/src/components/HomepageFeatures/styles.module.css @@ -0,0 +1,11 @@ +.features { + display: flex; + align-items: center; + padding: 2rem 0; + width: 100%; +} + +.featureSvg { + height: 200px; + width: 200px; +} diff --git a/docs/src/css/custom.css b/docs/src/css/custom.css new file mode 100644 index 00000000..fb024551 --- /dev/null +++ b/docs/src/css/custom.css @@ -0,0 +1,44 @@ +/** + * Any CSS included here will be global. The classic template + * bundles Infima by default. Infima is a CSS framework designed to + * work well for content-centric websites. + */ + +article { + max-width: 720px; + margin: 0 auto; +} + +/* You can override the default Infima variables here. */ +:root { + --ifm-color-primary: #2e8555; + --ifm-color-primary-dark: #29784c; + --ifm-color-primary-darker: #277148; + --ifm-color-primary-darkest: #205d3b; + --ifm-color-primary-light: #33925d; + --ifm-color-primary-lighter: #359962; + --ifm-color-primary-lightest: #3cad6e; + --ifm-code-font-size: 95%; +} + +/* For readability concerns, you should choose a lighter palette in dark mode. */ +[data-theme='dark'] { + --ifm-color-primary: #25c2a0; + --ifm-color-primary-dark: #21af90; + --ifm-color-primary-darker: #1fa588; + --ifm-color-primary-darkest: #1a8870; + --ifm-color-primary-light: #29d5b0; + --ifm-color-primary-lighter: #32d8b4; + --ifm-color-primary-lightest: #4fddbf; +} + +.docusaurus-highlight-code-line { + background-color: rgba(0, 0, 0, 0.1); + display: block; + margin: 0 calc(-1 * var(--ifm-pre-padding)); + padding: 0 var(--ifm-pre-padding); +} + +[data-theme='dark'] .docusaurus-highlight-code-line { + background-color: rgba(0, 0, 0, 0.3); +} diff --git a/docs/src/pages/markdown-page.md b/docs/src/pages/markdown-page.md new file mode 100644 index 00000000..9756c5b6 --- /dev/null +++ b/docs/src/pages/markdown-page.md @@ -0,0 +1,7 @@ +--- +title: Markdown page example +--- + +# Markdown page example + +You don't need React to write simple standalone pages. diff --git a/docs/static/.nojekyll b/docs/static/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/docs/static/img/docusaurus.png b/docs/static/img/docusaurus.png new file mode 100644 index 0000000000000000000000000000000000000000..f458149e3c8f53335f28fbc162ae67f55575c881 GIT binary patch literal 5142 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 F{0H{b<4^zq literal 0 HcmV?d00001 diff --git a/docs/static/img/favicon.ico b/docs/static/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c01d54bcd39a5f853428f3cd5aa0f383d963c484 GIT binary patch literal 3626 zcmb`Je@s(X6vrR`EK3%b%orErlDW({vn<nO&P<?CeyCWSKt+DHylTv5mbk<?W^{kJ zUx~(TV9eY|)QxBm1d%ah3d#==S!qG})lv$AiqX|pq*%24=y&J5@@gUMk4IMW>ABqA zcfaS{d+xbU5JKp0*;0YOg+;Fl!eT)XRuapIwFLL`=imZCSon$`se`_<%@MB=M~KG+ z=EW^FL`w|Bo>*ktlaS^(fut!95`iG5u=SZ8nfDHO#GaTlH1-XG^;vsjUb^gWTVz0+ z^=WR1wv9-2oeR=_;fL0H7rNWqAzGtO(D;`~cX(RcN0w2v24Y8)6t`cS^_ghs`_ho? z{0ka~1Dgo8TfAP$r*ua?>$_<z$398a6IF!bbr3t}(kCBmu}JCJkBG(ws2YgIM#K*f zOZus<BFRV6zeAe)i6z8N!b2#EKb!Ynidl}Gt$z>V+kZ!-(TvEJ7O2f;Y#tezt$&R4 zLI}=-y@Z!grf*h3>}DUL{km4R>ya_I5Ag#{h_&?+HpKS!;$x3LC#CqUQ8&nM?X))Q zXAy2?`YL4FbC5CgJu(M&Q|>1st8XXLZ|5MgwgjP<YY<jbgV5?~gk8M~jmss)pE6u| z&tM4)Cw<nHnMeF8q&Ui@Ik&j~fu_3*akge`=(kGoa?BDG|9ZPU5P#By>$m_2Vt0(J z&Gu7bOlkbGzGm2sh?X`){7w69Y$1#@P@7DF{ZE=4%T0NDS)iH`tiPSKpDNW)zmtn( zw;4$f>k)4$LBc>eBAaTZeCM2(iD+sH<bSfK{i4AV9!KlX=U?{WOKOiR)2Cc*jiMS9 zgY1r2=%^OxI%APw`IXk)?$0~Uy;<u|`R5a@(T_+!HAr7a?NP=0d|q1V3|P1h#K2&S z!q$#`SXWtzk18qxtgEVm#_61W{tgG}e@^Y^iuGHgDeh$Gds3yEr|-|iHg}_>lj!qd z2GjRJ>f_Qes(+mnzdA^NH?^NB(^o-%Gmg$c8MNMq&`vm@9Ut;*&$xSD)PKH{wBCEC z4P9%NQ;n2s59ffMn8*5)5AAg4-93gBXBD<NFG-f$|B2&5UYhfiAa+H|xyN>X`A7S& zH-|%S3Wd%T79fk-e&l`{!?lve8_epXhE{d3Hn$Cg!t=-4D(t$cK~7f&4s?t7wr3ZP z*!SRQ-+tr|e1|hbc__J`k3S!rMy<0PHy&R`v#aJv?`Y?2{avK5sQz%=Us()jcNuZV z*$>auD4cEw>;t`+m>h?f?%VFJZj8D|Y1e_SjxG%J4{-AkF<W18{neSm@yCM#Jok8U zzVtjyRO3oZN^!REEb8m(QB8HfxVRW)Wo2k<YeP{{5ef?nVYONh6%-UmuV56j?8l7z zN2K=}`b|P?<1_AW%YAHF|M=~%;q^Vk$P+iNR9}I;w-3Hap!RAVuGL=ye1OSlLUGYK zxJTUR@9W3OlP3@5{*){0%JvJIQ@VfkMiml@KY*?|93tsz%RfYF&AK^#*wGq;AA0wq zXy|8DJS;%9qXZ3)Dq$L~Lx<Z4+h{um$85MiHV7x3(I*owxW*nGp2WDUE89;<U)ul7 z>tT2+ZZS5UScS~%;dp!V>)7zi`w(xwSd*FS;Lml=f6hn#jq)2is4nkp+aTrV?)F6N z>DY#SU0IZ;*?Hu%tSj4edd~kYNHMFvS&5}#3-M;mBCOCZL3&;2obd<y5!}vb2t~%V zFv%BviwarIe&2Y{h&(!*vaW11>G?qZ>rD|zC|Lu|sny76pn2xl|6sk~Hs{X9{8iBW zwi<?8k=R<X7V5+A2J(r<<`9xDC*gE^1=$NkU>wgQt+@hi`FYMEhX2<!tNiQdpSzFx z-Xmt~^Z%a_tpw*GzYFvG_|!B!7w^yAdC?j%NY7m&qKSZZQ2gBYGO?T}BYq@|L<Mni iy3Oy%{5!9e65g49ZUI?Io9+Mn37KoYgVafcF#iI%Brz=j literal 0 HcmV?d00001 diff --git a/docs/static/img/logo.svg b/docs/static/img/logo.svg new file mode 100644 index 00000000..9db6d0d0 --- /dev/null +++ b/docs/static/img/logo.svg @@ -0,0 +1 @@ +<svg width="200" height="200" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path fill="#FFF" d="M99 52h84v34H99z"/><path d="M23 163c-7.398 0-13.843-4.027-17.303-10A19.886 19.886 0 0 0 3 163c0 11.046 8.954 20 20 20h20v-20H23z" fill="#3ECC5F"/><path d="M112.98 57.376L183 53V43c0-11.046-8.954-20-20-20H73l-2.5-4.33c-1.112-1.925-3.889-1.925-5 0L63 23l-2.5-4.33c-1.111-1.925-3.889-1.925-5 0L53 23l-2.5-4.33c-1.111-1.925-3.889-1.925-5 0L43 23c-.022 0-.042.003-.065.003l-4.142-4.141c-1.57-1.571-4.252-.853-4.828 1.294l-1.369 5.104-5.192-1.392c-2.148-.575-4.111 1.389-3.535 3.536l1.39 5.193-5.102 1.367c-2.148.576-2.867 3.259-1.296 4.83l4.142 4.142c0 .021-.003.042-.003.064l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 53l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 63l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 73l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 83l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 93l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 103l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 113l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 123l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 133l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 143l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 153l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 163c0 11.046 8.954 20 20 20h120c11.046 0 20-8.954 20-20V83l-70.02-4.376A10.645 10.645 0 0 1 103 68c0-5.621 4.37-10.273 9.98-10.624" fill="#3ECC5F"/><path fill="#3ECC5F" d="M143 183h30v-40h-30z"/><path d="M193 158c-.219 0-.428.037-.639.064-.038-.15-.074-.301-.116-.451A5 5 0 0 0 190.32 148a4.96 4.96 0 0 0-3.016 1.036 26.531 26.531 0 0 0-.335-.336 4.955 4.955 0 0 0 1.011-2.987 5 5 0 0 0-9.599-1.959c-.148-.042-.297-.077-.445-.115.027-.211.064-.42.064-.639a5 5 0 0 0-5-5 5 5 0 0 0-5 5c0 .219.037.428.064.639-.148.038-.297.073-.445.115a4.998 4.998 0 0 0-9.599 1.959c0 1.125.384 2.151 1.011 2.987-3.717 3.632-6.031 8.693-6.031 14.3 0 11.046 8.954 20 20 20 9.339 0 17.16-6.41 19.361-15.064.211.027.42.064.639.064a5 5 0 0 0 5-5 5 5 0 0 0-5-5" fill="#44D860"/><path fill="#3ECC5F" d="M153 123h30v-20h-30z"/><path d="M193 115.5a2.5 2.5 0 1 0 0-5c-.109 0-.214.019-.319.032-.02-.075-.037-.15-.058-.225a2.501 2.501 0 0 0-.963-4.807c-.569 0-1.088.197-1.508.518a6.653 6.653 0 0 0-.168-.168c.314-.417.506-.931.506-1.494a2.5 2.5 0 0 0-4.8-.979A9.987 9.987 0 0 0 183 103c-5.522 0-10 4.478-10 10s4.478 10 10 10c.934 0 1.833-.138 2.69-.377a2.5 2.5 0 0 0 4.8-.979c0-.563-.192-1.077-.506-1.494.057-.055.113-.111.168-.168.42.321.939.518 1.508.518a2.5 2.5 0 0 0 .963-4.807c.021-.074.038-.15.058-.225.105.013.21.032.319.032" fill="#44D860"/><path d="M63 55.5a2.5 2.5 0 0 1-2.5-2.5c0-4.136-3.364-7.5-7.5-7.5s-7.5 3.364-7.5 7.5a2.5 2.5 0 1 1-5 0c0-6.893 5.607-12.5 12.5-12.5S65.5 46.107 65.5 53a2.5 2.5 0 0 1-2.5 2.5" fill="#000"/><path d="M103 183h60c11.046 0 20-8.954 20-20V93h-60c-11.046 0-20 8.954-20 20v70z" fill="#FFFF50"/><path d="M168.02 124h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 20h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 20h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0-49.814h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 19.814h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 20h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2M183 61.611c-.012 0-.022-.006-.034-.005-3.09.105-4.552 3.196-5.842 5.923-1.346 2.85-2.387 4.703-4.093 4.647-1.889-.068-2.969-2.202-4.113-4.46-1.314-2.594-2.814-5.536-5.963-5.426-3.046.104-4.513 2.794-5.807 5.167-1.377 2.528-2.314 4.065-4.121 3.994-1.927-.07-2.951-1.805-4.136-3.813-1.321-2.236-2.848-4.75-5.936-4.664-2.994.103-4.465 2.385-5.763 4.4-1.373 2.13-2.335 3.428-4.165 3.351-1.973-.07-2.992-1.51-4.171-3.177-1.324-1.873-2.816-3.993-5.895-3.89-2.928.1-4.399 1.97-5.696 3.618-1.232 1.564-2.194 2.802-4.229 2.724a1 1 0 0 0-.072 2c3.017.101 4.545-1.8 5.872-3.487 1.177-1.496 2.193-2.787 4.193-2.855 1.926-.082 2.829 1.115 4.195 3.045 1.297 1.834 2.769 3.914 5.731 4.021 3.103.104 4.596-2.215 5.918-4.267 1.182-1.834 2.202-3.417 4.15-3.484 1.793-.067 2.769 1.35 4.145 3.681 1.297 2.197 2.766 4.686 5.787 4.796 3.125.108 4.634-2.62 5.949-5.035 1.139-2.088 2.214-4.06 4.119-4.126 1.793-.042 2.728 1.595 4.111 4.33 1.292 2.553 2.757 5.445 5.825 5.556l.169.003c3.064 0 4.518-3.075 5.805-5.794 1.139-2.41 2.217-4.68 4.067-4.773v-2z" fill="#000"/><path fill="#3ECC5F" d="M83 183h40v-40H83z"/><path d="M143 158c-.219 0-.428.037-.639.064-.038-.15-.074-.301-.116-.451A5 5 0 0 0 140.32 148a4.96 4.96 0 0 0-3.016 1.036 26.531 26.531 0 0 0-.335-.336 4.955 4.955 0 0 0 1.011-2.987 5 5 0 0 0-9.599-1.959c-.148-.042-.297-.077-.445-.115.027-.211.064-.42.064-.639a5 5 0 0 0-5-5 5 5 0 0 0-5 5c0 .219.037.428.064.639-.148.038-.297.073-.445.115a4.998 4.998 0 0 0-9.599 1.959c0 1.125.384 2.151 1.011 2.987-3.717 3.632-6.031 8.693-6.031 14.3 0 11.046 8.954 20 20 20 9.339 0 17.16-6.41 19.361-15.064.211.027.42.064.639.064a5 5 0 0 0 5-5 5 5 0 0 0-5-5" fill="#44D860"/><path fill="#3ECC5F" d="M83 123h40v-20H83z"/><path d="M133 115.5a2.5 2.5 0 1 0 0-5c-.109 0-.214.019-.319.032-.02-.075-.037-.15-.058-.225a2.501 2.501 0 0 0-.963-4.807c-.569 0-1.088.197-1.508.518a6.653 6.653 0 0 0-.168-.168c.314-.417.506-.931.506-1.494a2.5 2.5 0 0 0-4.8-.979A9.987 9.987 0 0 0 123 103c-5.522 0-10 4.478-10 10s4.478 10 10 10c.934 0 1.833-.138 2.69-.377a2.5 2.5 0 0 0 4.8-.979c0-.563-.192-1.077-.506-1.494.057-.055.113-.111.168-.168.42.321.939.518 1.508.518a2.5 2.5 0 0 0 .963-4.807c.021-.074.038-.15.058-.225.105.013.21.032.319.032" fill="#44D860"/><path d="M143 41.75c-.16 0-.33-.02-.49-.05a2.52 2.52 0 0 1-.47-.14c-.15-.06-.29-.14-.431-.23-.13-.09-.259-.2-.38-.31-.109-.12-.219-.24-.309-.38s-.17-.28-.231-.43a2.619 2.619 0 0 1-.189-.96c0-.16.02-.33.05-.49.03-.16.08-.31.139-.47.061-.15.141-.29.231-.43.09-.13.2-.26.309-.38.121-.11.25-.22.38-.31.141-.09.281-.17.431-.23.149-.06.31-.11.47-.14.32-.07.65-.07.98 0 .159.03.32.08.47.14.149.06.29.14.43.23.13.09.259.2.38.31.11.12.22.25.31.38.09.14.17.28.23.43.06.16.11.31.14.47.029.16.05.33.05.49 0 .66-.271 1.31-.73 1.77-.121.11-.25.22-.38.31-.14.09-.281.17-.43.23a2.565 2.565 0 0 1-.96.19m20-1.25c-.66 0-1.3-.27-1.771-.73a3.802 3.802 0 0 1-.309-.38c-.09-.14-.17-.28-.231-.43a2.619 2.619 0 0 1-.189-.96c0-.66.27-1.3.729-1.77.121-.11.25-.22.38-.31.141-.09.281-.17.431-.23.149-.06.31-.11.47-.14.32-.07.66-.07.98 0 .159.03.32.08.47.14.149.06.29.14.43.23.13.09.259.2.38.31.459.47.73 1.11.73 1.77 0 .16-.021.33-.05.49-.03.16-.08.32-.14.47-.07.15-.14.29-.23.43-.09.13-.2.26-.31.38-.121.11-.25.22-.38.31-.14.09-.281.17-.43.23a2.565 2.565 0 0 1-.96.19" fill="#000"/></g></svg> \ No newline at end of file diff --git a/docs/static/img/tutorial/docsVersionDropdown.png b/docs/static/img/tutorial/docsVersionDropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..ff1cbe68893d205dc0a6821bfa74d8e7d25c09cf GIT binary patch literal 25102 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 Js!v|N^*`%a2QvTw literal 0 HcmV?d00001 diff --git a/docs/static/img/tutorial/localeDropdown.png b/docs/static/img/tutorial/localeDropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..d7163f96752499e2e39e771d4d5e9e42c68677aa GIT binary patch literal 30020 zcmZU)2RIyEA2%#)^k5Ms2v(OM+Ul!qh+Y!}A<;$ey_eN{i|CyoL>IjiMDNji@11Yt zzTfA0zW3ehnw^<5r_H~g-}z6FqP*l2%x9QLNJvkl-oTZSkRD|MhdMecPy$B2zyoe1 zOvJ?%rNqUl6m2XGP0S3CkQk%%banBiUNUxn{HUwj-T#6K)5cL5fe2OB_3Ul_Mb+Kh zlisHLB~eRjfdp>>MYR<vOR1&$Gj=G|RXJ<-w}KzPialNiGw+z`{#l0>abl<lVJ=8Z zvB;widwTJ*)TZbAd3&=z?taJ0#)MQR;AIvCNzd}y;iGck_iK36F7NX_!fVVA#D_A) z<7MW(5(-Zz4Q2B(OQEGbw4;TNe!yEev{pm!XJV38J+Pu)&>9w%GJTDKa2R0Af7vTL z$f#rm3Q#WeG5S!R8txP29Yu|T!uX52P<S3GkS>b^P3+sGmv>7cF{8Q{UdYprx|7i@ z&CLm+cq+;5%~aj}%~rgHRAr3dJ)};{mmMaZ5_r&a2UOH?llyy593x%b34PrQ*W3I1 z`I-Cs`}$CC?@J<-Hg8KLmKPreifM*R0m23ws7o2j$ssWV*XT%~N6(NR16PlL1NMmQ zKi3kE7?Du^mLnq}1)3m%{;eYqoF9IX!12)LpEF8y01_H-hYuW1>B#@5_M^;nl>c0- z1J95|Rm7#FfU}C8je&uMt+AyYs8uikD8R6KqhX7LL`3&+Jd#qTJplS2H&Io$Q<szF z*RwQd{itvG$$-_#-0GnpBta*B;L_Z{?jx0xxtWD6zmpK;Zw-Fn`k|N&LiM+b-De?) zx||}FxTTE&6_oWA>njKhlZuK;&_>^oUl}g(Z*$;I2x4q!XT{IP=IH3i>d47zX=B93 z&d0~c_KJgzgM$UA!D8!dVfWFA#ln{6pHBWyKX3zEJsT4%I}=L_s)v3*ezLT;6M{e< z2KvwMpLrTMnf!Mo3)_ER3wS}chbL_8tgqPq(>Ksm@S&7n(ZtEXOapFW4$ur31IEe4 zCHS}g|MTR(BmPfI_5ZfyV(0zemjCnQ|8Du#*1$&G(i|Al4)$Mm{oD9|AO71=knQ2k z|A!L)koj*ZKxY`HAlrX<2E(lH(l-X!NNxgGPzBC_kp2CA1O6F-<KYY(FlJ(u^JpX_ zp))DCsH)SW9c{E4^2$osM8o-q=FS=)_Q_5zV&q3=E?9o@$Qk~$cw(3s8GeynZKDZD z8DBn#?dzg9BwCP}>FHT@J#m~hPaXIr<T_|d7iQ>iw)dxA((POJ2<`2UaZkytp?5dw z_;2t*phu!2czB>-KM{XCrKrdR!^i&=AcOo6D<M?q=*T`^REny=T`*=77wbRwRB+n) zf2x7JGa*#)l}AlG>jy|uvLJ7C5Hm9~<Rx6Y1RWh*_JYl?tvNE2N>L6SUGy!%Z@O98 zDT1g-1q@GtoX-Y<UXjXE+DE$0mEj0K_1@!<mszX|Aio;ZF8k6$IBmO%KqG<!Q<Uln z$S-kNr0hy>lo5hITyV#Rs9;1NwFCKmmA=OuM~C1eGvBgBpD5xn+JpQerOz?rxWE{X z;`WFoUFgwAfw@OY@At;hK9v0-e(gewJ_>y(TMv%M24h^t4kU=VK+t2!kj11s8kQc@ zL8ud!K4_U}17sPN6nRsGl*nA(eSMBlMvuDdrp=^!Aj%lR3s2SNJHb5A0WF%gAV9Tr z2O6qu!u_jGdI)v86H-VeP%)MbS?rC+1dIrbfpO{0{0^Wc6*?ZWn1r97&^b_#S^$v= ze&9i~zgJ`w76lR;1RvkVm+}2yrexybag@^#O2Ng%91h?#540B{2l<8mGUf|<^QIg7 z%bUN<dK2swsl;j{0nh={8=u^!=@kSFI(jWazl0~+lChN>`x?F~co=^?S=5N5j1LO- z72#9pT@`e=s(NcSSI4~{^ORA&U`>o8$HgF9$Hz+;c@_FGVZ`b4Q!vKj#eEi$jA(il zl_Cy-gE^&M7(ktrX^yaNUXb?*IKP;{v6w<lPU8!~lGHtA5u6az``CM$%X=cX?Du&o z?LNZKZsX|9gVgworPC{HaM$kVZfoEJyw$7Yf)Ic}-dphWT)92&;--?%8e9<kBWrCU zq?WF*2;*b%bg0~?OX`njB}^Biu^wNPN}}Jr0QaoCe=HaWA`lZhQWi<Ck~K5=q_LG4 z>vHc_@>(<~KUcn-yK){ztYrrBRu)aql~2!^-dEmD7(8cr3n`Q$aFW|98uTY56HSLw zE5^`|DQ|x+IPF?@O~M4nZDoJx_K^F~0IK6LeN?=~bJC(=2C#;T4kT@#$ui~v-pQG5 zYKN<KOQm`p_ZR(Ovt&!dZMwUdO8?AoLV`_f)>LH4(;*Lt4JJZ_Nv<Mil$c;8XS`_= zu9_0lh#?aD^arjOys8LdBbr`;$LQZvMR>JP$DA|Vqz+eoiOl$}J{L=!5yG6q{-u+p zd^${|K=zG4yjETB<-7Vu^?0%SpNM>t7=8BXlUgfMh_X?9+HYIp3-eMd6N`@ACkGv0 z_I3YEkG=9-HYFJ^<ixg|8)L|xL`SZ~@m5Zp)k-JI^6W4k@qaY&wB9lbn3A7jiuqxP zF7wQl5BwxKA`MGxn#%%{f{Z(`ppSUXk7T-0;KucLB6%&kDHPduqBMZ@NwVl%aPSwQ zNXU8PBmpI*hy7U&|ICu!2@~-T%Xg4+xpo*zu%3$cZsOI7Y4V;G{Wo<atnuOi|1D2~ z#l)pdY$?;54-Au|kkXIn3lR<}hf`PwJ;SxX%RlOo)Q{Y~sxjz#1`Yl)G?yul7&}3e zVDH+vA|fo(k$~99{Vox`*utbpJ4czRJ4=qJLBHZL$I|0J`4znx$H~x$M9Gp=6cTnS zaY`l<VOX5ucwF_n@*~#9d?w4z<TvdPn)Rhgm(<_p>ZT@BWt`5c1jOr6!?fu$WxSd- z=llJSVeZt+we?qbH=pxvIqaEKagoRPl!)qz#kv$+UI!1AzJxH-iV|`_ku5?Z_OHM4 zF9v=4Jgg4xn#q#y2W9~1%ItlAULDC*<sSM-JR9c9TymwiwKz^sh?UK=e8NztWefG9 zRDljT+}%5Zjp8>^3}nz*iCzm(qt*{>d8hlK(4m$&wB{W5K%=cOCB{yW62-D~R+yNc zO813-XbR!X)}D$8-2Y3yH1%H2$b5j&nru()^JNDCWK^hS8V$oE{7K=aJM^nUf#kdX znHHQa3!~&t7Ua`NHH#-Uv^m#-<Pxl+spE-~^t731PvEg*q6M@P3u{wptpv7tBKt(U zi<vN25w%md@3SiQ3hLGetg7>-?`L@vt!Ko-VyZ<~gIP4I7LFWEnTmrF9U0RSuN!QI zUuvGa<Kgh&{kEB*p2=@AzJ}kw{%q=MOb0$SpOXR)W&A8Eh~opFsuIj2aAur3U}b$c zzjH-t*fiPkL4{=ATVH2S%ARKKe!*AiYOVf&I82(B4@1ZjR27KoXgoW-DA!7skXx7* zMbnSpyfE~sF@MVgrkHFH*81b<$7c750e$ohsPOZ!xYe*l(dhE(vHu%av)slNIk+{0 zwF-k`{5$gJX~OGM^|ovz0=kqWcb&ZIO(uG}4r=X3<Pon8X64THD$N2g(ztj3cxZ0S z*6>y2&)_+zIKC-ag#|Ch91CQM;er34Drhtij$6)U##79QX7SsH%}r-QUEOYPG1bdW zC{E0$QK#3Ot1CAHi(grfeKLNZ_uOovf}5+N;`2@@{wGf&3w4y^iBj*Yr}nyDTduPt zB(5pX&h1YBOc*{b^*o0D&X#xAj0sx(Ty5b~P?YfacBd$nfqv6ysq=G^UIs&3#Zul= zG&Y?tWk<LCgmr8|L5xq9-p~Z#yozvczm90p;-1p2vub|BTO}jR8?qZ9klGMg*fq3m z$)<yJ-k+2mf3~(!_{}A`vtQRP0d{a~fs&F;;w1b7S@oSngGQysN7-t9M>rc>%45%z z8&mq5V^e|4FDzsqcho4GX-{FJ=W)r@B~zCoBvVzIofa={kQ{#{VGpt-mQ)p&`mvY} z=Z=<(5^NNtCZyEQDUxKzW6NzO;--4>&9h;tqB-oMdG7uo*425Qc+4lOQ%eGUyNBA& zb{<|_-<)$Rp`Y56w3K1C*=cW;ur(4g?}1UInxsteT0;A2#_sQO@dF#{?W;3`p0~+k zlScAhxCsNk`-D-q>340a8F!ycQ}0hL#~$5P+&-5me~mo5eJW6(!P~U|q2-*3CjX^d zlQV%9_p$qh{#5mMr`_H{=%~5?)Z#JCv?a=VQ9^nYT!!zd%aYXR9sdoZXY3;gQIZ_e zkWchISW^*`a6)cxi6^ggJcSxr{><7JEg&49_a-)RY{hz!Jpb_ONlEIFA=Un$Z!Cgk z*Gi;hnvbeIg<l;L$lanWRP8!E`O@}tU%Y%7wU~_C_w#5yJ<6EQj+F8<_{mbV<-(HG zGH1WA&<*Hf%!sXJhg*h|<E0hkOEF?SlgYCA<Y_J2rcK_J{dP-^z#htV^>#~#DCs>C zm24y&cWaW&<9O3n!>=>tS-v{Yjtw4m<<ErU0!S$qLj(2;o|07yzEy{<fs@V@iS?al z@HU>NWHis@E7Wh3crdnK)+L0xp`Lq!s4m<laRxr{ifd2HzU~3F6=%1JyCi<1+)@o3 zV%g`oSQ91P(c5w6W2lMu6g6yS6WKW>h1{oN^6yzAhb?&Koi49N)JKBF52M%ow<KQz zhW`rY+uN0})D>i%T<3auesYeYCeO<+DpWS1km0&&!E1_UYr5UaRNA&ZFF%+sVZZmp z(oKLS|J-~GW3OoTo0p6OTS1WL&S>PyZ={61yUM<npzeG;I9I;8V`BcFz!pE9{HoxW zJQh>f3D_4(YvCI;xM@D6@BC**hDwU3Nyn>Sqiv+8mi6n@W5V9uX^tH|qyHImkvH84 zlU-~kV95N#!ryvh|H7wuqxczAsf@oBv+~z@*n6V(DyGGio3y!bRq&4y@>8@9Yl7$f z<;A7(rw(Rwq|-d6m_J6#sTt&MmKUm80>y+Y2_-N}`$bJhFe?M~_NTMM>QGE^pNyvT zsF{8~O9*u$D@r?avc5Rf=(AUXSC}ok@b26Oa`ZKxjz%wgYz>e&YO&5&JcqrnLdwmD zZtUTAUFScutj!gZGo}|DF@BLoa(QudnEf=cD^!zJmGUP7LBCp)BEQu&BlXOet#4Dt zO3P7Ve{O+zW~V**SM1?l5aKaIO)|5T!Gv1d?#x%jZw!W?x1-U|6y`?ze!v{HXVLon zsUV><qEUO4qt|TWqjQoYE>nZAVOnMA1D6*}Tv)?wgis?hPDG(7O#F7tbDBY+rLK3~ zOnAxx@5bYLuH1|loRRr)?#imTu5ZDQTZba<I5}wf$KF86J4wjyT#4(uZ!s_r)ZF3= zD2+g47ps-SV2j3J#UG737A-GFtvFC^+IyUz<@4R4gH49+$jgQSY}_=Wv-u^<CB@|m zubpg$)DF%E?~@Nni>?Hu!8|#PkUA;z-Nx-ATol`zE|>EXNf0gkE>XDBm|pA9c}#h; zSR6M{do(&zp-#SG;;i}G?D@2to4YxlrWW+2A@e9)Qcs%3W0*whHh(`h?`hx?UC+p# zI4zit+J_cK9_n^`8Gsz>dK>9G_9$DM!;vqcz%eBC?Y^&WIrwoW?@0q1C&6AyTllZp zsYwJvf#{9$iQ3uzRp4Nr52}zbFZfi=^EP6y#yxvIVzhm#;NwUr1#ADU{qTz<m-XD@ zg@G2dA|tA`7~(%lgDo&MGK^Q1CG#ZVo5MWIeOUL2?2l3v9ls{JRGQ)97GlKZ(J<ua z@YyGbZf<EywB<wJ#_;zDYgU2=E)Jv$TiIN2RXhn*!Snj|6Lw!*{=iMXLkg17!Uk$T zi`}YoD+zOK|7a!*+NZ0;p306krqsTmbE~FyEAb=a45%(}c`i}LE_~L;u#o(Av3yl2 zSoi+>?f1}ULB<jHe^Lw5<}G>2yW-ba6=~1nA<txmG%I`qpMsO{qlb=qjkJ76Q*znB zAHQuACc%s$G`G;<Q7gZ1gm1dXJ1Q82Oc~~Dq;6s^6g{0&0Vm5T&$oM443G80j=uQ4 zaD13U5-ZH*X*!<rOOr-{?rr4up#1ZBPDf{)gfoj2FzfE-{Tq8oYhz&hQ`Y{Ix1Q!Y ze7csrTXTWFX9246=^81B{7{$U=dXPZ<=>Ii_mPnF&;w-yTR#MDeqJ{t;<LtZncYg0 z&m43SI^7u8UsG4xgYs+n6L!ZI84Nd_4bph_eYs5wa7K)|%XCWUout(Y<eo<Kr@ndX z<k229z8qq8KEG>AUue)~h0^*lr7F;ztoql*6(MgDw&IGgd=wOr!6o<C5I3jutc;NN zSF!>cJ&X|n;aGcq0c&7tJ2_XI;4Q^3yQ>5*f-LbV37(sDuy=$<=S(@^fa&P`Xg#Fd zczL1sKNuR(DOsL4RzESXmOD`6I&b5M!ibl1d}&mG!Ycd@P3x13*`VH!RGO5N!x11} z123?%)zDy%td7k0%o=F(Tu@EQ%z0BB44`~>yFG8o4d9VX#h<+NAoM}(J$I;h&)N&S z>#7#k53Fz9OBBG^yRI`m?nJx3^BEN#2twcgWTE89US$_rhn4i!nYdgsaCZUq6fbSq zBn^felhBV_$TE7Iqc*B7PmRBauay)3%#(XFXQA#B*+o}-!;Zl!BgDmi)9hlTJ%MxX zb7562<!p{{=sTm~#j^wc&g+^`=Wk+P^ka!II-YrP$lKzN%na~2;NR22Cik;F+<uv~ zFC4n{nN%gehF1m6jg{5FtaqJfV2xL{Up%%Py-}+-f3<;DiATp*R=3AN1|t+$X|kt5 z@d(5ncsY9fGEI=U{n?naYt4J1n=ZJ6`nX>DuQ*<?y$bFhM<ve;$(-f-C*3<|V&4wJ zH}I>t&RY>NKjpR63-;P!?`!esOSF)6zI^~;jney9nr<JvycRQc=gcD`;DYd*wl15R zu+B>HzTf>)|I3<wrYB7hMd#gJC@TKYX(;00*{@QqrI|8w;u^hmUz_Q0n&x$7%3`hT z&Pw!L<|EBqhu_6-K^4{^&l2LV@*P|EDBRvi1j8#BG`|QaXnqmrxXzk3e?z9h5nlLP zQAlT}IDY#~u`k9cZ~TL~_aKk<{b|>lK^=+r<~3Pc&U@LBuM6MXF55%4$tGa)cZXQf z+2(tc)n5%=AAv7r4_p|Qui7i~&X%qYpP&+E9oa|8j;T61uk>i_-~OHpy-Q%f!f#m+ zUP&|OR1}iIOjxmMbvBGhGh70(Gxx}+eUo!vC~ue=)*96xxOL*g0Lv+op|E~AF*U3W z?fMaSTGm0G8AAw`E2V`94qXL!3lDJlUKA@j#wMOA4Hn&Hq*l_&IS$^ETf7^r^2ne4 zjrWv+75q_<HjAw35|o-O{N$bacQbA^nWXxB$EuPI;oiDmBx5|oI+m`6aMW<}ruy|$ z=_>MsHPFh&r*P&lhnP;pHu1!BwB&Y4G^Q{T7g;r-;xlHb<)5$D3?)SdIU(XW)@B7$ zw6K-FgwZ!^F*?6J;p14raA=KYc>Gwt4wv)u?D#eM!kC)P()*dfMbW}VS8*q`vL*<D z>{a&KNZKd7p=GSRwzn7IZ&$T(8()m-%#oU9rB+tFlacG+hI$d1em?#jV$=q*uYO&i z2ye$IZmKJy$aAQtlOk4d#rp7WMFb<^@~R*VS$hnpmFUT{LKXH_>p9+KA$9HA0?{Tz zB}X_RnQeu;-jtS;cEin$zY7}kY)#bd;5T2Fz>Rm6eltnttc&b!eNx?wl=w%x#MLsN z%a_;-zAEg{Hd?zaP3E$va_K34%NOh+kz>~bgXP+DMe1ILvs`roY_@BPGQH-aSoD>7 zPn@q3Z5|Xqq8QO<%d=}I(iwY?A{osuk<u#?gg|U1ZbKvTi{~d~-Cw*CZOt^2n(cba ziV9u~LjN%)&n@eez8!{guHxtzW>a_h8yN`lO=~nB#rZ=rM;Ho?;4*DS@cvQOMm5Q4 z9-$Sxa%H?5(Sz{@QX3)Fxt6;Ry8)ajW>$;qr7g*(WIVZUi2U+R*#HLqpCx~q>U2`D z*=2SKv;72)zq4J^-)V;hzn!Bc9HSh~<4yt$q6OvBWLH_g5%z`*lST3hF^@tKg(YN| z!A&#JefPI;IE&@rTHZc>o1>pR&rcfo-3^<?&tqp_bH-+jok`s1SWq(Enc}e_A&ODf z{EjVS5|=7J8?A5wwFb$yAk5XQdG}X(l8(}&tXo;b5u<a2u%>3NT+JqUle;h5<lS4A zA4)EwyZk>=euYVHke`g->SNwNb3vSD`!>nC5_Arhy7V}<Hcr*AiD?1hl9D@a8rYxh z_uii}wAt@^W5eXISkHVL8K}cf&tjLxKGgy1O3>?(F{~^nt3h1TbKP^@iRm99O#w}E zIP<uz#2@D;uL-vY-6*gA(0qR*gxfZ%cH7=1#5ai8L$|xI{?OD=US(-S7~YCn`C~uQ zk<uqF&QW`&fF}C+?CGn(z$RweEUW9f{_UFQ0u1lN0ZA!4?V}&8p3A<ozHu{m-{mEe za;p)JA3<bvt(;aYN#ZMg?HQREp9sgD>{<tc>4LzHMV*R`kovhgJ`c_{hsxL2(9>D3 zVFQ6%5{c@4skhDN>a1^N-d3E%E2$D4l&-xPdoP^wOT@k1cG{viv`E3&1zWSBF37mt z#mST3HE$itExM=AD}#fJCA8EK_*7I)2!#o-584gn@^3w{6{ic#)oR{07@NA7uhE}+ z^v`h$<H#O%rxTC%p!aWaD{9sqKJ&!uw$|jvkLvOK;-Yj;Sjp!T?J?Jy!^a6;96zjI zlOMSG$SoGNAX3TK63cocHfPWBl{BBf;JhwXdFJPcG%JU+v>41?<}(MgzNXaG#`f~( zz~vCV<n|9;uPj{aJXM8?FXSPaLEMF$CNoN|jn+Ld_4pZ*M%R(|6!%9<AG%_C6PK-p zCDj_YeNkzq!g;>wT{{__+yy^A*c#T@Li)}9TWXHfUTM9LA}8FE8d*$JI_<>~zgoj; zlZ8qR!S*yYTI+}6y2xpPQVU2c+U|9uv*jAA*<iTP#~qw&{W+nRYF(3Giw4}TrG?HH z02|_GexvpA(w|=>7C&{xYR_Sc;l<B9sJhlc4^~plQ=E-ywT1{Th*eVgmB0n5E7Mtm z`?+7t*q&Hwq@Sn2=IhE9U3UrcK*aCO_K4H~(zu!m<4N?rw`>(h2_ZwMO_mHy<#{Sh z5)NCB)%NlBzQf(0^}r?kX)|cu<v$;_R>iaj0~AWDqWHK?mauaw2&`9AKPb>N#v$CK z($yWvv3J@8f?s-ETi5tMvu_+UkZ3CQ;4M8Wz3x2SZre6<4zFHRkr=+(42&@HK(M7@ zco7V3ShzQMv@7h>u=Z=WD$KuQi=U2P`+e?a&)@87$`pd1S__3YP}R%D5FPltRIzKP z)Op1i6Q3sBAlrA6<(yX%zmMqLor%k{jOa9Y-Gz&n>N8V4CZLgMH8FcC@UB79uiV+R z?-Yai4{BA%vxG?p<z(V7g=v2-WK$pm3d<666ymtPusGp_a7_@7;zZ)i!liS4<#uj3 zMj`Q6TJ|4DLb>Cn1Z~6iMP*Y9LYeiIIkgQR^c>-)GFJ*?N@B68?-=N{3iccrxm5<o zQ7bo*eKj3$y4^ab_jPZ4NRy8DwhFTXI-dxMQT(0`)>7`XY@W0G(PmJ$Ts24Pp;9Zr z8iqkrDgPdMb)<{7u@Tl$PLt?1!{913IH42KwQbTqK%MysFT^sL%PB^vQSnM^wM@uZ za?n5vmVd2z0NGOI@XdC7<-}l@!SC#>vFczxd)CiTE{l@t?>>rhRvA3`>b2ZjRit&$ zhQR69joBc!$7s>hpZ1EXl$M9MCJIxGV=<-RlbuGvNcZV~0)zS8>*J=qp$>Vsx{|x? zwkP)~E>m`4{BEQ1cdv9Uojfmp{u(avxV17Fcnx=wbpGLzYJbm@W{BfoS?Mp#XPv`e z`_(~xddJj9Fifi3=&RIp(Dt(4zMk*0)C{Y<ELm!!d->(eib;Dv1Tq3D<=NBog~1$P z&{2<AmU(h7GW0(r)*Q9`wzQEWFeeT@+wWK0qaiO8WJEry*01ocQB?9}95JBQ6;MXj zi<|eG7wj=c=YGNipFQ>bwTo$QddaY5L~x-%ztA(4cSeFOtOP$v<PZDFAB28g`KBR( zQ(h?0S))>}Da+4BmbVO7v5D^F`a`|O;81ebp50yU0LhK?+|<x8$<>)^_Nk2h@AU(y z_9Cu|j)E+l1d9Ns_VcU=<CRPUqA$X@HKtb}U!X5#ETo6{>=}_@6Q)q_HfNX=7C3~A zA-o}?I3mna*j;akhpt5E^71Tj<~sg(Q{^|CTST{G`DvL<AF9AQL5Nqdo(wE@eOZRx z%H+UDAr(zfW3lkgHHMc#A*=Xn`eXcs6=By~=8cm0@+0?ox?<KPwx5l;;g)s!M=wOX z=L;wW1q)Ru_YZ1R&nvGQ(&J2JP93&x^WQn&l;MprF7b%7C@tj%HEvaxKI^*Sp3c7* z%NTU@2^#5gn+{&y{=BW15dUOpg&^c06qtwg%z}r~YW8hL&C_J4d9TMvIM>VbB*CJQ zfV#C2`YGkq_CPmtzK*X&cUyZU9_n(+i+Ig+<piUa^otSK_R7K^9Ou$+GXm>qqE+2M zM=7DQG;i=Z!y_Wh3#RboVYd*?REE=KcG*?8B?)}6TzPJQ5>bxANGA``^v9!3O=FXL zS(*SL7aO^Pvlo|$8$oOF?!@Z7J`P~4x*JN<a}D#mj*)MVTvd;f2nAaipi)^n)}Jn> zuO@Ro#z<h}G%5&MD6D3CtXTFQ2bs`8(t?291FlbajIgrqcZ0`=V|tsXVx8kNg}e4z zU&xyDp)VC>0@zq?_-z@tsO&vv`h5%KJM(vW3H97AWx14Y`x&ZAOCz*n<zk<AB?W{j zV7GFGo5Nr$+r2R-kC#b<7)_T#hxHa1lif}yQFHToGv1CFX<ai9?kK;vF3*x?!9ljn z*R$QoBj$&iV<_yz|LM!HzM`(GMW;=PJb7cid@(IKwOZ6=ttyG#`l67feAyYFa?kPw zLr}6fT#3M}?3DK+A7<sXG-)HuyuPhq9lg?FCLrZm)VA*Jtdh|%-BK-U&h4q3vd)ut zv`*idPdRoilO|M@g~i<%MoaMez3)KvF7F+zN(q`%vOYmqSUMZuE9KTb5!V$4ERjlr z26NhQo@x$?25n(g=h)y=9<4gRw|0_cQloC3U!`Wc16_>??4b#bof%7wg^0{zbdA^3 zS}$F|r-)S2ENA>oRLTFD@;-A{Pzp6<0<<;!QSxYLeYsB*5gaobf33tPuen0w%#R+L za!LJCv7Ug(Vh%fH%vz>lOh8l8Zck58P9TMdPFfkXBn!`lE?rztOH9?Cuu_}}Q@X<% z$?NlZ|Curm^LZErUexDLa)oU;M7=!BP_(WwG>g21n5#`|S%9g~N(K&5Dh%Ytm^b#F zXS*t~+OR9J%Qb=o9pC@yBS^c<dRb!I6<&hzqt2dJT`d_D5b<Q{s&nPcg%5D`O{2g@ zqMz4b_VP1JEl<j8MzVy)SUW^=kubTMPQ9CZO;hpC2=NQ>6uo*fxquS7wyGAT(6p}2 zDO<%WPx@0%$saOBMHH^MaFuZM3t2*wh3E<johHV5w-eTRTK)vwPrJkQb~pT&(@_dq zu16ug?n}>tx}nt5E0a;Qb+j-p;{;1`vht2u2KwrWzRRoa!)#XcQ4q+D{@DcY($)2( z<W$WGG(|34PbSm$k~XYhnS4y5@vN??`1x4GOJKh$`{5x)`KFmof<i3LX`)t{IF>M3 z`D(3#nMK;WTJ_!BG0z~CXXtP_RR1l5VF&k{qe|<`89ON7lF`W23Tv91-9|{yn1ylF zby7P6k8~9+vta;2D<(ybSS?&zW+X7cG(^fpt$sG37k1b^9+&sDYb;;`*iV(9GF3j@ zRrt#LAZ)A+az-)BB<6KBN3><=dYYQqjvZ@Imnnvlz2!p54lG1B_s1`G^rZH!xgjsQ zoS<opDG|@jU)4^dv;0bvy8Sg2EhUqI+vCFe!5>bwMd?mGlRGJOy|7Jeus+N%H05Sy z)83NJ*^~Lo_HuGMBQaL8gG!)xc{(PIB_dd@>|-11atYrIZ9+V`069;5AA@wDi)<BC z+<Xtv%~|xf(Oi0OU&lpLDXN1q>7#gyyTVrW_RFO*Wk$M)Ua;_ev<#7S`Q>hQRJPve z!dGZc12Fs7rygs?s;VqIn2Qcs1t*=_yzJQ+^@|SJ+pe0voUnY)$&O~~G}z^Z1i&9D zJ7}76%yMPbX^<zb+uwe2%ZuDC0l?afzE&!L0&r$q%SYlA^qM+i|4zzKDr4!3CP4w! zf<!a7Mvc(ibd7b^PRy3J2UMHfIl~M?Thnc{-VS!B-)5VZIQ!?VLq{()WTbuLMVtJ} zXBiasj<Sx3qo5<2dtQgxz}_lYOryGU!C8^I)99#!_I+dsU#{EL>h^ZIOr}g<7f~1O zdE8<p*VHh#eBtpS16i-Oc~qF?UU1xNcrHetT0lzA1k?gMS*Vvi>59O#b&yf0y2D1x zbq)y3RJAl+A;chA^cs51n1<4q7PE}539ym@LrTfiQgd?8R>2^JShmg6+3|Rbb(QK4 zOhh*n{AJ~``+F9>XY#D!=O2zeN`XC3IV%o+P-~`Mx38UbFi*sK5MiY$n@pTVRH<G` z-oBYuplo6!Oa4RO1xvQ0PwF41=jk|z>j(;}N|Y_rK58yFYFq0w&j+AHH?vxn_&9`Y z%-d;>oo`IJauz=-r?SXn`UWK_K?OI6;12WUSgfZ!@|5jWZs6~7c$W}-28-BY8A>&y z9}zS>Q@JeSH*)OSM~oC(>{Ckt(>sH_Ra2?8+$!IKPq!!5&E}zU!I!;TqXj6ZTVq&v zUFEcYvm~TRy^A%gTi5!NeecW6zKXnHwh4%=qJZiKZ$?XQx}6xe#T4VtcIKG{$B4r( z@x%W_)!A>0`Jz4%>6Vm~*m_8BQNa^|DDP__ueor@e`6vbtTHj}qKg>5+!zXoE_NU8 z>N!={fXC8feEilKMuvhP_0PbjD9C_kMy?EwJr1mdl`W}{#7}*qkIKTOSD_RSyW}is z;FD%tE#rX4#`?*6Okzhz&OWYX_1yq+3exEzUXHJ~$BQ`~QWQ#z(<iW~e{{h4fQDjn z7o<7sRqElNORtalAD9NGhjAp!#n8+7`SDIG69G9B@BNXYho&n(hsAKnm2l}cgdbHH zR3)<VZ80WYiSr9Z=oMXm*&-<wV|UH$$AscXuksR%{!O-+4nSfZS+u1YY5&%D!v9H$ zf}?eIlxWk;ebJ?X{Ha29MBzGKRG6+4Rq~U);LoG^V4k@0zv(WOM33A)_z7&w68vBt z*+vfr{^-e&Im3%zgui&cDO+3M9+MLBG8$nwJhVND-lH!yfM!z$B(``@`yjClEjm54 z3n{$rESsWxpihHk#^@dC#GmI<mHi282*qyd!f*$DUowJ71TDtjgd=(Mg&&aVaq}-< z?KM;>%0|qO;)YINb<m|0KPg#X%~zj=7Jj9MKnQIRg;^BUEsp*No>G64YhnqI$#^V4 zH)+u(KH~;T_Mvg@onvS!vgLVNmN6?;f+Y>yIDf#_Vxr;=7SWr~@|Q-w>MIX2kPKev zv*nU^_Zi<d&g;wEqEF-HsOZS9CXg<IWu3f@A1bRUF4D@dctPXXznQI9$Yc3ub}amX znId@kmFV9-H1HewOfa0}^ZUfKcdi)4WRS=Fk!O4&tj%vBxmt6!(sfJ@;fTU^{J!ar z;FbQ%NE<PvAoLg*)4Jw)kV&~HDSgAOqG`hQRu7J?CfO`~;n&x2Xmkb@YXcrQgSPe| zpNI?@4(GLS|0G{;VM-H@ZO*=Vi<z^SC)2h2oxJPad5#O<BWQg)m0YMHKB_jr)EId{ zyx_&j(;mLvIt4PjCnr@|D~&GYZL{O3)z)zY;HaS3_Z7yArjmAl$v65Q^se}Q94F~< zPf`Ndug0E|GA2wez(&?ZSj^;NbJ$woWmnmlJBsJ*H(dyk#m;byJOV*OZ}2b@11J*l z>JTF-!Cw2BeHw|euhhN_V`ZN<falq2x>+nUtGV6Zo@>;vA=JBj-mddgL&RkNogxBZ zHS4ClW}vNxr~@p=!+4b91={j1sWYFf$ke8!;9rejp_d+WZ22MZ9zSqeF&y0r(t3Ct zl$5Z%VW+7wM>{ejP9|%;%9=)%e)ch>G>NoG1D+j&1vHXavVU1^HZ?ryh5k2TDt{OK zn^rBy=gbKPgAeNl?R2{jgRTMALUAw#hEo#4tQmwLc!IiUucCoq#55hk0uryxUjw`% zNDDPLNJuF;F1Vgf+))e&I_Hk{OM~)NXV{Qy9%TrM!|83PX_CYH{1NCZJr7A?vv^dH zR_kMosdo-jn{~AIF%ka^q!1Jlr{Cx-0{^P`J8HstDu)1a<gc~!U>mBa7sTPbhA@p| z8}by3&xKu4Q)WuxQu{`X+@76ft6&>McY;$5MZ9LEX~(j(29R$A@-7$E?FfFVK>$sQ zG&cY-6v&@*k1cnbRRKofq`fO^TkABK`}4SZwdJ<HxVNkgKzhl4N&mpJAYO~9)zWRZ zEqb!#Ux4AuNX4h*>~TAK3E==^KQ7yR!wQGLk$OnuS`82(hlrV7_?f?`-$B>eE1F5( zf+op4&k+}*YY?W5=zU>0n3_^c15p;ut6BZf;PSeX&gHL}Hl;)6G#dC78luo?-AB^C zmbEQwAG;aUMUx^GP*-CU+-0kYZIPAmVr?*u5>H8MX=vB=WFw<1zV5F9GVpHxrtzbk z-Wo=_t|D<@c1N#U%d+Wi;G(&rP|Jj~>9qGbVfBa8;U@;LwO)$bo4_Mh?K;J`5ATQv z>c#Yaj76l5(FSF=<zu6<`Z>^7H;}jYS+882l&*o2cEVOiU{9^gY>K0UCTXm8QpRRw zrc6)rxmxc(Cgllo2oVcrXD`EIMK8%Dk<3KWmbE@qGlAS*@UYRQ7O)D>%ioqomeYO` zWnfkrFmS2Wu6JOJrv00+H%0y3Zgcoo;w9XSIaz<jY{Z&xx^Am(K;JT^c14MQRE6Wz z+b;K~7{z!3HH5OYY^uU!q?1rb{~vX90gd)58-}{!v%*QqmaN^k8lm(8u}Z@;bhWA1 z(@{G9R|YNQkn*T78GuER(*Ljs2_Ky1wj5i_vedZ^GnngA9aIarOLX!S3%VSc2>;0m zUxAQv(3ABl$r}KIAoZ^xY=k2enpJbj*`<oUbxAApT&80a05Vr_Ww+Vg+ZABOj*CEa zgC0xuiNO)64<3+F5~Kz9b2<pB#WQGl0%+i}yQmOdGWjVh#bs9+mYKB)Yp`493CSA- zx>Do=F;)>sU~qVf!f0-})Y@|1%!d7QwTX`uF%|@pM4<2OR1|}9=GH=NMswgxyzm}W z1M``xRqLFW|B#XDV9s&gfZiGQsEetqj84}aMlaM`)6m~(xL(fiZ_BP}ZX*aaHa)zZ z`mf^x%;i^v)s7o}F2^d=z0qcFKF{L8%>J2IR6gAtj*5$r>x7zKSB1E}Lf>2sM^MFS zJ&4PbN3;-Gu1n<sgP-JpFD|hmr<ne<WS+d`9n})P!b)jD&^G{w!&ynXRiQn8h!Ytq z`v-CmgX{oRAMsP*OE|QNO`X{?Xc*Aj<o~8OY`)a(gA`Aay<A(sQj%w5Xfgn2r6=W& z{%RA80j9<rOCVy^LU;NWz3*Srm?|aXBXUVC0{5fI^NfkLC1sP`G_TSsNr)MhgF#7q z*$*27@sIPWDdxb|${8H1lb|@J2?Lw<h)XfrxYVN`Bf5QS{fgBV+BL4TDH<O=PPdO2 zf*8{L22%Ljehk7MQwZ2~4>J_kOv^q~xdD0Gh#*B=WJo30kn_YbMMPUSSWX$_0jl|r z9e7Sa>Bz|LiRuX0HBsAWmA&XVWU%>k1!*|nnfmb?mf@^$eoT46MW>J|rzLY2Gc?UA zGw(Y4t>&*&^ZNYd`aQ}dg8FKcS8d}WXX_z%p!Kir?<CR`TE-1w>>X-&jA#$e$;kvc zS5TTra?rdiv}aU4zh`{23YyGV%Yt)x`1L%j&v{B3PJbjS8NKbygf|34U>QcGf85-n zR(}lg6WkrGhd_1<XPRGQ(n#z*(eWgR9yuO_q4=Wi#!8=Sndc6BfxsYBCS<z}Cb>G7 z@HTo<wq$*n3t(!pwtmW0bm&L_qlV=j^g?T8fQX|}6v#R=;VT`l^=F9Pu1n{o-PzVG zRIk^|24~tv`Mj6+?|SZu>@aUma<V@!TzOYJEn5u60FsKuKxS}1@tmN<BSz8*2BvKo z%>EzW=_Z)bezU2U@EQ(hCJFD2mF$s@LNtDXJ$c4sVJ4B+p3_0)|EWS_DM7T30o{o@ zodC=~1d?^eCq1{0dvI>w^p<Y1=?s%1!p&asbgW)A8?N@oeaN$v1S|95fjy?)SD8Hq zBIFTkyYY!q9o*!xPG7_RFMPW-9CFI)6;A9GYE8s%C50?)=+u&V&y;IAOYTDC@feAK zSYi?;_cN9u>h)#%^O%As+IuQIQ-IoA(!{E|*V*Z>8pNQ2sii6{=ToOy-j@i|NZUx- zO)g3{x4sVXWfwdijrneI%U^S~^?9K!0_Nj<ye8V<VxQq!y?3y!lY-SneoU~fp1`Jq z!*e&^<TGb}Lbp3wKtS$38g(#pJm@?1W4##=P5cYX`6A+3&v_w@GOcW@Uu9h_JAAgt z*MZM#a9z%Jl2+^Ox8Kz)cHa9=d~l`69ZY<*B`9h<`8}h2`;mAcwzqJR(I=MC@|@HY zD1+P=?E9Muxr4<(%9bU%kc>FUqNo6_PmH|a^Ul!c#q~1Uc#N8$_?H^dN#9MDa>zvi z4N~GLQBZcc+yFFn$sLPsF;8yq=<t-G9utz8FYtU=CHzr-sIxhBCUyND>P0wCuG$9= zu)Of{%S7(a?-VD5<%L!WFRq^^Y=4^k{t<=T;UenQ<?*1c9phxiJ<>&5QHh^8j*#H* z^UV>o53crZ@x}6(T6}Kpj2F4(3Z;!l94Ff|JXxLE_C~4pP}z$G-%wdLyWQc(7PYJN zBtQFDHJJab30O8gMx(SLd3js1mB7$b1Nc>|nI=o`+w=Jdcr+HWL6}z%0uS#?JCg!r z8P;epHvrhVvL40opokZ-iNaYsKqe77T5@`M>VyPjI@i_Fp5Z$v0EYro92Gafpf8~% zgsl;Dk<;d<S)}8($Vc)@S41%{LWl9l<<6hjhxvmS%-yA}8%(3y(HnO#Ftgw4V@cfH z?2YpAXr;$n?hD-RjBU_AFU^A<F(Wf)l5*W=n?B(%)6y;#vrxO98hFkii*DCYz5k@N z=}cNN7Z(EAv8^td^EuoryWaagB9F2-V@Zs9SM;tF^VcEHc7x-*{4NFkmhXy>h#cH& z4fMt8l)NjuFMq)PuRT`p)IT1w&vhXu1+4O}KmM^%tTql9+@j0Nyj?4$77VxBoh-`m z@I^J$k5%ojwrXEo)W#q^6o7m++izI6nEX5_^ybMH4*r?2F7~fvVd2P>v*Wau)dcM? zL&7HqG*&J9tiMJ}oA%yc^bAQFY^m2AoO}AAJ$HLWBNKwCGW&y!g0_qOVyvW2BJ5d9 zyMpk53#<RW28GS!;(_yO%Cz3SGsr<jV4o2T{@7p;LUeGk9AP+T-k;WlbT(&suUmj? zZc)2Q&$|-o`<+n=kMZ+^*+~CQ`)!?`BH@tZ(uOpieacR&Wac5tFb<IdlyS{NV(KyA zaeVhwb7yHeHv#iuv)CO^#e2N=s~6t}a<$55)b`r*N-zHT3!eES%bKNqHPj>b^C`5w z+Ut_ge#-#?%IEGohv^=}K@83JH#8M}B>Bkrof(qk7-{Zj8dUNj2rCS0wo0==3<b@L zm1SJt@_jUh%on8>WM6H1d-zI-?@#e-j!Ue)Z@zI3`i0ypyX@<(+Pw$)h<Jm42cait z^{5TX)d6<zI$qnM4re<tzw{%^4Oh>b{o$x5Yf27LaD50xv{Lw!F$qYW>#X*{vio_< zqCw7m;~oE3JLQ@oT`!jiqn|GEaFaC3eKZ{pKB4@(^{7DIL7~FE+-_7`c|#L0xRc_0 zTk}FVdLJ5v6P4CQJyyEo{%+Z`Bwq0CdEDXeYRfe8G}pZb+&jCWG?ZHTR=!RM;Lbsh zAP{m^!1(VKaZXt$S!z_vJVZC4_+e37Rf4^&Aqd_wMUBBSYVCki9HtaULo!5!);xEh zz>t-5f7}5ny24GkajWaT7~oWE`58S6_w)}$Vf0_WSr2yt!5aO>T%NGm^iPZ})lqM@ zJoiU(U$`*ruDV?Jn{XxXX$8X><sfx;0r$Q|UE%$vIBE8~Kl=u}^n`A{i)Z-1ci^N0 z)ZzN;l#bDzsP&9dsx!_2|N2)EF4Iv)Cy|dY0ReFY5f!P?8kdjRwo4=^&1Elhe1KkB zHGGg)K0g#COLc0h`I?Yr#{BM^`XLJ62FTY&Tf$x&P=i?gYbZlz1k8z&-*Hd&K;MQ8 zT&z5keHad6FVrc8{ZeEbo&Ljj<#t4D<yEKG5=#&M_*2ueUVAtAnrGo!+{H9MH7RV` z)w1TQ&~xP{F&v(qX4$2O4z}jXeu?gfo`^u_=6VEZ95LPU741Wq89^hiDa%#$-S957 z+!{YB%<emrHUpgSgV)^I<O`>H^v`U9=VsrRUykZ~{&62{uo_Cc$44KbhhPU!tT$~5 zWgeFPL{9U#VUkV0GdNIYIsG(aUhU67=_xzc^RD5Z4i4V{J|$@v_aXqh47V4pTiegV z=F9gifdx_q3;i=abxu!-DJO80JpUwN4<j)IldXAB;rj8<lcPS-4ttI>Qlr!-gF^Ri zx@zbUOjniDpnc*w?mdf|-KrVg-8y^krKP4D(gFVC(9kG6B~(l%bmTGs7ixtQl%&?% z>GzpC@ktMwpO$}EFSDZ<XWxWEHFV9&7${bA6SLcZl^>juF}s|FX9^um&5ZZe_@GHG zaM0Ka>r^iShAe>ljF9<-@Fj{T;afDY5*lm$4Q8dCqo!iV2-u=&cRm}LIun~v84vV{ zT9*cbEf(_~=m_3Z^XKijz0?*xWvo)BwbERy<P<Fg0%0_Z>=lDk-)xW0p*9wA+HX~e zcy%q2J1vl03`Lv)_B_6Y%<?A&TLdK~d1tWXzOFQ&-I}M|6I#UW<hg%v>yFPfIq%Vt zGp=e*%KH|pX7<qwyKYbNUY%_fy`h80ii%<ShzJ6~teE8&w=A0&7QiZXEODr5Owbi1 zyD3Tpod@Z=JU0N)H26yrL~qsCnOF#T@ob5Ii&$QJGtw8=Co5bKq8B}A_!!ei5){UF z5V_z6jXwNozdi27R+nnCHHd8e9-a+NZC=P|^PvfNb<l!F0g`-f&5KP|_4&K?VnJT2 zcd}(8-Q-x{6$7O!wgUx}Fhn$303s%4BTDrgSqg!!nU3-0h*5)F2=D=A51}z*R(2Ny z-(Z&6H#mI7w<X`KZzz`#*lK(lcS6}I<BRy-Uoeu}LYJV0y5D&I0aZA5zqm?J$73_+ zyGbAY<ayV17GtFVB-G#WwVKwU<7B!A?eBQ2o`dM757-Q8cAw&d@RW$imBFB&U@C|h z+7~<X+P+Re6*ZHlhfhsL<=7QF2`tn43djrcc4wf`)O@Jf<xKmNWi*u<6<VGV-FY<r z5QwSklw%)9Q*N-)z>t8TO0KN;?WmGy;zj+Nm37GDiHy7rVf(F7UCBShI<nsT6D2v3 zTkX3<TUtNwg7aAe?{2RQR#dGjrJ&{R$&ry-c==+wLz%Cg!FXx;at1Njnh`H1+}*Z} zeS@l>N*BVk>lo)nBH-|LA7thkn`AjAU}v^CH#;xY<=Ft=xtgeBATA{iuCSA*XdTRP zPw+zG_M4N!sS0?m-tom7GJMqs!vn1ECV#`t`{bZNkaW(n?eLG+&9wHfoE?1Qt_6Yk zwC3iA*5WCl-w`Ol3Ox4Lm(qvD<?bSG*B8I)1m(0zZl3JU-&{=`Tw}4Jqjcv1tNBr0 zkSyHKHywkQnP*A@5c2A8|N6S1PU3MJVVcvg2!#48?6@qO@~05YmM%RH2Z}0zmr6~> z!6pmg0<FfCaxNQ@EnBhvSFd*a*cQVD_I;8#jZm+u%x7B3N*ge1yhWoQ29kYPUZ5K< zh4so+N$Jl@vTfUM5%jWep7NGcdC{S6njMy(&_f_cqT<Ywt77oC-@_^IF>l`85`ruy z9C9eoc951k=ROKbbgwe-KdkUr9uTgf?B{XyW`CXCwn2luyEq?x!}EU^u&cQa9Q?#! z@MSuCoOvxCSoGQ2h00=rmJ6S(qA>h?w|c&n==69l@e9<vP`+*NNt?sm)4P+dd2tl` zv*d?0b^a9k1wJ@DnqFViqI{9#LoSI{Zo(=5`H;POSN6=LzIRzis$FdICqp~a){5sY z(%HV9s#U<$K_(XA^_PafE~KLr2{wkZBul*CJYY!@G?73AkHn?1%{Ot#0eHU;<J+^6 ze;3_)F^@ZmT!)n`f|G_W@xW2I{7M>w0B)uHFK&f^K-zujKLPUyioV>a4g1i^Prs$2 z-dCJ#)(w@GbZ{Y~#l2bn+fX?PK$LKbVjlpnuXx|V;7=k1R;m`|VgGHY2{dGgi=kX| zA=9X%eNa*F{Fm_dkN>RG36S{#kkVx7v|kRU#6c-k-NNxOR!GUrPUcE>mzE``j3gZH z=OfL0y|zIE_hWqca@E@g?u9__k|!v!+&g05tO-ph5Q_b{WdC8@9%f(BlHG-o<G{D6 z-RRBw1R~Z7>>ChRs{9Ahar(_JH*9SSk~(Ma=?>U-O4_c~Vq++H0H?zM3^wM^D%pk| zB(pyK2^q8*1y>MBJP^m9!eNpcA<3`83IGfV56C!xHUqZkFe6C&pXjH)w{8G%gFmJ+ zwG_Ap$ZLUQJ--e36uVw$bNH4Y62YU7BC%ND&EL`wAD053O7g<}5`X)d{i9!warP+% z&m|3iysk|({>f*Pf*3E=p`674V}LIK>+U@uKtm0ocwg{<M%GdR7$M@ZTzl25f!^@n zpoa4=;Kw*Y5GEj5LI7s%>QCZi(36DwAy1?{I5ZBxq4|g;QB%QH7wtP5g3uj3sYn-( z$m!+b>XIBBLY(*zF}nx&U4##^@R#=s`LhOn_CICWYkvWL2vGf`exg;ECHK`j%-eAE zAhd*4L?{4x)NKyDK_J?g{{?{o-CoWMn&5G~w4z{BF=HL+b4j^=SX>R8n{hl~W=Wqi zVN?)#sA{J`78<1+-a!&rA-gLLx<E$a_y0r23FIoQZ4*i#0t}azdYQ0I0~Mk0Uxpzz zLWeM`lsH7B)kO-J4+yg<dJyrOeh75xe?=D$BE3ioW*}x(k$04+GLnExh{0FS6cjpN z09cZrh#UiiJkX;$b3zWv<q^ZO>16SvuZ{*V1Cq>o;f@kDvVr<=8_aNfH^Ykk#_Q-e z|3MM6;eJ#@EB~^qi-SJ6Gyx?i_q?*~GFofUnX+c!4g9NFeyF1auFy&3Y0}VSnVz#2 z6TmM3uZE(x(?LK1^sD)^`egsSkVEVHn>wZd7NVY0t$mcudrBmv`};N3;CUn@PUMF# zz<1p-Dhwp;wQns>X-}ytY3sNhWQre2QQ`SYq5HBw+A%;4Yzf~rU?aet!~lhU6eaJ5 zy!1=)!_yNeqaZLNV3T=|O7;~LDTn<Ly#@UxZRF?|(c%nE(@K{cp%<0=x9hjZTPe>h z=g$A!-xG$o%BTDoEGTsMoET~VUfb|&XX-fH9JQaJr~2~*tL>cqL=uf;IG0noxW|S# z<+DjuCDhnQ2D(h_2i-IgTzx4?Nf^?+dL&1I-)Fn*nTR~N_Fintuz$~}t<~J#7z#|5 zVuGutM>?zzq^w<Smr@ea9GOr*qtj;T_2T%>MS^$=`7V-dRfyeTMLEI5V`ltw(0(Fe zIN{ZQI_P7CGYZylWPaib7qdHBk+R*HEL*$(ZSrf#pzt-RB5JI6Jn&_FUpx!vi+A6Q z?{FJRt46WFPNz>v2WoLuR1uLRY7#uNR=#|07gn6|lxlEB{+cIFCmTwQL}PJ}3`9t~ z4Rrxr#c-_ft(<i)PB_Sz`imm9O=+kpF@!K}YHF%`Q>~gK9h(uw85_W&JJT7*%-$pD z)e%;Z&EAda&!xo<AFQ9k)!vUqn?iu@6j9em)B!le)?PIv()uanSAvCQ)X7xM+?dRj zGPc?1g<JQUG-d9^IJvvLxSE8Tj(eqmp^{FiU$F5A)x&i3)7Rpnh%zscN%@~N5J9ki z0{F`B3n`czeTC=!9ql(Cfczq)8@<iIerBPYVYa_9_$kDVJ{y<b?*D7++vAyz{{Jhb zTnZ6#Z6f3zhSJn1A(v3(5}`16bInF_TbQ}Ua$9amWkO<P<g(>5BDr63+sNJA=GO16 z&-e5F{qg(#X&&dC*LmGv&(~{b`$dJT0ACZ^jzDA@U)}3}8|9M3BUUHyXUF*F6mZ!$ zk>LUsx2#ZBRAklI?APtR`;d!`7i_&Kb4;v$@69hWwKb@pf4BM@N`XdJ{)}GKZ>3fE z)P6``=Zd%uhlMne6BT%_sYcBL7yz~TC3n+@o}7Q2xvu;P!SJmJSR69ScLBlXtXHC3 z#)-%sQl!ye9u-S~C;I#iR6^+fPV$eN@w|Cyu_x?Mn@gkD)QjIsF#!}S8Zm?22Y$G! z%jw7=tx#9@&%1sCc9wm@{I-~Lm6GL`tgc&-^8ax0DGYM4M@DQb)zuC-gVgf;kZrnI z2Dh}!qgJLb&c*dZb=Zr|0UeQOf6gl=r$Z5~f5as>c>M++p8amtQ8^teRE8E*PKWz% z)jMtz<}_I*wnENTYwP4r5B1motBUvF^ptD^(c4}WpEPre!`)helP2<_w2l?K+yU=I zurM6><#d`8^#Q?Hmb1Hn1mrYLA1Ar5>vFHPC|aRVpjU_L?sWbKw6}z_kO#Eq!|>LN zI>oZR%%QiBU(Wd1g=%;Y23BK_Ga>oJh(}XIQhtAnnSkKAbB5pK``GE(#fG1zP)4nE zF%X+ioFK!GN0RK=x~1k|fH{UoeQT&@<r+unZRshdPo{W}Fbku7E9>@%sZHr|3wS@; zjnFdAZ+a&#-G_n1^zR?a8R}?15{2^mUa%`(?T1tn+|t&~7s8LJ3x{1M@fieItZ8`T zc*Q!S{~Qu74iK(l^KM1=!nxC})F%C~J7e3|LpBHEawJbG70~qS!~{&L#Zw)Phj9K{ zp&jlvWiY*u7JP*2^H_7xq@eN~{y3cg7SVQ2@Vx_RC9RsCDc37IbQjLtrBSG#1<zQS zs)UCe#|Zmz)E}$)RLQQe3`QXwug_u@e?_s9U3LR1ehy_WX!JhvmC+XtH9xmA;RFk4 zBraMek9)Iii85S&p=8``cZQC8oKv=Wx71EJpB=FhqV`%aaO{`5k!@KIVl$&3{h~LI zUG@U=XHH6dmfWG}j_)jZnu_A3b&i<blz#Qo1eGu}d`n@Mbb4thVt>naQ;eScvy084 zSEHi=9U`JA`gL9gy*lWe<qSd0#YG<-GGpfDXG)RRK}1{{ef1{Q-6q|AghQAT14o`7 z_!i?%42qpd?t1(^!5XfZ%6lO;n*{y*l%Y?2a4)P&qDxI-z&l~qEFTx1$)WjFM7@0c zD`JYb0`~N^=sS@o_D2;>@;O%x)7EWR-XoNfF~g?*e3Bb*cZlqQXMQDmfDaC;S=G?; ze4t>xgnzgT$mtC`yV9E|m+-NSriarO_kIT5GOyqi)(rm0Xu9q(7@MnQKc?Z}b-FW0 z{i%^w;c$vmEk+pZjJKqiNzQG@vzIxS*m$J9?$-KfnY_O_5n<*&@yLu2Bnk;`6sq`Z z7pT9-stVTKkYPe9npAME{{16)-NFIwdAEbK4;tOj+ZW2@V5=Q=F}%3hD<gJ%t#N9T zPaCwemm^Hw65Za7&gb*|`s3@&-UrI^^`H-o9d3@y<zdN|PX_=zfXjHIOwZgCt}w=8 ztUC5%auhMb8Uyy=kCu+|nj3!fNi;1}Eeolaf)Nc6&Q|@qm(Zp5w&<gc+d;dTodc2R zRm7m%24)OzYQfHkTyuCJf33y+`XW31i(J<gi|m@D7>>CZ_wcWwv{5P?GwK*X5m7WA z`dd<7#y2$3ZanM~x;paVMHClq3o%4m#*Vseiey&KxRJ6dpOp~4cm9<G+j{0yEG^`& z{$Q+)#ZYt?nAlvpM!oUD{b|l>SG7hw=*aclW$do3!ZnU%uOJQNuVU(pUxFRR?!=L= zCSEbVHRd=)CM1v8ke{Bz%K~yiBzmw~tDqKAjB}(vejF%R64ERpqjT!ixeIFw(a`mD z%$Qr~Jh4<wsBU_}gDNf4j};WzGx}M?q@WXKuQmkyf!BCk8i`mumnpBh{6$c;9vb|E z_akm+(@quSJZ$)P{L$Jm`j=sdS3-^^B$-)q>3ZK^OqY6Cb4-l#7)&&uNa0noy9VEI zrH&8Au*loOcQ}t*1TEJuFL(SM-romZTb8ZD?SEaI6jdyR(8WB#xRAYFs@l>4%rRu_ zH6J#te({9%!QZl72z_{KR2(1kTniT0eNDdl>AQC+#)VfDJ()@OP}`U8))+hN;}xDx z9V9O86oe*FVxmSpKELIvwMHGeBdsa#S$0m${WnGw;`CP_Uc-yRT=DA>Na%CbC}3f1 znR#m^`<T~ub^Bfdkef?%@FRP?=HlIu>kb(*?-q9hPqX$a41CDIm09rh27#<95m65b z2*S(=*4cBwNxuAqBYA>}+FrY?MqXT${j9w3s`<1<J#04jc}hS*;5hw0ePfhEh2Q4H z_5F1UH3MjV*>3(>d@CuUa&qC-IRVmk#RogrPKT;p6P>^A<P!8>mEFQ#T6QRr(D>-) zb;SA`Ms(d|@bBL_q?jgA&3)YtvxgwIb7DmB%320I2bNQRAOs)brDV!V;wmldDkKxY zgmE`QD(iy1{r%K%B_+j9s7|Jmo@|m|a<bu?p8CKKL=cetoMcAR+~pR#osC=KHHqjO zhcS_sQ}YcmU7oIDaXZUow*FavdPmi!<^VP<cplzi44LTxeHVowG8sQl5=RGef=LAG z#dKoOZ(62meD%3ayV9V+A2evyu)~_nc%6^8Jj9#9ab~o0r!K}*wSU>Aw9h0m^slRe z8sG5nqh6DDp)&~z*lSdLTIl8r=M3O6g;)~0tNc+2y~rc?s{4b1f$^HPLaJ-$V!hh1 zOo_F}P3SIxtyIZtWUu!&8Dx$+m`=LZK_-rmjUo1fEnZh;1#Vn8)5hl!ju_9j`%)3o zqd7X3vuj%`@6py!a31>w+N>7PqxV8aFWtRaW{a>YjkL?bX7BazYeQ<pUX&FaxmRwO z2~M&SciUr++`TR~vgvDl1UK@bli0iWvF?@*dOXAWsh7e2jH(uOA8~?%*}g*88l*{# zk70h~rM8<A@YBwt^bTZep`SxU)SIn42EPrW+k{9=eF+@de?mu-168PY<yBju&wf5( z`i?>F{(RcS71Hu_xYT3!<i)Bk`}*Y-2%S2t<z<wG=*g;hTF1zjv15k+T!|G?8M$K9 z38BN{H&@g)EAlxykQU$N3UZ<ArOW#nj5fzDHP^9c-5l8dA?vK6)NohlH*TOI0{mc8 zeNlsOR*0aaWF3ohe3Rd;?x8TYHQ^Ajrd{KBh9Lq}egSHgeIw9F9i9pg>#Ea57-%!! z<+;-9Tl(||yH8KRzH)k4homw1hpSmqE{1Jq;)F(`cieWR81D&1-9eznR>JC_7yow9 z!FccrFP&xgJkOBZ!nxMr#aAptbun8RYGZ4!Z<Cu&s6liSypBZ0TwB!UuMe7c&YUgT zOq;^lY^>dUYXaK&nH`v+wKt|FDC^0nd(sZ?;27+xTCcs$v}67n$_xYaeK0xa^3Aw7 z^q}dU(A1yV{O)QGug`X{BK13g@gO@r5cJsP8{$P}oVHJK+l{vu-AdKnJ_HNzDg-=2 zt$b?ST?p$Y4?WubPA@qbm}$Lo!g$wj;O4HF2_nsJcKROuM{Zq&w;ia_gJ3+=6;`lG z-URoHQbwuI3hR7BXi;4-`@ezX7pZoG!=5g=+svFAnuzs8#+U5fz%vWr+63Xx%b07P zX9l{wmnx7jji_0r5Q*(eyMu#{n{atpwSP5*czdqR-}yD4mwJ~?NvXLQ%-o2DsgjLr z+)odqXENcS@2<&wRba+{gEY5oro=Pf1P^0Zu5cuuu{Icr6T|78#bFkHTB3aGbyLj% z#C0h!V8r2IGI!X9*g`DjoY<U@yu#M)ylCcDud&rTbbnq=4HFg@!5lC3W|=^9qo&ny zoG>YoDdGe<6d^VDt#)<B<aR|w_C{B3f=eDchmwG&4KCAMH52aHp68cjLY@=5d_=tL zQV-I!(Oa-z`eYTMW|*dg=Rm6PO;xDcbL1ez3$vJj<Snlen+07D*!|R~MiY6^VCLEd z*|*she(g_j)}J?e__$BO?#Tfq`>%82*QcPJ_ej+5{;IIDR^%69I``(w>a1w7b<!}z zIY1OL5b0s#pAr04&V@FVS3O4Lb*<Z<oHGh3)Uj|RM4_lJK3p6j)eb`B0Jr_5x+~Q9 zrP`J&bjj==!B(i~!L-<Dr~G$`3MaU~ib0RnOulR_^t%<QP(YlZ8msP28XoT-lo3GC zP--@g#L2f>YPwXSAdtIEwC8Ds&5t<iY{#?Uv{*Rqt}wj!!-jO5{zlXZK(CEM(hkN; zcP5gS=_3wal)9NO^`44_QSVruo*XgVtFC+T6}be|P0{PG-5#}bzQ4?r^4Q)6NO}hf zYR|Gy4+X`4s71D&zLqiERi?_KsqtOcRKWRn3Lf=4{+!4fcYyRcvCx_I7ZqQyZVI80 zRgFZ%#h9|EAZSv^#&{UaJ8EJV(#cK6V7CSpW<|7ud)z-qt?lz&FMT~8vY6swml0CF zXgAdLZJXwFx<TY%xTz`=qvZ|%S#lqh$Zp~2^~spqH2k2tE@RlC^v`E$rWB_)w}E6? zZcgc?>aHS?9XG<Q-!Dx9G4r&g3Z$s-3L<_d7zC9%hsFAp85DCOTSM_{V~dL(YKX!0 z6pQ+2vs^A;trvv@k-;n1g}m=qaDv9eK65DTy+UG-p0?l>t*}tdw8$A+pIedNjk0(K zKNbdEX}ShP_R!f)=FL6jD(v_G*yc{)fST6VnS{R{B2{PQDmf>THgP+h&I<}vBCgxp z4H60hjFKXzFPwFxM}|G={#yGV`v-?#@0_WLcDa5xK0E{9Z%qMNoOj8=0lZ}V%QmaG ztL$jpZMauRKKY$i73bqq#dqWip^;E}{`k(cy>cDt;8IunLNxK$LHa)6c>0_dKD=1* zyo#WlvK!I)V2fJGE>;_sq^&TYRN-k3^CO+01`C2SL!7r%y>z!b$8-fm4^H7jNFOK~ z@Tfm-o4kXyK(LHhKDXIkt?(J=Q&MJJH9-?TXymPaXstN=>sE2psfc|^>uHFp#dP0r zdg;MB!MI{P=~?VxP#X+RUJ%)puea{l-;~x?*@wDmM~J+A9u5JjD+Ewonf%`Q|J+J6 z>eORXpNRmx!9bxos^LV~X8~kY9eh|zr9R}ZTK@RO%fYY&Qsb|d%!OC&XLcR#*)>J* z)O*s_A{NMhy=Pv0DD=`CBZ_=SxA1w7KlK{yP6^hCI>jON_2;A0V{U9#?`+FLQy9<d z&Q6sIvrhafVqb5)fdly52o!I9cOZC!FFac08@f{j(;dS^PTc_MlUouD$EZ_!1&vLM zKNN`D4yegKGN08h0wKuO;@BJJKK`{1-bb{3w$yeKbE&?SXhbXA9QBa4b6GS+DV}uS z`#T7^eeh~@T<}?|R4C8N*<ECIl^5aZ>@O|U&89Hq-e!VVW_=}xyr$AtH1h!NY3aMM zt6MFD$qJvvPKtQ^oz)(%^g3Q&6>KN!6A^YKbK(A!!Q!teg#mIEBhH?y$nZRthsl<$ z8*jUq&C-DbKf|#<78k8z_zARc^v@b-*iWG`U5f>}`$TBuap@B%MW8Zs>7GgpO4+E3 z+02A5ESBl*^Br)7)UNDr{k5e(6W(IIL?Y*JN;lY&oinZDa>uP>XOi}+(ZN+n?&D)p zey@>%qII^=#`ph@t^~yC4T$sOuZ>p&fE)OCX8vurH$-tqEOpi6xarM_tAjSukJEfX z$3#;+$E&o4_u-qBTH7`>-Gys&kN&0_bVzKLObh{7%!SSyi$DVNs0Vqr0*)LZ`8WDl z-w8xYAf=hXFocm4{0VysVDck!`n~<oX;ZB+h{%<o{!N99rp*m#Z|Dedf5%SUtNs%1 z5Iw*;zbOSav+uEe`4I3>ckf^rHub$*gZ8@lgsSTd{w8)-uEyeb+fJwQqwYYCPJNkd z|MItksQUPCchl37{r%j({uHhATReW6Pwc-bDYgQ8xdK_$1@#t@MgnBLJ7}y=Y}gc0 zj4gmhI+aZpM4_Za>zkX7VunS(4cpga;6=#!#?sM)D$37i)(ae?$i4R#@nO)bc~?F) z@V^5RdS;^<nVWHL`NZj|FZdck1)v~p$XjJprFA>9bIa=7;gh)$*$q|EKd6=svi|mA zaVsOJX<52%^q`}PXqj4(S99fp@?rI8nC@rcz)SdI$$p4DC=EUOs?f6SPRw$m^<<yi zx`_)0nu8uCuJwL;XV3K5&e2^#$COiCgB+G3#%o(OVWLfs$`G#!_P?Id+bR?Uc7m5% zJMQY<XXa%-tg?uV<R$%2+~qUd8oWT{_6%7K)n}g(n@hMEAn%CHg+|_}S~1b0*3Ra| zZC4LILoahZ;dp=aUj=Q+T*I5ED~j}Mxad)XKi*Jz54T$_LWh6+A0;8tbisNg?`~*h zfqA@5D*#rB@BDfTpo47Tz<@r=s~U(ch(pN%u3P^f;O8RTyVc5%f5-V)u}aDnw3dCW zQU(BEJ}aBla;~D&{gQvb@Jj{&nDklC_<z2VL>sr7c4Y785sR#elK6Go#|kyg{pP`; zc7!tTT-HG_UCI`>1Z9g?`CO;cEN5LbFBK|0Mt}#pN0hAQXO*G_rFHJyY-xFwi~*3! zhR8!)$r8ohE2V>|kjNHS2aUcuj4nQh(ZzJ<EXg@S7~NG?`JK!!U(5;e{|FG7Z2a5` zzzgkn&cAzz+J0+rRZsEe)mAKe*UX>q5S@hxF1R30mpoa=Mt++b<`IwqLxd&)#vyk% zPsa+Q^G*K&v&8caw+}%-qo&`*8bjW;FPi}n=;wW1O#w>oB6?FIzKgf*CM0>O+KJ}t zee1ZRD+s#KS7Hr{9S&zY+3}KFGImPU<ljzbnbQ>PJp1sr)@QGxf)~md<KubgbnzPn zDe;F%CwGr6?mw*S?*UlHY6K`^x^*f*5CC0cn_@WHW$u0W4^pZ0>DdOX0`}{@(I9{< z0$P~N|J*NmgtURhIoj4094g_b{8f!FybSD%%;4GF7<bC~k?eN)8$836oY|VeJqzRY zc8^{jat8omUxowC?bkr--M?*#_fYMO&N3w#B@e^?e2*fLlXf(~_T3{{CI0K!7wwmI z_+PMc=#~4+>3mndcFiq8<T~s9%zsqXDSz^v(XRle_d2KEaIT&{r0PbGgf(kljL)KJ z{fE=5E{LT=ZohE#orpcfdX6_)DRaK`9%}vlsgE!-00Hz-GMR#%g3kaNNKDRwX+L6_ z9~y;Ve2}K&&TNB@knQdf!sotjNBFJdaM;mgZ`64C6E+=Mw2YX|c~@Wq02?-D_Lhj0 z$rJF{S{jW|LC^tJ0r)$8Xyv&7ihQZ$7Ua^@h>Tc4N~~eWgAbgK5lHW&vMz@t5c%J& zK0k)bG(W8Ruj(~#mee}_KrpHaUpR9RHu{b}T5}OHV*Kw05~sm<gM*ByQ;u`5xGaAh z8c*f<cfk@m@ce&%RPUI~Trwrbf6)_1^F_|)7ut*4aBBv7!@Wi4q_IcS@F@F4)_A8W z%e8)a9eyU<`H4SwMD33V9y;SUY)sXsW5}OtAs|W0H#r>ycbZ>o^jF&jPlUc*V?#8F z)?-D*fJAdm6`2;AIJDf|^cYjacOtie2yb}y#2nDNq5RFIGtS;F{3n^LqwbMXSO0Yu z#&wV8t(u^=NiuWA;5O-r34^j)b!lh3T%@FEIwEI8eomPPJ+A1nElxns10ZgEq2WK> zb$#;u5YaWLacZhDT_{waL}QZN*d|)Zg(|#T@aurdJ&)zm^Na|ch~k4DauTq+R;9!7 zF^;|tAQI>uGdJLv@%>*(7O(mzQzSE?$BRlE60-|9K16-jEgL$t)-vTA|Ku+}*kBlY zJu;4AqqXCL80qT~L2jDdg=vzLAW}MtCS{;j4@mYWz%?ZPa}BZV)xff8rR?2r!ppns zoShrF7!tgacaYjda`-M9M^o=<fgYDU$B#Dvui?TD7<HQH7kh`?20YRO=9MGAxQ#WH zK6ld%aem2`y0MR9;Zp^~F5Yr7V#RD~{-X7rr{~1P*UsewHT?bEG+&p-KmWO927g0W z|L?8dcdLfgX$d1l8ztPlt|*%3b_jlOw5)6k3AIo(*S=r;@+BTZJpJ4$-MwLw?@aAM zHP71rFbbsf+#-1u_h~{<V@|vb&vQMpef4M@iR>;{PKiOcB;pEGL>S_)ZBdCjmv3*E z^W$TIO#2YhPUUa-#kv1Za{Rg5-0z<B_Km`IiNo%UrPIapYcuwz49cZ}xuX_|etZ=T z_23_T&%^(_YG(V==&h4p#GroKX0Q;#r5G&wMej;rqOVVw{u#dU=HGonsRB`_mc6ge zf2=6*={;2LwuU^%BU;qpz3tVfwulsb;l(nA^!XIPIf(KGz!364hQRt%JerkDNHz9w z&Y9v`lub>@M*{3MVdg!@6vRQz)sD$fU8PjTB{%^`TlAzm*yoeTmjqiAF^Y-B)wx*t zs8cTsCM$tf5p~oEap6CmElXMUf|2AVE5_Tb4>6Pfb&<4z|5`xgjPJ^MuJeVB$LwOW zz1!0j)SPk1FT5AU?jI_@tN^n~q_@GDki6Q}wNU(-7YHSMX#s{`1#;WX6$82U*dg?{ zsbVUo-5zvIvG9l<|J~Vm<<1|&epw!e$J^gjZtx;M1|g;>zqD61AbfEU0i3a0l7}?J z4iYONjn*S33IV{oK~zg+Ez*u%#J*uG4z@3@K>8O>4?9r}_kVngIC&D|>gZ0K+gUdk z!UQ_P){~eh!bO!ki^T^fo^4#oKqR)eOPbi^KNB_EYi8^bie;_m=%IN<MDl)w{9~a5 z`;X<E30;lVFd#E{x$8H*!KnU^p76GfiVfw*UBq?e{5dI~7U8RBDyws3O{{4nQQ;h4 z+r-Yl)3R}0ea~qtZops;-a<ckxrP>U`k=?dx>;TN_VM@k&SQ@-No4B7?w*olhzm;j zEUND2+7uH7ss-i?v_u0TPU)mO8?Sx`vCoY`j~^MAMLs)a(N3c#?IfeS&WFM@02Bn_ zlbUY8Bla5^g>p38$XYdnU-n#8<{Wyi{{WY%5WU4PTRhuYIkT=kAVBO9Qn&E@=#-*( z_6%4>l(<3KC#W~VU)!KKo7JFrOp|WP8T5Q-gaaZ#Ej^MJh1%8InmJ|5#c+@+(tlzv zz>o4U=@Bw>gsQhn4k{AeFdL3ax!XRw4sgR&rU+_hUF8>`%g1XF?4WUqmZE$uaOv~z z<eq`C?S(BL;cAomUcPo2hD7Eyh@uN2fJe;kZstA6Sn$?9I)DD$z1D%X_}=&Ik!l4( zq59w)llZQ5Sh_d9#6XKja4p<yiS{g^t3@A)D``&PR|zB@#>H4cw7Xn4^f>=GJ0WLk z{)N9|w=Nr{@YZKtKFOAym0TGyX@waAd`UU4J*x`^RpR+zdLGNmtPjTaVmXc0^uR0A zL!+UrB=iIlPxg)a1hVrS;};2q0ZBy+JHvD@RVFRQ8#2fvrmihmFweH34GGNR?`ttY zwo<7lnC1Etu*ouF@l!H7-(L?Q=!R&EtSc9ke)#`<lSK%22*PRolAo~2941@Y2rk2s zrUL`jEBOStM+qY!mThJlE0iUuyMGh(0`z&6Ks3>sP9e3n6ipvtrcf3uRDTngFsrs) zKI|BYQ45rV4^JsTIx{mO)7srr+D9pVI^7)`=N7mt&98Q;2p8c`OBS3b<zuMS)j@$z zCyj}g?kox9>Sw+n=$qP?(L2D+<TLzai&Fdf1S^^_%U37Z2pVYWtc;EX!PkN31A8-n zBG532@4{uu04f7tkndY`lmnPwZ{Ut5+|jVthSU12_5;>p95gPSq>)w+Oh7Lpz@}#= zYvwrszKmO{I=B!$@z~L9Zema^?AK*h!DQmd@fv#0uHZ(whjlB@Ou!NITj#N2z#SgC z#1<=ovbxe81Ix-FeLPLxTK#ZGgB8=ehj2yUSc(4uKfUYX6hXbOsB2-UvVEzz$(TYw zsts&lYB7vz#~pWxfaW(7FsZH6oGJ>%oRtrMCZtN9E|Ge20TZ5uzLct=X3RPk(^_U= z*$-Ysu83sjN9NLJNXgfEw6P|#k4@LS-S6<RaUF9I%$+YCO{e}&0R2mX3xrCX2l{7V zrx*oL9)V2i8-VLzW>YnZz_DT<kPY6ru@+o~39kL(vt>rT@YolqUkGk)C3G@2Oyqo5 zOBtvR@JiL01;gpd)mZ#~Z*cY09Um1t7D0NpZ=3W};7iCCvrMv#*UAc@({U*an(5OP znOA;9g=bMNfsH)z{E+D_hImM9$?+-RQG;*JXntvqY#BAJL2ac-mX@>8PG`~_#5JUJ zylXOX!|7+Mu_K{>sy!b`cRJ?>8)(?r&FX(|F||uJ1+k(PW=t}#D4u3d^#p79fZPGf ziw5)+J@0<R&>y}?n*2w(V^tr+u|o?JPn#UTLd;P|0@Mtu6eRqV%0mCBO9vO&sOYNY zEO@d*PBvl~6Z)r;t)y}kZG69)qtwA~={8CqcV30tF#CeDESE-Xq_;UqG=oY5^?vH+ zw{W-i#iHp%#eZQ+C9w1VN)-IItE02?j8?Jz#Sz0Fix-RC;x^12^p#M6hW)S_b}Yuw zo{O|Km959(+T{nYDi)E>90SHi030QY(wgmQ<bKL}GR5K0toCd(hmF6bHs1+Gf^oJ2 ze3qXR6<Wr{UteqX^>L4dz_(W(*J_>V7pubPNQ3#NHVx?8lZXIU8~fsxy@o=2DO_Ya zD;Jr(KC<e_=q+XUW`6G_zRC9*Zq>H^ANxvo3iR--SHV9JnN(KAc@c9pr{h}EeglOy zd8Zi~dBOGK-LhYe(;eSpP7h9Kr%;EV-NtAPEW#D8*CCc-r6dFVoGPW5Ql8uxVmEV6 z<rZw(+0zJM$#nP-b<|6m;Oh-EV_kZJN{X(N_6jXUB<EB-%}_@Y!EL72t~UL_+mnxr zE>X}3aWlopsMHlt(Bw9cZQJX!Mf^`LL>(PEV*05VJCY^6%}=7GFCd3^Ix+MMXs+^~ z1bR#14%{b_Ll07P69j$!nepp$A@$EyKC7=lI)iZZ)|xBRjGRj5%S#T*G4MZh>%Rqc zTM?#Hj@5~FYlTCf-txG!UQ)F<(+S+mk;tQ^*jrGUqM%z745S%n^)jg{g9teLzq+8n z|BDENzmX0V*WE42{dyp^aX9Hxoq6-oXVL6TwG*O^+X&#w*9^g*<S3F(7{+g1`iw^% zooqgWi2SG*e4CXET8RGirDR^6xSc2rf%QE5PJVJZ0RW^xP+8>d>7B|_c3E@g0<^fl zTydGSy67dc{9_5hKFLAyV>(*+FiXtWqkCO%0(SIH9ZB(}2x<5>FQo(S0;KsXEn@Lv zkr!g1SZ^vB<HQ>MDN*U`BQBpW=D6F;1*dcSG~w`~-;Vq^yK)2YN89qiGJnckT#T?` zhV?wlF3eHN?(PnCm`Cimf#3(H_HX*D$&~bpx59*X4C;;0<YFLl29s^KRBh|TCO^I- zTJo=WNJ-Bdpbft<6p=%PBgNpApXUsO41!G&8vOR!Qzm%xxpq}4ojc+lUz0sXEXRXD zAsr{RRL2EcyPjMQ*c~-T$xlw)yRI6hl5{LJ{5Ug0P#fxUR$MadGB}dXfDOQX*P|qQ zkc<fqhUp|rN=Dq2V~v-m_90e>HYsO(f`p)jh$El!86=lFpD_7^6`LL*eKxMH!kR0J zi|pIrwAA1t63H7>-(}GRc`5Y!mzrk>xl2z<7YG&G>p!p;ft_5GXILaMIWpb0W;!X_ z^wTpJ?@FnW6LT_BR*Ivf)D&hcirLq{-EgUxz4FLt%-sDHjm}uG%$!bfhq&WM)32#< ztn@-P;EEEKv8$~=MgTL>A)YoZH~2Cl1VZrH$?}H6i2jM=l7-d1(CPMv?edh82c8t= zP-f^~ELkgag3ExGCcxJewI>0wyPI(Rq=9={^MyV>-C(^w(!DV(J9=JD=gyzu=1WgF zDALpjQHt7D-?e8QEoRY+>z^76={T-e)V!?Aufp{dIfrie(o!;I04+@2MkpbNzdc#v zZ?0EJ*b_JNX`tClhuw)@qX=Dp*1Lqs$9S1Raiw0@NLy$wdf|3>F0Vk0VlsP+Ueuko z?q9qa+WjK}^(*|R_8mq0VfwU0Zoa1Ie>BQn>qIM9@QG^Ca`%LEpULM;BCe#CO6%~< z4)?+al>n!1a@T!q+PL*z?2M01Ke<Xn@Vx>rGc;3gNdWF!Xzz$k9H-F-%O2oL)3UeM zXACxCsQMZ<=LLVZ6s>D(#ISND|B~fVg?B@d8fJ&-T1q_HSpBk&@sld*cMCByvRrG4 zQXDS)$E6>%KL%t&blgPEHnNNmuws3dJ2oFqZ8rdPwc1p(h2iABmvkr(!!DpeibUih za@DtgIII?9FFkaCG)9Y4@7Hohk<4&c6j_)ZG7bJ@`K}cJ^qGc9;hXtlj|STAH;2h` zOjOIhoLI$+v`g}eiL-dDL2zA<GBCW{ZPtR?jOx4RaZ|bJym`rGBV~Z?7F^*RzF<l( z_^nUYfB7MtWkzcCRWm0h*V5kMpcn8$S5(z7EOXL~uRsZ+ojF;J{QTobwFY)zN6O;8 zAML&s%9L!Dbw$yTy}%t@OgE&wdNCi%(t;V*-HRegusZ>s!tW)VZld)>M46l*ToK}O zU<T(G=i#FVzAQXJ@|~VMC7OAS%vd)8>1S6dR1Lif_fbqN4^QpP7Y~HpWtER+VQ52E zxYp8lP&5<G#}4q{>K4Y7WfJhBCnEzIDV|GFnx0n%rwN9_$~35xrxaRK%b<Wt47Q|Q z!O1gJ10E|T?qEV~J`^kAdW9;z%QQh@-%oaGA0%QrEm$vs&&(t{!9t}Ul+R2H@`#DY zdbj}p?^g}f*Hr9vfP;j9fKF~%A71`i72f*{CJ)X5BC5}o#ERDG4jD-=Lw8vVzOZ!5 zN%^#ke7Zr&#S9kF6aoWq!^vbYRd3gf`du%UlI}=&B%rIIk4M!c=sA8cXZGd)KC0sD zyZfook=lHyVS2mY?A*^Z`&>>~5jU8U8ha(d06cFp3EYgWznze(WJ)?3UDf+llT;Mr z`-(?wTpeb?%zKteLNLh-Ng$Z6D%n_Q^(iL^HCwyOHWJEJ0MD@BgKz-l7389MvG{{j zp<=9%(5J60ec#H8uPW#ur;W2?CR4+$fb8Q+@l-n17;W(FS3|RJ^Io&X<ultt?s}oI zEUn2JCPbkAlX}99ehjFCkFPhu@^@j{l|bnPKCxE2_6Jw%t)|>^<{aL%KUGY4)r++= zN-%c^g!Yp0&5QLdM^=cZ8Et|TwPWjhn~jUvXmA1c*p%G<?Wlp=lblGyBqCz!vW_&| z92f(WXRdL--6LeMR!Hh?E}VWJ1<Em9<4SAqQO{}mRZGp%2;Hk5HP|1&ILY)DC``Y< zeqr$K$DZ#e9_?}i*%|K{;lOS)IA1OP?Kl}bc>`w7%*sDoQ^v#o8c}&+rt`HIEBHi2 zZ~?HgnBcNltifVju97f`EO#4w%Xx3Dm!fnc{l&NHN*{t72yy3aXA%t<T}=>9e^j2} zLop<;D*xCJC1}xuuB-MZWy+kh<F-)d(=sa#4rX8PQCGtZmnH=Q2=Mb>3e2=ROQR;T zuyYV?Fjq?e+Tw*DwUyd#urR5DFOF9i65x}jWhsqZYQ<CBIZm!ZEiq2$5x}i8)nvk4 z&K3`t+t^L*_9ZF<U$1R7vU91Myu#=cYFSr>9J=*sMH5G}Rv?QF5Z00;a=43Xyv)xU z;bD3xK!$IxTM=5IkvHMs@2(Bh&Ou$-D%!_5@=aqo9nY-ISK%$4H%cgRL2Z=u2pqF) z-)m)#$wC96F0LK}+6;A_SL_(oo%Hj0VX!u}BZge~CwC99?1$zf4vug7sMAx0Dq%(= zD)z4X8t`2H?|@7$zU>#dXoXTt`Vl>Eq;fJdGn3RN95Hz(09~XBl0KK`6EB#NvXdHq zmKo*&CO8HPSBXQ^E}g_hNZ|DyIIRVAr{1<%O^Kfq%P{Y}oe?3|IxZ3IVEgcjv)ajx zLZ}Y#2583o`Ti{bEOn;JgH^Jw07oA6nZECauvxNb2j&`n+C9CqTUh1;=RNOE=5%1a zv68p}DSsfbgL3V3l+<UD4QZw+r#F4kGo1v3vE+d)tdOjog{zRS-^&^JonLNf3v-lW z>j+wd&sZmwbPv&L6YO3bI=mT@@ngUYUdT{2I*%1+ssz8uQtjohP|@|Yk<ST|LTe+^ zEd{i6`-Hp>CuAvZ=k(R~lB<*X#ohr*c;TTk-;DU+*13B)c#-Nmn`-vn5pfa)N+ATc z-al)7mMPR=YIejA;E+Z+6&nGKWbqpu(RVbMLVd!orjlRT(l>2UBMg|`dCNP%(&p`& zTB;mc0o^oG+uVnu?aj>E(kNts%R1Au<t)aRzmP_xbraT0EZFXyiHo(B1(sx)suwFg zN*79rmGG>IH`dU1TJ!;w;w1w-kg5kb+&xuaKiiX(LY*DfdnNv_I`kY<f${+6rB0Zt z-L|3^Clwha$d@(ip@mXqbT^goRh-?;HSSrq4z7srR>4xviwFS8umer<A3{J4T{jj_ zmp&lM2iG+FzJ<+9Xqc@NNoZcNyLb}G_M&bHVf$36s_rz<7IS>K*wz3{$a#437d}`L z2!>6+BfOoc;9UNdQLkcZ3d(B`5cEe2sfd0bVgz~OX$kpJsEVQ;Q|C8bhVgLgkSqZP zZ2FCAU&k#CGpF$>0C3FkUV3}i2mkR^%vxWkZm>atHR`Rar^I|WwvcjTT<{)WfLm9| z1EN(hDszY-<#ji~aU>6_!(CcO=<AFL-b_mA6HWF6u|BTdzEnw+hxZK}@bi=3c8@Pi zz23F7Tg<AYhrfdOk_JV_tFu|T<O(p9PnaxZXS#2SkOe4j6&R+DLx)4u#v#56saeHg zlE{x_wSZU9=9I1bH+I_EX=m#C)U8l9Pk{&vI5#{6U+S~d#`bon<NC8p(Q;EFwa-9# zGrdDUq;WF4oy!U7!@8hGp$%I&p+h=!=sf?{rTdM#<M0LLFdV_GI;(kGS<*P?^X?OR z4Ix#7*O9lKzxeoi@GX@y@@D<T)pJkm&kDAQ5Ac((^0o7q(UlYY_2Di6;y5)l!aJ;f zw)oS=LlnaCz3q9+%k1%PO*ZaRkp~b`<pb9<5m24Z7Aq-IrTpYQHZG-H)AO^P4b^I` zK4>+(kAt&)51n6H2fI?Ow&;V=l`QP?spRBp2a-2U=1Y~*2_Yjs7}_<qpNbr1oU1Hb zgokvWJEB`bDtPhQj$3R=&F_Gbs8+~n>YCP)VbI7FVcviD=M|g_DDP$9V5+q4%dFmN z3HXfCI$MdwBcjKG1r{OlUWTcXADd?Qq5avV%4j{b;3O=Anree`xtSu*o+5$^Lg_t1 zISk+rq8j!3{b2}fxa*K*qp~nAuqW&8Glb~RpWxC3V3Z0hC;0nwM+98C6WUC^58V7c z``vcxRXO^~zVO|ty{qTMtY%esU+8rK&x!8)zcXk4qpbKUbFSm=e$<0bb@bQAFYmK* z`KZoOa8$08DQppM-oQhX`YW7I?XA=d1N*KTrzh=&{(|Z>VI1>|%3$qQ@P4TIZifr8 z<$D8kuvub>uV<tPiLc`kyXsmA_HR>LOfI!x>;8<B%eIqaev3@`P-)awk=R#jLLG7g z<#C^ERde;U`&eU*N*mhYn-8{qKW`-^Xk|xp&MgW1M&VPqzBoS}wI;ub9+cAo$@dlk z(DToh2I%njmvtwuE$f{V6HAzOkhyDxn(cUR&iob^9#s?0UBMQ5@Duo5QIll0Iz?Ad zo^mk&mq3_#cSwfu@)`bj-9Tb_dh(weflhH}762fwvCF2N&cxdI%|DciLKz)tbyYar z@h&iBPwHxL7=HKi+pSuB6!1}VV%C>`%i{H)ya{9Goo6=eklWdiOM~i2%Ia=D{Q8-5 uCX1!zG83I$cGEC0w9v<+*n9Qw(J{FOm-2u(b>O!VkLcYp(!oRRU;H0j`3DF9 literal 0 HcmV?d00001 diff --git a/docs/static/img/undraw_docusaurus_mountain.svg b/docs/static/img/undraw_docusaurus_mountain.svg new file mode 100644 index 00000000..af961c49 --- /dev/null +++ b/docs/static/img/undraw_docusaurus_mountain.svg @@ -0,0 +1,171 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="1088" height="687.962" viewBox="0 0 1088 687.962"> + <title>Easy to Use + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/static/img/undraw_docusaurus_react.svg b/docs/static/img/undraw_docusaurus_react.svg new file mode 100644 index 00000000..94b5cf08 --- /dev/null +++ b/docs/static/img/undraw_docusaurus_react.svg @@ -0,0 +1,170 @@ + + Powered by React + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/static/img/undraw_docusaurus_tree.svg b/docs/static/img/undraw_docusaurus_tree.svg new file mode 100644 index 00000000..d9161d33 --- /dev/null +++ b/docs/static/img/undraw_docusaurus_tree.svg @@ -0,0 +1,40 @@ + + Focus on What Matters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tsconfig.json b/docs/tsconfig.json new file mode 100644 index 00000000..6f475698 --- /dev/null +++ b/docs/tsconfig.json @@ -0,0 +1,7 @@ +{ + // This file is not used in compilation. It is here just for a nice editor experience. + "extends": "@tsconfig/docusaurus/tsconfig.json", + "compilerOptions": { + "baseUrl": "." + } +} diff --git a/package.json b/package.json index 9af3a947..ecefc755 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "private": true, "workspaces": [ "common", + "docs", "functions", "web" ], @@ -15,5 +16,8 @@ "eslint-plugin-lodash": "^7.4.0", "prettier": "2.5.0", "typescript": "4.6.4" + }, + "resolutions": { + "@types/react": "17.0.43" } } diff --git a/yarn.lock b/yarn.lock index cda4d6b3..20829cec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,18 @@ # yarn lockfile v1 +"@algolia/autocomplete-core@1.6.3": + version "1.6.3" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.6.3.tgz#76832fffb6405ac2c87bac5a040b8a31a1cdef80" + integrity sha512-dqQqRt01fX3YuVFrkceHsoCnzX0bLhrrg8itJI1NM68KjrPYQPYsE+kY8EZTCM4y8VDnhqJErR73xe/ZsV+qAA== + dependencies: + "@algolia/autocomplete-shared" "1.6.3" + +"@algolia/autocomplete-shared@1.6.3": + version "1.6.3" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.6.3.tgz#52085ce89a755977841ed0a463aa31ce8f1dea97" + integrity sha512-UV46bnkTztyADFaETfzFC5ryIdGVb2zpAoYgu0tfcuYWjhg1KbLXveFffZIrGVoboqmAk1b+jMrl6iCja1i3lg== + "@algolia/cache-browser-local-storage@4.13.0": version "4.13.0" resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.13.0.tgz#f8aa4fe31104b19d616ea392f9ed5c2ea847d964" @@ -9,11 +21,23 @@ dependencies: "@algolia/cache-common" "4.13.0" +"@algolia/cache-browser-local-storage@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.13.1.tgz#ffacb9230119f77de1a6f163b83680be999110e4" + integrity sha512-UAUVG2PEfwd/FfudsZtYnidJ9eSCpS+LW9cQiesePQLz41NAcddKxBak6eP2GErqyFagSlnVXe/w2E9h2m2ttg== + dependencies: + "@algolia/cache-common" "4.13.1" + "@algolia/cache-common@4.13.0": version "4.13.0" resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.13.0.tgz#27b83fd3939d08d72261b36a07eeafc4cb4d2113" integrity sha512-f9mdZjskCui/dA/fA/5a+6hZ7xnHaaZI5tM/Rw9X8rRB39SUlF/+o3P47onZ33n/AwkpSbi5QOyhs16wHd55kA== +"@algolia/cache-common@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.13.1.tgz#c933fdec9f73b4f7c69d5751edc92eee4a63d76b" + integrity sha512-7Vaf6IM4L0Jkl3sYXbwK+2beQOgVJ0mKFbz/4qSxKd1iy2Sp77uTAazcX+Dlexekg1fqGUOSO7HS4Sx47ZJmjA== + "@algolia/cache-in-memory@4.13.0": version "4.13.0" resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.13.0.tgz#10801a74550cbabb64b59ff08c56bce9c278ff2d" @@ -21,6 +45,13 @@ dependencies: "@algolia/cache-common" "4.13.0" +"@algolia/cache-in-memory@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.13.1.tgz#c19baa67b4597e1a93e987350613ab3b88768832" + integrity sha512-pZzybCDGApfA/nutsFK1P0Sbsq6fYJU3DwIvyKg4pURerlJM4qZbB9bfLRef0FkzfQu7W11E4cVLCIOWmyZeuQ== + dependencies: + "@algolia/cache-common" "4.13.1" + "@algolia/client-account@4.13.0": version "4.13.0" resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.13.0.tgz#f8646dd40d1e9e3353e10abbd5d6c293ea92a8e2" @@ -30,6 +61,15 @@ "@algolia/client-search" "4.13.0" "@algolia/transporter" "4.13.0" +"@algolia/client-account@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.13.1.tgz#fea591943665477a23922ab31863ad0732e26c66" + integrity sha512-TFLiZ1KqMiir3FNHU+h3b0MArmyaHG+eT8Iojio6TdpeFcAQ1Aiy+2gb3SZk3+pgRJa/BxGmDkRUwE5E/lv3QQ== + dependencies: + "@algolia/client-common" "4.13.1" + "@algolia/client-search" "4.13.1" + "@algolia/transporter" "4.13.1" + "@algolia/client-analytics@4.13.0": version "4.13.0" resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.13.0.tgz#a00bd02df45d71becb9dd4c5c993d805f2e1786d" @@ -40,6 +80,16 @@ "@algolia/requester-common" "4.13.0" "@algolia/transporter" "4.13.0" +"@algolia/client-analytics@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.13.1.tgz#5275956b2d0d16997148f2085f1701b6c39ecc32" + integrity sha512-iOS1JBqh7xaL5x00M5zyluZ9+9Uy9GqtYHv/2SMuzNW1qP7/0doz1lbcsP3S7KBbZANJTFHUOfuqyRLPk91iFA== + dependencies: + "@algolia/client-common" "4.13.1" + "@algolia/client-search" "4.13.1" + "@algolia/requester-common" "4.13.1" + "@algolia/transporter" "4.13.1" + "@algolia/client-common@4.13.0": version "4.13.0" resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.13.0.tgz#8bc373d164dbdcce38b4586912bbe162492bcb86" @@ -48,6 +98,14 @@ "@algolia/requester-common" "4.13.0" "@algolia/transporter" "4.13.0" +"@algolia/client-common@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.13.1.tgz#3bf9e3586f20ef85bbb56ccca390f7dbe57c8f4f" + integrity sha512-LcDoUE0Zz3YwfXJL6lJ2OMY2soClbjrrAKB6auYVMNJcoKZZ2cbhQoFR24AYoxnGUYBER/8B+9sTBj5bj/Gqbg== + dependencies: + "@algolia/requester-common" "4.13.1" + "@algolia/transporter" "4.13.1" + "@algolia/client-personalization@4.13.0": version "4.13.0" resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.13.0.tgz#10fb7af356422551f11a67222b39c52306f1512c" @@ -57,6 +115,15 @@ "@algolia/requester-common" "4.13.0" "@algolia/transporter" "4.13.0" +"@algolia/client-personalization@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.13.1.tgz#438a1f58576ef19c4ad4addb8417bdacfe2fce2e" + integrity sha512-1CqrOW1ypVrB4Lssh02hP//YxluoIYXAQCpg03L+/RiXJlCs+uIqlzC0ctpQPmxSlTK6h07kr50JQoYH/TIM9w== + dependencies: + "@algolia/client-common" "4.13.1" + "@algolia/requester-common" "4.13.1" + "@algolia/transporter" "4.13.1" + "@algolia/client-search@4.13.0": version "4.13.0" resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.13.0.tgz#2d8ff8e755c4a37ec89968f3f9b358eed005c7f0" @@ -66,6 +133,15 @@ "@algolia/requester-common" "4.13.0" "@algolia/transporter" "4.13.0" +"@algolia/client-search@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.13.1.tgz#5501deed01e23c33d4aaa9f9eb96a849f0fce313" + integrity sha512-YQKYA83MNRz3FgTNM+4eRYbSmHi0WWpo019s5SeYcL3HUan/i5R09VO9dk3evELDFJYciiydSjbsmhBzbpPP2A== + dependencies: + "@algolia/client-common" "4.13.1" + "@algolia/requester-common" "4.13.1" + "@algolia/transporter" "4.13.1" + "@algolia/events@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@algolia/events/-/events-4.0.1.tgz#fd39e7477e7bc703d7f893b556f676c032af3950" @@ -76,6 +152,11 @@ resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.13.0.tgz#be2606e71aae618a1ff1ea9a1b5f5a74284b35a8" integrity sha512-8yqXk7rMtmQJ9wZiHOt/6d4/JDEg5VCk83gJ39I+X/pwUPzIsbKy9QiK4uJ3aJELKyoIiDT1hpYVt+5ia+94IA== +"@algolia/logger-common@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.13.1.tgz#4221378e701e3f1eacaa051bcd4ba1f25ddfaf4d" + integrity sha512-L6slbL/OyZaAXNtS/1A8SAbOJeEXD5JcZeDCPYDqSTYScfHu+2ePRTDMgUTY4gQ7HsYZ39N1LujOd8WBTmM2Aw== + "@algolia/logger-console@4.13.0": version "4.13.0" resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.13.0.tgz#f28028a760e3d9191e28a10b12925e48f6c9afde" @@ -83,6 +164,13 @@ dependencies: "@algolia/logger-common" "4.13.0" +"@algolia/logger-console@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.13.1.tgz#423d358e4992dd4bceab0d9a4e99d1fd68107043" + integrity sha512-7jQOTftfeeLlnb3YqF8bNgA2GZht7rdKkJ31OCeSH2/61haO0tWPoNRjZq9XLlgMQZH276pPo0NdiArcYPHjCA== + dependencies: + "@algolia/logger-common" "4.13.1" + "@algolia/requester-browser-xhr@4.13.0": version "4.13.0" resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.13.0.tgz#e2483f4e8d7f09e27cd0daf6c77711d15c5a919f" @@ -90,11 +178,23 @@ dependencies: "@algolia/requester-common" "4.13.0" +"@algolia/requester-browser-xhr@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.13.1.tgz#f8ea79233cf6f0392feaf31e35a6b40d68c5bc9e" + integrity sha512-oa0CKr1iH6Nc7CmU6RE7TnXMjHnlyp7S80pP/LvZVABeJHX3p/BcSCKovNYWWltgTxUg0U1o+2uuy8BpMKljwA== + dependencies: + "@algolia/requester-common" "4.13.1" + "@algolia/requester-common@4.13.0": version "4.13.0" resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.13.0.tgz#47fb3464cfb26b55ba43676d13f295d812830596" integrity sha512-BRTDj53ecK+gn7ugukDWOOcBRul59C4NblCHqj4Zm5msd5UnHFjd/sGX+RLOEoFMhetILAnmg6wMrRrQVac9vw== +"@algolia/requester-common@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.13.1.tgz#daea143d15ab6ed3909c4c45877f1b6c36a16179" + integrity sha512-eGVf0ID84apfFEuXsaoSgIxbU3oFsIbz4XiotU3VS8qGCJAaLVUC5BUJEkiFENZIhon7hIB4d0RI13HY4RSA+w== + "@algolia/requester-node-http@4.13.0": version "4.13.0" resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.13.0.tgz#7d981bbd31492f51dd11820a665f9d8906793c37" @@ -102,6 +202,13 @@ dependencies: "@algolia/requester-common" "4.13.0" +"@algolia/requester-node-http@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.13.1.tgz#32c63d4c009f22d97e396406de7af9b66fb8e89d" + integrity sha512-7C0skwtLdCz5heKTVe/vjvrqgL/eJxmiEjHqXdtypcE5GCQCYI15cb+wC4ytYioZDMiuDGeVYmCYImPoEgUGPw== + dependencies: + "@algolia/requester-common" "4.13.1" + "@algolia/transporter@4.13.0": version "4.13.0" resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.13.0.tgz#f6379e5329efa2127da68c914d1141f5f21dbd07" @@ -111,18 +218,289 @@ "@algolia/logger-common" "4.13.0" "@algolia/requester-common" "4.13.0" -"@babel/code-frame@^7.0.0": +"@algolia/transporter@4.13.1": + version "4.13.1" + resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.13.1.tgz#509e03e9145102843d5be4a031c521f692d4e8d6" + integrity sha512-pICnNQN7TtrcYJqqPEXByV8rJ8ZRU2hCiIKLTLRyNpghtQG3VAFk6fVtdzlNfdUGZcehSKGarPIZEHlQXnKjgw== + dependencies: + "@algolia/cache-common" "4.13.1" + "@algolia/logger-common" "4.13.1" + "@algolia/requester-common" "4.13.1" + +"@ampproject/remapping@^2.1.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== + dependencies: + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.8.3": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== dependencies: "@babel/highlight" "^7.16.7" +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.17.10": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab" + integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw== + +"@babel/core@7.12.9": + version "7.12.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" + integrity sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.5" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.5" + "@babel/parser" "^7.12.7" + "@babel/template" "^7.12.7" + "@babel/traverse" "^7.12.9" + "@babel/types" "^7.12.7" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.19" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/core@^7.15.5", "@babel/core@^7.17.5": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.2.tgz#87b2fcd7cce9becaa7f5acebdc4f09f3dd19d876" + integrity sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.18.2" + "@babel/helper-compilation-targets" "^7.18.2" + "@babel/helper-module-transforms" "^7.18.0" + "@babel/helpers" "^7.18.2" + "@babel/parser" "^7.18.0" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.18.2" + "@babel/types" "^7.18.2" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.1" + semver "^6.3.0" + +"@babel/generator@^7.12.5", "@babel/generator@^7.17.3", "@babel/generator@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.2.tgz#33873d6f89b21efe2da63fe554460f3df1c5880d" + integrity sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw== + dependencies: + "@babel/types" "^7.18.2" + "@jridgewell/gen-mapping" "^0.3.0" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" + integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b" + integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.10", "@babel/helper-compilation-targets@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz#67a85a10cbd5fc7f1457fec2e7f45441dc6c754b" + integrity sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ== + dependencies: + "@babel/compat-data" "^7.17.10" + "@babel/helper-validator-option" "^7.16.7" + browserslist "^4.20.2" + semver "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.17.12", "@babel/helper-create-class-features-plugin@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz#fac430912606331cb075ea8d82f9a4c145a4da19" + integrity sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.17.9" + "@babel/helper-member-expression-to-functions" "^7.17.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + +"@babel/helper-create-regexp-features-plugin@^7.16.7", "@babel/helper-create-regexp-features-plugin@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz#bb37ca467f9694bbe55b884ae7a5cc1e0084e4fd" + integrity sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + regexpu-core "^5.0.1" + +"@babel/helper-define-polyfill-provider@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665" + integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== + dependencies: + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-environment-visitor@^7.16.7", "@babel/helper-environment-visitor@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz#8a6d2dedb53f6bf248e31b4baf38739ee4a637bd" + integrity sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ== + +"@babel/helper-explode-assignable-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a" + integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" + integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== + dependencies: + "@babel/template" "^7.16.7" + "@babel/types" "^7.17.0" + +"@babel/helper-hoist-variables@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" + integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-member-expression-to-functions@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4" + integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== + dependencies: + "@babel/types" "^7.17.0" + +"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" + integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz#baf05dec7a5875fb9235bd34ca18bad4e21221cd" + integrity sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA== + dependencies: + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-simple-access" "^7.17.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.18.0" + "@babel/types" "^7.18.0" + +"@babel/helper-optimise-call-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" + integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-plugin-utils@7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" + integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.17.12", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz#86c2347da5acbf5583ba0a10aed4c9bf9da9cf96" + integrity sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA== + +"@babel/helper-remap-async-to-generator@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3" + integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-wrap-function" "^7.16.8" + "@babel/types" "^7.16.8" + +"@babel/helper-replace-supers@^7.16.7", "@babel/helper-replace-supers@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz#41fdfcc9abaf900e18ba6e5931816d9062a7b2e0" + integrity sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q== + dependencies: + "@babel/helper-environment-visitor" "^7.18.2" + "@babel/helper-member-expression-to-functions" "^7.17.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/traverse" "^7.18.2" + "@babel/types" "^7.18.2" + +"@babel/helper-simple-access@^7.17.7", "@babel/helper-simple-access@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz#4dc473c2169ac3a1c9f4a51cfcd091d1c36fcff9" + integrity sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ== + dependencies: + "@babel/types" "^7.18.2" + +"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" + integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-split-export-declaration@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" + integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== + dependencies: + "@babel/types" "^7.16.7" + "@babel/helper-validator-identifier@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== +"@babel/helper-validator-option@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" + integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== + +"@babel/helper-wrap-function@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200" + integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw== + dependencies: + "@babel/helper-function-name" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.8" + "@babel/types" "^7.16.8" + +"@babel/helpers@^7.12.5", "@babel/helpers@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.2.tgz#970d74f0deadc3f5a938bfa250738eb4ac889384" + integrity sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg== + dependencies: + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.18.2" + "@babel/types" "^7.18.2" + "@babel/highlight@^7.16.7": version "7.17.12" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.12.tgz#257de56ee5afbd20451ac0a75686b6b404257351" @@ -132,6 +510,716 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/parser@^7.12.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.3", "@babel/parser@^7.18.0": + version "7.18.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.4.tgz#6774231779dd700e0af29f6ad8d479582d7ce5ef" + integrity sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow== + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz#1dca338caaefca368639c9ffb095afbd4d420b1e" + integrity sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz#0d498ec8f0374b1e2eb54b9cb2c4c78714c77753" + integrity sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/plugin-proposal-optional-chaining" "^7.17.12" + +"@babel/plugin-proposal-async-generator-functions@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz#094a417e31ce7e692d84bab06c8e2a607cbeef03" + integrity sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-remap-async-to-generator" "^7.16.8" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz#84f65c0cc247d46f40a6da99aadd6438315d80a4" + integrity sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.17.12" + "@babel/helper-plugin-utils" "^7.17.12" + +"@babel/plugin-proposal-class-static-block@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz#7d02253156e3c3793bdb9f2faac3a1c05f0ba710" + integrity sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.0" + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-dynamic-import@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2" + integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-namespace-from@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz#b22864ccd662db9606edb2287ea5fd1709f05378" + integrity sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz#f4642951792437233216d8c1af370bb0fbff4664" + integrity sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz#c64a1bcb2b0a6d0ed2ff674fd120f90ee4b88a23" + integrity sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz#1e93079bbc2cbc756f6db6a1925157c4a92b94be" + integrity sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9" + integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" + integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.12.1" + +"@babel/plugin-proposal-object-rest-spread@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz#79f2390c892ba2a68ec112eb0d895cfbd11155e8" + integrity sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw== + dependencies: + "@babel/compat-data" "^7.17.10" + "@babel/helper-compilation-targets" "^7.17.10" + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.17.12" + +"@babel/plugin-proposal-optional-catch-binding@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz#c623a430674ffc4ab732fd0a0ae7722b67cb74cf" + integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz#f96949e9bacace3a9066323a5cf90cfb9de67174" + integrity sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz#c2ca3a80beb7539289938da005ad525a038a819c" + integrity sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.17.12" + "@babel/helper-plugin-utils" "^7.17.12" + +"@babel/plugin-proposal-private-property-in-object@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz#b02efb7f106d544667d91ae97405a9fd8c93952d" + integrity sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.17.12" + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.17.12", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz#3dbd7a67bd7f94c8238b394da112d86aaf32ad4d" + integrity sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.17.12" + "@babel/helper-plugin-utils" "^7.17.12" + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-import-assertions@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz#58096a92b11b2e4e54b24c6a0cc0e5e607abcedd" + integrity sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926" + integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-jsx@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz#834035b45061983a491f60096f61a2e7c5674a47" + integrity sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz#b54fc3be6de734a56b87508f99d6428b5b605a7b" + integrity sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + +"@babel/plugin-transform-arrow-functions@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz#dddd783b473b1b1537ef46423e3944ff24898c45" + integrity sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + +"@babel/plugin-transform-async-to-generator@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz#dbe5511e6b01eee1496c944e35cdfe3f58050832" + integrity sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-remap-async-to-generator" "^7.16.8" + +"@babel/plugin-transform-block-scoped-functions@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620" + integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-block-scoping@^7.17.12": + version "7.18.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz#7988627b3e9186a13e4d7735dc9c34a056613fb9" + integrity sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + +"@babel/plugin-transform-classes@^7.17.12": + version "7.18.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz#51310b812a090b846c784e47087fa6457baef814" + integrity sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-environment-visitor" "^7.18.2" + "@babel/helper-function-name" "^7.17.9" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-replace-supers" "^7.18.2" + "@babel/helper-split-export-declaration" "^7.16.7" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz#bca616a83679698f3258e892ed422546e531387f" + integrity sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + +"@babel/plugin-transform-destructuring@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz#dc4f92587e291b4daa78aa20cc2d7a63aa11e858" + integrity sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + +"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241" + integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-duplicate-keys@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz#a09aa709a3310013f8e48e0e23bc7ace0f21477c" + integrity sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + +"@babel/plugin-transform-exponentiation-operator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz#efa9862ef97e9e9e5f653f6ddc7b665e8536fe9b" + integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-for-of@^7.18.1": + version "7.18.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz#ed14b657e162b72afbbb2b4cdad277bf2bb32036" + integrity sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + +"@babel/plugin-transform-function-name@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf" + integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA== + dependencies: + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-literals@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz#97131fbc6bbb261487105b4b3edbf9ebf9c830ae" + integrity sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + +"@babel/plugin-transform-member-expression-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384" + integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-modules-amd@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz#7ef1002e67e36da3155edc8bf1ac9398064c02ed" + integrity sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA== + dependencies: + "@babel/helper-module-transforms" "^7.18.0" + "@babel/helper-plugin-utils" "^7.17.12" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz#1aa8efa2e2a6e818b6a7f2235fceaf09bdb31e9e" + integrity sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ== + dependencies: + "@babel/helper-module-transforms" "^7.18.0" + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-simple-access" "^7.18.2" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.18.0": + version "7.18.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.4.tgz#3d6fd9868c735cce8f38d6ae3a407fb7e61e6d46" + integrity sha512-lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg== + dependencies: + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-module-transforms" "^7.18.0" + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-validator-identifier" "^7.16.7" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-umd@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz#56aac64a2c2a1922341129a4597d1fd5c3ff020f" + integrity sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA== + dependencies: + "@babel/helper-module-transforms" "^7.18.0" + "@babel/helper-plugin-utils" "^7.17.12" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz#9c4a5a5966e0434d515f2675c227fd8cc8606931" + integrity sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.17.12" + "@babel/helper-plugin-utils" "^7.17.12" + +"@babel/plugin-transform-new-target@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.17.12.tgz#10842cd605a620944e81ea6060e9e65c265742e3" + integrity sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + +"@babel/plugin-transform-object-super@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94" + integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + +"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz#eb467cd9586ff5ff115a9880d6fdbd4a846b7766" + integrity sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + +"@babel/plugin-transform-property-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55" + integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-react-constant-elements@^7.14.5": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.17.12.tgz#cc580857696b6dd9e5e3d079e673d060a0657f37" + integrity sha512-maEkX2xs2STuv2Px8QuqxqjhV2LsFobT1elCgyU5704fcyTu9DyD/bJXxD/mrRiVyhpHweOQ00OJ5FKhHq9oEw== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + +"@babel/plugin-transform-react-display-name@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz#7b6d40d232f4c0f550ea348593db3b21e2404340" + integrity sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-react-jsx-development@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz#43a00724a3ed2557ed3f276a01a929e6686ac7b8" + integrity sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.16.7" + +"@babel/plugin-transform-react-jsx@^7.16.7", "@babel/plugin-transform-react-jsx@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz#2aa20022709cd6a3f40b45d60603d5f269586dba" + integrity sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/plugin-syntax-jsx" "^7.17.12" + "@babel/types" "^7.17.12" + +"@babel/plugin-transform-react-pure-annotations@^7.16.7": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.0.tgz#ef82c8e310913f3522462c9ac967d395092f1954" + integrity sha512-6+0IK6ouvqDn9bmEG7mEyF/pwlJXVj5lwydybpyyH3D0A7Hftk+NCTdYjnLNZksn261xaOV5ksmp20pQEmc2RQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" + +"@babel/plugin-transform-regenerator@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz#44274d655eb3f1af3f3a574ba819d3f48caf99d5" + integrity sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + regenerator-transform "^0.15.0" + +"@babel/plugin-transform-reserved-words@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz#7dbd349f3cdffba751e817cf40ca1386732f652f" + integrity sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + +"@babel/plugin-transform-runtime@^7.17.0": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.2.tgz#04637de1e45ae8847ff14b9beead09c33d34374d" + integrity sha512-mr1ufuRMfS52ttq+1G1PD8OJNqgcTFjq3hwn8SZ5n1x1pBhi0E36rYMdTK0TsKtApJ4lDEdfXJwtGobQMHSMPg== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" + babel-plugin-polyfill-corejs2 "^0.3.0" + babel-plugin-polyfill-corejs3 "^0.5.0" + babel-plugin-polyfill-regenerator "^0.3.0" + semver "^6.3.0" + +"@babel/plugin-transform-shorthand-properties@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a" + integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-spread@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz#c112cad3064299f03ea32afed1d659223935d1f5" + integrity sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + +"@babel/plugin-transform-sticky-regex@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz#c84741d4f4a38072b9a1e2e3fd56d359552e8660" + integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-template-literals@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz#31ed6915721864847c48b656281d0098ea1add28" + integrity sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + +"@babel/plugin-transform-typeof-symbol@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz#0f12f57ac35e98b35b4ed34829948d42bd0e6889" + integrity sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + +"@babel/plugin-transform-typescript@^7.17.12": + version "7.18.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz#587eaf6a39edb8c06215e550dc939faeadd750bf" + integrity sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.0" + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/plugin-syntax-typescript" "^7.17.12" + +"@babel/plugin-transform-unicode-escapes@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz#da8717de7b3287a2c6d659750c964f302b31ece3" + integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-unicode-regex@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2" + integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/preset-env@^7.15.6", "@babel/preset-env@^7.16.11": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.2.tgz#f47d3000a098617926e674c945d95a28cb90977a" + integrity sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q== + dependencies: + "@babel/compat-data" "^7.17.10" + "@babel/helper-compilation-targets" "^7.18.2" + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-validator-option" "^7.16.7" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.17.12" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.17.12" + "@babel/plugin-proposal-async-generator-functions" "^7.17.12" + "@babel/plugin-proposal-class-properties" "^7.17.12" + "@babel/plugin-proposal-class-static-block" "^7.18.0" + "@babel/plugin-proposal-dynamic-import" "^7.16.7" + "@babel/plugin-proposal-export-namespace-from" "^7.17.12" + "@babel/plugin-proposal-json-strings" "^7.17.12" + "@babel/plugin-proposal-logical-assignment-operators" "^7.17.12" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.17.12" + "@babel/plugin-proposal-numeric-separator" "^7.16.7" + "@babel/plugin-proposal-object-rest-spread" "^7.18.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" + "@babel/plugin-proposal-optional-chaining" "^7.17.12" + "@babel/plugin-proposal-private-methods" "^7.17.12" + "@babel/plugin-proposal-private-property-in-object" "^7.17.12" + "@babel/plugin-proposal-unicode-property-regex" "^7.17.12" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.17.12" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.17.12" + "@babel/plugin-transform-async-to-generator" "^7.17.12" + "@babel/plugin-transform-block-scoped-functions" "^7.16.7" + "@babel/plugin-transform-block-scoping" "^7.17.12" + "@babel/plugin-transform-classes" "^7.17.12" + "@babel/plugin-transform-computed-properties" "^7.17.12" + "@babel/plugin-transform-destructuring" "^7.18.0" + "@babel/plugin-transform-dotall-regex" "^7.16.7" + "@babel/plugin-transform-duplicate-keys" "^7.17.12" + "@babel/plugin-transform-exponentiation-operator" "^7.16.7" + "@babel/plugin-transform-for-of" "^7.18.1" + "@babel/plugin-transform-function-name" "^7.16.7" + "@babel/plugin-transform-literals" "^7.17.12" + "@babel/plugin-transform-member-expression-literals" "^7.16.7" + "@babel/plugin-transform-modules-amd" "^7.18.0" + "@babel/plugin-transform-modules-commonjs" "^7.18.2" + "@babel/plugin-transform-modules-systemjs" "^7.18.0" + "@babel/plugin-transform-modules-umd" "^7.18.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.17.12" + "@babel/plugin-transform-new-target" "^7.17.12" + "@babel/plugin-transform-object-super" "^7.16.7" + "@babel/plugin-transform-parameters" "^7.17.12" + "@babel/plugin-transform-property-literals" "^7.16.7" + "@babel/plugin-transform-regenerator" "^7.18.0" + "@babel/plugin-transform-reserved-words" "^7.17.12" + "@babel/plugin-transform-shorthand-properties" "^7.16.7" + "@babel/plugin-transform-spread" "^7.17.12" + "@babel/plugin-transform-sticky-regex" "^7.16.7" + "@babel/plugin-transform-template-literals" "^7.18.2" + "@babel/plugin-transform-typeof-symbol" "^7.17.12" + "@babel/plugin-transform-unicode-escapes" "^7.16.7" + "@babel/plugin-transform-unicode-regex" "^7.16.7" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.18.2" + babel-plugin-polyfill-corejs2 "^0.3.0" + babel-plugin-polyfill-corejs3 "^0.5.0" + babel-plugin-polyfill-regenerator "^0.3.0" + core-js-compat "^3.22.1" + semver "^6.3.0" + +"@babel/preset-modules@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" + integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@^7.14.5", "@babel/preset-react@^7.16.7": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.17.12.tgz#62adbd2d1870c0de3893095757ed5b00b492ab3d" + integrity sha512-h5U+rwreXtZaRBEQhW1hOJLMq8XNJBQ/9oymXiCXTuT/0uOwpbT0gUt+sXeOqoXBgNuUKI7TaObVwoEyWkpFgA== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-validator-option" "^7.16.7" + "@babel/plugin-transform-react-display-name" "^7.16.7" + "@babel/plugin-transform-react-jsx" "^7.17.12" + "@babel/plugin-transform-react-jsx-development" "^7.16.7" + "@babel/plugin-transform-react-pure-annotations" "^7.16.7" + +"@babel/preset-typescript@^7.15.0", "@babel/preset-typescript@^7.16.7": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.17.12.tgz#40269e0a0084d56fc5731b6c40febe1c9a4a3e8c" + integrity sha512-S1ViF8W2QwAKUGJXxP9NAfNaqGDdEBJKpYkxHf5Yy2C4NPPzXGeR3Lhk7G8xJaaLcFTRfNjVbtbVtm8Gb0mqvg== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-validator-option" "^7.16.7" + "@babel/plugin-transform-typescript" "^7.17.12" + "@babel/runtime-corejs3@^7.10.2": version "7.18.0" resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.18.0.tgz#eed03023c5226b1e2b2ba32b8b6af5cb0518a6c7" @@ -140,6 +1228,14 @@ core-js-pure "^3.20.2" regenerator-runtime "^0.13.4" +"@babel/runtime-corejs3@^7.17.2": + version "7.18.3" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.18.3.tgz#52f0241a31e0ec61a6187530af6227c2846bd60c" + integrity sha512-l4ddFwrc9rnR+EJsHsh+TJ4A35YqQz/UqcjtlX2ov53hlJYG5CxtQmNZxyajwDVmCxwy++rtvGU5HazCK4W41Q== + dependencies: + core-js-pure "^3.20.2" + regenerator-runtime "^0.13.4" + "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2": version "7.18.0" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.0.tgz#6d77142a19cb6088f0af662af1ada37a604d34ae" @@ -147,11 +1243,440 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.10.3", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.17.2", "@babel/runtime@^7.8.4": + version "7.18.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4" + integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.12.7", "@babel/template@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" + integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/parser" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.18.0", "@babel/traverse@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.2.tgz#b77a52604b5cc836a9e1e08dca01cba67a12d2e8" + integrity sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.18.2" + "@babel/helper-environment-visitor" "^7.18.2" + "@babel/helper-function-name" "^7.17.9" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/parser" "^7.18.0" + "@babel/types" "^7.18.2" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.12.7", "@babel/types@^7.15.6", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.17.12", "@babel/types@^7.18.0", "@babel/types@^7.18.2", "@babel/types@^7.4.4": + version "7.18.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.4.tgz#27eae9b9fd18e9dccc3f9d6ad051336f307be354" + integrity sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + to-fast-properties "^2.0.0" + +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + "@corex/deepmerge@^2.6.148": version "2.6.148" resolved "https://registry.yarnpkg.com/@corex/deepmerge/-/deepmerge-2.6.148.tgz#8fa825d53ffd1cbcafce1b6a830eefd3dcc09dd5" integrity sha512-6QMz0/2h5C3ua51iAnXMPWFbb1QOU1UvSM4bKBw5mzdT+WtLgjbETBBIQZ+Sh9WvEcGwlAt/DEdRpIC3XlDBMA== +"@docsearch/css@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.1.0.tgz#6781cad43fc2e034d012ee44beddf8f93ba21f19" + integrity sha512-bh5IskwkkodbvC0FzSg1AxMykfDl95hebEKwxNoq4e5QaGzOXSBgW8+jnMFZ7JU4sTBiB04vZWoUSzNrPboLZA== + +"@docsearch/react@^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.1.0.tgz#da943a64c01ee82b04e53b691806469272f943f7" + integrity sha512-bjB6ExnZzf++5B7Tfoi6UXgNwoUnNOfZ1NyvnvPhWgCMy5V/biAtLL4o7owmZSYdAKeFSvZ5Lxm0is4su/dBWg== + dependencies: + "@algolia/autocomplete-core" "1.6.3" + "@docsearch/css" "3.1.0" + algoliasearch "^4.0.0" + +"@docusaurus/core@2.0.0-beta.17": + version "2.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-2.0.0-beta.17.tgz#f631aae04405de42a428a31928998242cd1d7b77" + integrity sha512-iNdW7CsmHNOgc4PxD9BFxa+MD8+i7ln7erOBkF3FSMMPnsKUeVqsR3rr31aLmLZRlTXMITSPLxlXwtBZa3KPCw== + dependencies: + "@babel/core" "^7.17.5" + "@babel/generator" "^7.17.3" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-transform-runtime" "^7.17.0" + "@babel/preset-env" "^7.16.11" + "@babel/preset-react" "^7.16.7" + "@babel/preset-typescript" "^7.16.7" + "@babel/runtime" "^7.17.2" + "@babel/runtime-corejs3" "^7.17.2" + "@babel/traverse" "^7.17.3" + "@docusaurus/cssnano-preset" "2.0.0-beta.17" + "@docusaurus/logger" "2.0.0-beta.17" + "@docusaurus/mdx-loader" "2.0.0-beta.17" + "@docusaurus/react-loadable" "5.5.2" + "@docusaurus/utils" "2.0.0-beta.17" + "@docusaurus/utils-common" "2.0.0-beta.17" + "@docusaurus/utils-validation" "2.0.0-beta.17" + "@slorber/static-site-generator-webpack-plugin" "^4.0.1" + "@svgr/webpack" "^6.2.1" + autoprefixer "^10.4.2" + babel-loader "^8.2.3" + babel-plugin-dynamic-import-node "2.3.0" + boxen "^6.2.1" + chokidar "^3.5.3" + clean-css "^5.2.4" + cli-table3 "^0.6.1" + combine-promises "^1.1.0" + commander "^5.1.0" + copy-webpack-plugin "^10.2.4" + core-js "^3.21.1" + css-loader "^6.6.0" + css-minimizer-webpack-plugin "^3.4.1" + cssnano "^5.0.17" + del "^6.0.0" + detect-port "^1.3.0" + escape-html "^1.0.3" + eta "^1.12.3" + file-loader "^6.2.0" + fs-extra "^10.0.1" + html-minifier-terser "^6.1.0" + html-tags "^3.1.0" + html-webpack-plugin "^5.5.0" + import-fresh "^3.3.0" + is-root "^2.1.0" + leven "^3.1.0" + lodash "^4.17.21" + mini-css-extract-plugin "^2.5.3" + nprogress "^0.2.0" + postcss "^8.4.7" + postcss-loader "^6.2.1" + prompts "^2.4.2" + react-dev-utils "^12.0.0" + react-helmet-async "^1.2.3" + react-loadable "npm:@docusaurus/react-loadable@5.5.2" + react-loadable-ssr-addon-v5-slorber "^1.0.1" + react-router "^5.2.0" + react-router-config "^5.1.1" + react-router-dom "^5.2.0" + remark-admonitions "^1.2.1" + rtl-detect "^1.0.4" + semver "^7.3.4" + serve-handler "^6.1.3" + shelljs "^0.8.5" + terser-webpack-plugin "^5.3.1" + tslib "^2.3.1" + update-notifier "^5.1.0" + url-loader "^4.1.1" + wait-on "^6.0.1" + webpack "^5.69.1" + webpack-bundle-analyzer "^4.5.0" + webpack-dev-server "^4.7.4" + webpack-merge "^5.8.0" + webpackbar "^5.0.2" + +"@docusaurus/cssnano-preset@2.0.0-beta.17": + version "2.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-beta.17.tgz#f687bc6e5c8cb2139a7830dec757cfcb92dbb681" + integrity sha512-DoBwtLjJ9IY9/lNMHIEdo90L4NDayvU28nLgtjR2Sc6aBIMEB/3a5Ndjehnp+jZAkwcDdNASA86EkZVUyz1O1A== + dependencies: + cssnano-preset-advanced "^5.1.12" + postcss "^8.4.7" + postcss-sort-media-queries "^4.2.1" + +"@docusaurus/logger@2.0.0-beta.17": + version "2.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-2.0.0-beta.17.tgz#89c5ace3b4efd5274adb0d8919328892c4466d02" + integrity sha512-F9JDl06/VLg+ylsvnq9NpILSUeWtl0j4H2LtlLzX5gufEL4dGiCMlnUzYdHl7FSHSzYJ0A/R7vu0SYofsexC4w== + dependencies: + chalk "^4.1.2" + tslib "^2.3.1" + +"@docusaurus/mdx-loader@2.0.0-beta.17": + version "2.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-beta.17.tgz#838f87f4cbf12701c4d8eb11e4f9698fb7155bf8" + integrity sha512-AhJ3GWRmjQYCyINHE595pff5tn3Rt83oGpdev5UT9uvG9lPYPC8nEmh1LI6c0ogfw7YkNznzxWSW4hyyVbYQ3A== + dependencies: + "@babel/parser" "^7.17.3" + "@babel/traverse" "^7.17.3" + "@docusaurus/logger" "2.0.0-beta.17" + "@docusaurus/utils" "2.0.0-beta.17" + "@mdx-js/mdx" "^1.6.22" + escape-html "^1.0.3" + file-loader "^6.2.0" + fs-extra "^10.0.1" + image-size "^1.0.1" + mdast-util-to-string "^2.0.0" + remark-emoji "^2.1.0" + stringify-object "^3.3.0" + tslib "^2.3.1" + unist-util-visit "^2.0.2" + url-loader "^4.1.1" + webpack "^5.69.1" + +"@docusaurus/module-type-aliases@2.0.0-beta.17": + version "2.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-2.0.0-beta.17.tgz#73f6d34be202ac093e78769ff72613d353087cd7" + integrity sha512-Tu+8geC/wyygBudbSwvWIHEvt5RwyA7dEoE1JmPbgQtmqUxOZ9bgnfemwXpJW5mKuDiJASbN4of1DhbLqf4sPg== + dependencies: + "@docusaurus/types" "2.0.0-beta.17" + "@types/react" "*" + "@types/react-router-config" "*" + "@types/react-router-dom" "*" + react-helmet-async "*" + +"@docusaurus/plugin-content-blog@2.0.0-beta.17": + version "2.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-beta.17.tgz#1d1063bfda78a80d517694567b965d5c3a70479f" + integrity sha512-gcX4UR+WKT4bhF8FICBQHy+ESS9iRMeaglSboTZbA/YHGax/3EuZtcPU3dU4E/HFJeZ866wgUdbLKpIpsZOidg== + dependencies: + "@docusaurus/core" "2.0.0-beta.17" + "@docusaurus/logger" "2.0.0-beta.17" + "@docusaurus/mdx-loader" "2.0.0-beta.17" + "@docusaurus/utils" "2.0.0-beta.17" + "@docusaurus/utils-common" "2.0.0-beta.17" + "@docusaurus/utils-validation" "2.0.0-beta.17" + cheerio "^1.0.0-rc.10" + feed "^4.2.2" + fs-extra "^10.0.1" + lodash "^4.17.21" + reading-time "^1.5.0" + remark-admonitions "^1.2.1" + tslib "^2.3.1" + utility-types "^3.10.0" + webpack "^5.69.1" + +"@docusaurus/plugin-content-docs@2.0.0-beta.17": + version "2.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-beta.17.tgz#97f13bb458e165224db6867836e8e9637ea15921" + integrity sha512-YYrBpuRfTfE6NtENrpSHTJ7K7PZifn6j6hcuvdC0QKE+WD8pS+O2/Ws30yoyvHwLnAnfhvaderh1v9Kaa0/ANg== + dependencies: + "@docusaurus/core" "2.0.0-beta.17" + "@docusaurus/logger" "2.0.0-beta.17" + "@docusaurus/mdx-loader" "2.0.0-beta.17" + "@docusaurus/utils" "2.0.0-beta.17" + "@docusaurus/utils-validation" "2.0.0-beta.17" + combine-promises "^1.1.0" + fs-extra "^10.0.1" + import-fresh "^3.3.0" + js-yaml "^4.1.0" + lodash "^4.17.21" + remark-admonitions "^1.2.1" + tslib "^2.3.1" + utility-types "^3.10.0" + webpack "^5.69.1" + +"@docusaurus/plugin-content-pages@2.0.0-beta.17": + version "2.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-beta.17.tgz#d5955d3cc23722518a6032f830cf8c7b7aeb3d5a" + integrity sha512-d5x0mXTMJ44ojRQccmLyshYoamFOep2AnBe69osCDnwWMbD3Or3pnc2KMK9N7mVpQFnNFKbHNCLrX3Rv0uwEHA== + dependencies: + "@docusaurus/core" "2.0.0-beta.17" + "@docusaurus/mdx-loader" "2.0.0-beta.17" + "@docusaurus/utils" "2.0.0-beta.17" + "@docusaurus/utils-validation" "2.0.0-beta.17" + fs-extra "^10.0.1" + remark-admonitions "^1.2.1" + tslib "^2.3.1" + webpack "^5.69.1" + +"@docusaurus/plugin-debug@2.0.0-beta.17": + version "2.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-beta.17.tgz#0185dfd5575aa940443d2cb9fab4bed3308ed3a1" + integrity sha512-p26fjYFRSC0esEmKo/kRrLVwXoFnzPCFDumwrImhPyqfVxbj+IKFaiXkayb2qHnyEGE/1KSDIgRF4CHt/pyhiw== + dependencies: + "@docusaurus/core" "2.0.0-beta.17" + "@docusaurus/utils" "2.0.0-beta.17" + fs-extra "^10.0.1" + react-json-view "^1.21.3" + tslib "^2.3.1" + +"@docusaurus/plugin-google-analytics@2.0.0-beta.17": + version "2.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-beta.17.tgz#31ca1ef88f0f7874c6e12c642d64abe694494720" + integrity sha512-jvgYIhggYD1W2jymqQVAAyjPJUV1xMCn70bAzaCMxriureMWzhQ/kQMVQpop0ijTMvifOxaV9yTcL1VRXev++A== + dependencies: + "@docusaurus/core" "2.0.0-beta.17" + "@docusaurus/utils-validation" "2.0.0-beta.17" + tslib "^2.3.1" + +"@docusaurus/plugin-google-gtag@2.0.0-beta.17": + version "2.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-beta.17.tgz#e6baf8f03cea756ed2259a5356fa689388bc303d" + integrity sha512-1pnWHtIk1Jfeqwvr8PlcPE5SODWT1gW4TI+ptmJbJ296FjjyvL/pG0AcGEJmYLY/OQc3oz0VQ0W2ognw9jmFIw== + dependencies: + "@docusaurus/core" "2.0.0-beta.17" + "@docusaurus/utils-validation" "2.0.0-beta.17" + tslib "^2.3.1" + +"@docusaurus/plugin-sitemap@2.0.0-beta.17": + version "2.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-beta.17.tgz#e1aa67ff09d9145e8e5522c4541bbcdd6365560c" + integrity sha512-19/PaGCsap6cjUPZPGs87yV9e1hAIyd0CTSeVV6Caega8nmOKk20FTrQGFJjZPeX8jvD9QIXcdg6BJnPxcKkaQ== + dependencies: + "@docusaurus/core" "2.0.0-beta.17" + "@docusaurus/utils" "2.0.0-beta.17" + "@docusaurus/utils-common" "2.0.0-beta.17" + "@docusaurus/utils-validation" "2.0.0-beta.17" + fs-extra "^10.0.1" + sitemap "^7.1.1" + tslib "^2.3.1" + +"@docusaurus/preset-classic@2.0.0-beta.17": + version "2.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-2.0.0-beta.17.tgz#a8fc3447aa6fe0e5f259d894cc8dd64c049c7605" + integrity sha512-7YUxPEgM09aZWr25/hpDEp1gPl+1KsCPV1ZTRW43sbQ9TinPm+9AKR3rHVDa8ea8MdiS7BpqCVyK+H/eiyQrUw== + dependencies: + "@docusaurus/core" "2.0.0-beta.17" + "@docusaurus/plugin-content-blog" "2.0.0-beta.17" + "@docusaurus/plugin-content-docs" "2.0.0-beta.17" + "@docusaurus/plugin-content-pages" "2.0.0-beta.17" + "@docusaurus/plugin-debug" "2.0.0-beta.17" + "@docusaurus/plugin-google-analytics" "2.0.0-beta.17" + "@docusaurus/plugin-google-gtag" "2.0.0-beta.17" + "@docusaurus/plugin-sitemap" "2.0.0-beta.17" + "@docusaurus/theme-classic" "2.0.0-beta.17" + "@docusaurus/theme-common" "2.0.0-beta.17" + "@docusaurus/theme-search-algolia" "2.0.0-beta.17" + +"@docusaurus/react-loadable@5.5.2", "react-loadable@npm:@docusaurus/react-loadable@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz#81aae0db81ecafbdaee3651f12804580868fa6ce" + integrity sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ== + dependencies: + "@types/react" "*" + prop-types "^15.6.2" + +"@docusaurus/theme-classic@2.0.0-beta.17": + version "2.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-2.0.0-beta.17.tgz#1f7a1dd714993819f266ce422d06dd4533d4ab3a" + integrity sha512-xfZ9kpgqo0lP9YO4rJj79wtiQJXU6ARo5wYy10IIwiWN+lg00scJHhkmNV431b05xIUjUr0cKeH9nqZmEsQRKg== + dependencies: + "@docusaurus/core" "2.0.0-beta.17" + "@docusaurus/plugin-content-blog" "2.0.0-beta.17" + "@docusaurus/plugin-content-docs" "2.0.0-beta.17" + "@docusaurus/plugin-content-pages" "2.0.0-beta.17" + "@docusaurus/theme-common" "2.0.0-beta.17" + "@docusaurus/theme-translations" "2.0.0-beta.17" + "@docusaurus/utils" "2.0.0-beta.17" + "@docusaurus/utils-common" "2.0.0-beta.17" + "@docusaurus/utils-validation" "2.0.0-beta.17" + "@mdx-js/react" "^1.6.22" + clsx "^1.1.1" + copy-text-to-clipboard "^3.0.1" + infima "0.2.0-alpha.37" + lodash "^4.17.21" + postcss "^8.4.7" + prism-react-renderer "^1.2.1" + prismjs "^1.27.0" + react-router-dom "^5.2.0" + rtlcss "^3.3.0" + +"@docusaurus/theme-common@2.0.0-beta.17": + version "2.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-2.0.0-beta.17.tgz#3b71bb8b0973a0cee969a1bb76794c81d597f290" + integrity sha512-LJBDhx+Qexn1JHBqZbE4k+7lBaV1LgpE33enXf43ShB7ebhC91d5HLHhBwgt0pih4+elZU4rG+BG/roAmsNM0g== + dependencies: + "@docusaurus/module-type-aliases" "2.0.0-beta.17" + "@docusaurus/plugin-content-blog" "2.0.0-beta.17" + "@docusaurus/plugin-content-docs" "2.0.0-beta.17" + "@docusaurus/plugin-content-pages" "2.0.0-beta.17" + clsx "^1.1.1" + parse-numeric-range "^1.3.0" + prism-react-renderer "^1.3.1" + tslib "^2.3.1" + utility-types "^3.10.0" + +"@docusaurus/theme-search-algolia@2.0.0-beta.17": + version "2.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-beta.17.tgz#880fb965b71e5aa7f01d456a1a2aa8eb6c244082" + integrity sha512-W12XKM7QC5Jmrec359bJ7aDp5U8DNkCxjVKsMNIs8rDunBoI/N+R35ERJ0N7Bg9ONAWO6o7VkUERQsfGqdvr9w== + dependencies: + "@docsearch/react" "^3.0.0" + "@docusaurus/core" "2.0.0-beta.17" + "@docusaurus/logger" "2.0.0-beta.17" + "@docusaurus/theme-common" "2.0.0-beta.17" + "@docusaurus/theme-translations" "2.0.0-beta.17" + "@docusaurus/utils" "2.0.0-beta.17" + "@docusaurus/utils-validation" "2.0.0-beta.17" + algoliasearch "^4.12.1" + algoliasearch-helper "^3.7.0" + clsx "^1.1.1" + eta "^1.12.3" + fs-extra "^10.0.1" + lodash "^4.17.21" + tslib "^2.3.1" + utility-types "^3.10.0" + +"@docusaurus/theme-translations@2.0.0-beta.17": + version "2.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-2.0.0-beta.17.tgz#a4b84fa63befc11847da471922387aa3eb4e5626" + integrity sha512-oxCX6khjZH3lgdRCL0DH06KkUM/kDr9+lzB35+vY8rpFeQruVgRdi8ekPqG3+Wr0U/N+LMhcYE5BmCb6D0Fv2A== + dependencies: + fs-extra "^10.0.1" + tslib "^2.3.1" + +"@docusaurus/types@2.0.0-beta.17": + version "2.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-2.0.0-beta.17.tgz#582e3d961ce4409ed17454669b3f6a7a9f696cdd" + integrity sha512-4o7TXu5sKlQpybfFFtsGUElBXwSpiXKsQyyWaRKj7DRBkvMtkDX6ITZNnZO9+EHfLbP/cfrokB8C/oO7mCQ5BQ== + dependencies: + commander "^5.1.0" + joi "^17.6.0" + querystring "0.2.1" + utility-types "^3.10.0" + webpack "^5.69.1" + webpack-merge "^5.8.0" + +"@docusaurus/utils-common@2.0.0-beta.17": + version "2.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-2.0.0-beta.17.tgz#cefd950a7722f5f702690b4de27ea19fd65f3364" + integrity sha512-90WCVdj6zYzs7neEIS594qfLO78cUL6EVK1CsRHJgVkkGjcYlCQ1NwkyO7bOb+nIAwdJrPJRc2FBSpuEGxPD3w== + dependencies: + tslib "^2.3.1" + +"@docusaurus/utils-validation@2.0.0-beta.17": + version "2.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-2.0.0-beta.17.tgz#d7dbfc1a29768c37c0d8a6af85eb1bdfef7656df" + integrity sha512-5UjayUP16fDjgd52eSEhL7SlN9x60pIhyS+K7kt7RmpSLy42+4/bSr2pns2VlATmuaoNOO6iIFdB2jgSYJ6SGA== + dependencies: + "@docusaurus/logger" "2.0.0-beta.17" + "@docusaurus/utils" "2.0.0-beta.17" + joi "^17.6.0" + tslib "^2.3.1" + +"@docusaurus/utils@2.0.0-beta.17": + version "2.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-2.0.0-beta.17.tgz#6a696e2ec5e50b2271f2d26d31562e9f3e2bc559" + integrity sha512-yRKGdzSc5v6M/6GyQ4omkrAHCleevwKYiIrufCJgRbOtkhYE574d8mIjjirOuA/emcyLxjh+TLtqAA5TwhIryA== + dependencies: + "@docusaurus/logger" "2.0.0-beta.17" + "@svgr/webpack" "^6.0.0" + file-loader "^6.2.0" + fs-extra "^10.0.1" + github-slugger "^1.4.0" + globby "^11.0.4" + gray-matter "^4.0.3" + js-yaml "^4.1.0" + lodash "^4.17.21" + micromatch "^4.0.4" + resolve-pathname "^3.0.0" + shelljs "^0.8.5" + tslib "^2.3.1" + url-loader "^4.1.1" + webpack "^5.69.1" + "@eslint/eslintrc@^1.2.3": version "1.3.0" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f" @@ -662,6 +2187,18 @@ protobufjs "^6.10.0" yargs "^16.2.0" +"@hapi/hoek@^9.0.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" + integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== + +"@hapi/topo@^5.0.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== + dependencies: + "@hapi/hoek" "^9.0.0" + "@headlessui/react@1.6.1": version "1.6.1" resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.6.1.tgz#d822792e589aac005462491dd62f86095e0c3bef" @@ -686,6 +2223,94 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@jridgewell/gen-mapping@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/gen-mapping@^0.3.0": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz#cf92a983c83466b8c0ce9124fadeaf09f7c66ea9" + integrity sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe" + integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== + +"@jridgewell/set-array@^1.0.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" + integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== + +"@jridgewell/source-map@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" + integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.13" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c" + integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== + +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.13" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea" + integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@leichtgewicht/ip-codec@^2.0.1": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" + integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== + +"@mdx-js/mdx@^1.6.22": + version "1.6.22" + resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.6.22.tgz#8a723157bf90e78f17dc0f27995398e6c731f1ba" + integrity sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA== + dependencies: + "@babel/core" "7.12.9" + "@babel/plugin-syntax-jsx" "7.12.1" + "@babel/plugin-syntax-object-rest-spread" "7.8.3" + "@mdx-js/util" "1.6.22" + babel-plugin-apply-mdx-type-prop "1.6.22" + babel-plugin-extract-import-names "1.6.22" + camelcase-css "2.0.1" + detab "2.0.4" + hast-util-raw "6.0.1" + lodash.uniq "4.5.0" + mdast-util-to-hast "10.0.1" + remark-footnotes "2.0.0" + remark-mdx "1.6.22" + remark-parse "8.0.3" + remark-squeeze-paragraphs "4.0.0" + style-to-object "0.3.0" + unified "9.2.0" + unist-builder "2.0.3" + unist-util-visit "2.0.3" + +"@mdx-js/react@^1.6.22": + version "1.6.22" + resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-1.6.22.tgz#ae09b4744fddc74714ee9f9d6f17a66e77c43573" + integrity sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg== + +"@mdx-js/util@1.6.22": + version "1.6.22" + resolved "https://registry.yarnpkg.com/@mdx-js/util/-/util-1.6.22.tgz#219dfd89ae5b97a8801f015323ffa4b62f45718b" + integrity sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA== + "@next/env@12.1.2": version "12.1.2" resolved "https://registry.yarnpkg.com/@next/env/-/env-12.1.2.tgz#4b0f5fd448ac60b821d2486d2987948e3a099f03" @@ -884,6 +2509,11 @@ resolved "https://registry.yarnpkg.com/@panva/asn1.js/-/asn1.js-1.0.0.tgz#dd55ae7b8129e02049f009408b97c61ccf9032f6" integrity sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw== +"@polka/url@^1.0.0-next.20": + version "1.0.0-next.21" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" + integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== + "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" @@ -992,6 +2622,149 @@ resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.1.3.tgz#6801033be7ff87a6b7cadaf5b337c9f366a3c4b0" integrity sha512-WiBSI6JBIhC6LRIsB2Kwh8DsGTlbBU+mLRxJmAe3LjHTdkDpwIbEOZgoXBbZilk/vlfjK8i6nKRAvIRn1XaIMw== +"@sideway/address@^4.1.3": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" + integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c" + integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@slorber/static-site-generator-webpack-plugin@^4.0.1": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.4.tgz#2bf4a2545e027830d2aa5eb950437c26a289b0f1" + integrity sha512-FvMavoWEIePps6/JwGCOLYKCRhuwIHhMtmbKpBFgzNkxwpa/569LfTkrbRk1m1I3n+ezJK4on9E1A6cjuZmD9g== + dependencies: + bluebird "^3.7.1" + cheerio "^0.22.0" + eval "^0.1.8" + webpack-sources "^1.4.3" + +"@svgr/babel-plugin-add-jsx-attribute@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.0.0.tgz#bd6d1ff32a31b82b601e73672a789cc41e84fe18" + integrity sha512-MdPdhdWLtQsjd29Wa4pABdhWbaRMACdM1h31BY+c6FghTZqNGT7pEYdBoaGeKtdTOBC/XNFQaKVj+r/Ei2ryWA== + +"@svgr/babel-plugin-remove-jsx-attribute@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.0.0.tgz#58654908beebfa069681a83332544b17e5237e89" + integrity sha512-aVdtfx9jlaaxc3unA6l+M9YRnKIZjOhQPthLKqmTXC8UVkBLDRGwPKo+r8n3VZN8B34+yVajzPTZ+ptTSuZZCw== + +"@svgr/babel-plugin-remove-jsx-empty-expression@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.0.0.tgz#d06dd6e8a8f603f92f9979bb9990a1f85a4f57ba" + integrity sha512-Ccj42ApsePD451AZJJf1QzTD1B/BOU392URJTeXFxSK709i0KUsGtbwyiqsKu7vsYxpTM0IA5clAKDyf9RCZyA== + +"@svgr/babel-plugin-replace-jsx-attribute-value@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.0.0.tgz#0b85837577b02c31c09c758a12932820f5245cee" + integrity sha512-88V26WGyt1Sfd1emBYmBJRWMmgarrExpKNVmI9vVozha4kqs6FzQJ/Kp5+EYli1apgX44518/0+t9+NU36lThQ== + +"@svgr/babel-plugin-svg-dynamic-title@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.0.0.tgz#28236ec26f7ab9d486a487d36ae52d58ba15676f" + integrity sha512-F7YXNLfGze+xv0KMQxrl2vkNbI9kzT9oDK55/kUuymh1ACyXkMV+VZWX1zEhSTfEKh7VkHVZGmVtHg8eTZ6PRg== + +"@svgr/babel-plugin-svg-em-dimensions@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.0.0.tgz#40267c5dea1b43c4f83a0eb6169e08b43d8bafce" + integrity sha512-+rghFXxdIqJNLQK08kwPBD3Z22/0b2tEZ9lKiL/yTfuyj1wW8HUXu4bo/XkogATIYuXSghVQOOCwURXzHGKyZA== + +"@svgr/babel-plugin-transform-react-native-svg@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.0.0.tgz#eb688d0a5f539e34d268d8a516e81f5d7fede7c9" + integrity sha512-VaphyHZ+xIKv5v0K0HCzyfAaLhPGJXSk2HkpYfXIOKb7DjLBv0soHDxNv6X0vr2titsxE7klb++u7iOf7TSrFQ== + +"@svgr/babel-plugin-transform-svg-component@^6.2.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.2.0.tgz#7ba61d9fc1fb42b0ba1a04e4630019fa7e993c4f" + integrity sha512-bhYIpsORb++wpsp91fymbFkf09Z/YEKR0DnFjxvN+8JHeCUD2unnh18jIMKnDJTWtvpTaGYPXELVe4OOzFI0xg== + +"@svgr/babel-preset@^6.2.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-6.2.0.tgz#1d3ad8c7664253a4be8e4a0f0e6872f30d8af627" + integrity sha512-4WQNY0J71JIaL03DRn0vLiz87JXx0b9dYm2aA8XHlQJQoixMl4r/soYHm8dsaJZ3jWtkCiOYy48dp9izvXhDkQ== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "^6.0.0" + "@svgr/babel-plugin-remove-jsx-attribute" "^6.0.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "^6.0.0" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^6.0.0" + "@svgr/babel-plugin-svg-dynamic-title" "^6.0.0" + "@svgr/babel-plugin-svg-em-dimensions" "^6.0.0" + "@svgr/babel-plugin-transform-react-native-svg" "^6.0.0" + "@svgr/babel-plugin-transform-svg-component" "^6.2.0" + +"@svgr/core@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-6.2.1.tgz#195de807a9f27f9e0e0d678e01084b05c54fdf61" + integrity sha512-NWufjGI2WUyrg46mKuySfviEJ6IxHUOm/8a3Ph38VCWSp+83HBraCQrpEM3F3dB6LBs5x8OElS8h3C0oOJaJAA== + dependencies: + "@svgr/plugin-jsx" "^6.2.1" + camelcase "^6.2.0" + cosmiconfig "^7.0.1" + +"@svgr/hast-util-to-babel-ast@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.2.1.tgz#ae065567b74cbe745afae617053adf9a764bea25" + integrity sha512-pt7MMkQFDlWJVy9ULJ1h+hZBDGFfSCwlBNW1HkLnVi7jUhyEXUaGYWi1x6bM2IXuAR9l265khBT4Av4lPmaNLQ== + dependencies: + "@babel/types" "^7.15.6" + entities "^3.0.1" + +"@svgr/plugin-jsx@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-6.2.1.tgz#5668f1d2aa18c2f1bb7a1fc9f682d3f9aed263bd" + integrity sha512-u+MpjTsLaKo6r3pHeeSVsh9hmGRag2L7VzApWIaS8imNguqoUwDq/u6U/NDmYs/KAsrmtBjOEaAAPbwNGXXp1g== + dependencies: + "@babel/core" "^7.15.5" + "@svgr/babel-preset" "^6.2.0" + "@svgr/hast-util-to-babel-ast" "^6.2.1" + svg-parser "^2.0.2" + +"@svgr/plugin-svgo@^6.2.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-6.2.0.tgz#4cbe6a33ccccdcae4e3b63ded64cc1cbe1faf48c" + integrity sha512-oDdMQONKOJEbuKwuy4Np6VdV6qoaLLvoY86hjvQEgU82Vx1MSWRyYms6Sl0f+NtqxLI/rDVufATbP/ev996k3Q== + dependencies: + cosmiconfig "^7.0.1" + deepmerge "^4.2.2" + svgo "^2.5.0" + +"@svgr/webpack@^6.0.0", "@svgr/webpack@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-6.2.1.tgz#ef5d51c1b6be4e7537fb9f76b3f2b2e22b63c58d" + integrity sha512-h09ngMNd13hnePwgXa+Y5CgOjzlCvfWLHg+MBnydEedAnuLRzUHUJmGS3o2OsrhxTOOqEsPOFt5v/f6C5Qulcw== + dependencies: + "@babel/core" "^7.15.5" + "@babel/plugin-transform-react-constant-elements" "^7.14.5" + "@babel/preset-env" "^7.15.6" + "@babel/preset-react" "^7.14.5" + "@babel/preset-typescript" "^7.15.0" + "@svgr/core" "^6.2.1" + "@svgr/plugin-jsx" "^6.2.1" + "@svgr/plugin-svgo" "^6.2.0" + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + "@tailwindcss/forms@0.4.0": version "0.4.0" resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.4.0.tgz#a46715e347a32d216a3973eb67473bd29ae3798e" @@ -1018,6 +2791,16 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@tsconfig/docusaurus@^1.0.4": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@tsconfig/docusaurus/-/docusaurus-1.0.5.tgz#5298c5b0333c6263f06c3149b38ebccc9f169a4e" + integrity sha512-KM/TuJa9fugo67dTGx+ktIqf3fVc077J6jwHu845Hex4EQf7LABlNonP/mohDKT0cmncdtlYVHHF74xR/YpThg== + "@types/body-parser@*": version "1.19.2" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" @@ -1026,6 +2809,21 @@ "@types/connect" "*" "@types/node" "*" +"@types/bonjour@^3.5.9": + version "3.5.10" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.10.tgz#0f6aadfe00ea414edc86f5d106357cda9701e275" + integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw== + dependencies: + "@types/node" "*" + +"@types/connect-history-api-fallback@^1.3.5": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" + integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" + "@types/connect@*": version "3.4.35" resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" @@ -1038,6 +2836,27 @@ resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== +"@types/eslint-scope@^3.7.3": + version "3.7.3" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.3.tgz#125b88504b61e3c8bc6f870882003253005c3224" + integrity sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "8.4.2" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.2.tgz#48f2ac58ab9c631cb68845c3d956b28f79fad575" + integrity sha512-Z1nseZON+GEnFjJc04sv4NSALGjhFwy6K0HXt7qsn5ArfAKtb63dXNJHf+1YW6IpOIYRBGUbu3GwJdj8DGnCjA== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^0.0.51": + version "0.0.51" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" + integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== + "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": version "4.17.28" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" @@ -1047,6 +2866,16 @@ "@types/qs" "*" "@types/range-parser" "*" +"@types/express@*", "@types/express@^4.17.13": + version "4.17.13" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" + integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.18" + "@types/qs" "*" + "@types/serve-static" "*" + "@types/express@4.17.3": version "4.17.3" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.3.tgz#38e4458ce2067873b09a73908df488870c303bd9" @@ -1056,27 +2885,41 @@ "@types/express-serve-static-core" "*" "@types/serve-static" "*" -"@types/express@^4.17.13": - version "4.17.13" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" - integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.18" - "@types/qs" "*" - "@types/serve-static" "*" - "@types/google.maps@^3.45.3": version "3.49.0" resolved "https://registry.yarnpkg.com/@types/google.maps/-/google.maps-3.49.0.tgz#26fcf3d86ecbc6545db0e6691a434ec8132df48b" integrity sha512-hFGEX4srYvWf2+WiJ7OX2ehgEzx88HcXMBa+RIW8vF3oyPShZ9pcU2ZZAM9oIlomWdJ0pC89ibalJ77ioTGVEA== +"@types/hast@^2.0.0": + version "2.3.4" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.4.tgz#8aa5ef92c117d20d974a82bdfb6a648b08c0bafc" + integrity sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g== + dependencies: + "@types/unist" "*" + +"@types/history@^4.7.11": + version "4.7.11" + resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.11.tgz#56588b17ae8f50c53983a524fc3cc47437969d64" + integrity sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA== + "@types/hogan.js@^3.0.0": version "3.0.1" resolved "https://registry.yarnpkg.com/@types/hogan.js/-/hogan.js-3.0.1.tgz#64c54407b30da359763e14877f5702b8ae85d61c" integrity sha512-D03i/2OY7kGyMq9wdQ7oD8roE49z/ZCZThe/nbahtvuqCNZY9T2MfedOWyeBdbEpY2W8Gnh/dyJLdFtUCOkYbg== -"@types/json-schema@^7.0.9": +"@types/html-minifier-terser@^6.0.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" + integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== + +"@types/http-proxy@^1.17.8": + version "1.17.9" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.9.tgz#7f0e7931343761efde1e2bf48c40f02f3f75705a" + integrity sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw== + dependencies: + "@types/node" "*" + +"@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== @@ -1086,6 +2929,11 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== +"@types/katex@^0.11.0": + version "0.11.1" + resolved "https://registry.yarnpkg.com/@types/katex/-/katex-0.11.1.tgz#34de04477dcf79e2ef6c8d23b41a3d81f9ebeaf5" + integrity sha512-DUlIj2nk0YnJdlWgsFuVKcX27MLW0KbKmGVoUHmFr+74FYYNUDAaj9ZqTADvsbE8rfxuVmSFc7KczYn5Y09ozg== + "@types/lodash@4.14.178": version "4.14.178" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.178.tgz#341f6d2247db528d4a13ddbb374bcdc80406f4f8" @@ -1109,6 +2957,13 @@ "@types/node" "*" form-data "^2.5.0" +"@types/mdast@^3.0.0": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" + integrity sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA== + dependencies: + "@types/unist" "*" + "@types/mime@^1": version "1.3.2" resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" @@ -1129,11 +2984,21 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.11.tgz#6ea7342dfb379ea1210835bada87b3c512120234" integrity sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw== +"@types/node@^17.0.5": + version "17.0.38" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.38.tgz#f8bb07c371ccb1903f3752872c89f44006132947" + integrity sha512-5jY9RhV7c0Z4Jy09G+NIDTsCZ5G0L5n+Z+p+Y7t5VJHM30bgwzSjVtlcBxqAj+6L/swIlvtOSzr8rBk/aNyV2g== + "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== +"@types/parse5@^5.0.0": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109" + integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== + "@types/prop-types@*": version "15.7.5" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" @@ -1149,7 +3014,33 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/react@17.0.43": +"@types/react-router-config@*": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@types/react-router-config/-/react-router-config-5.0.6.tgz#87c5c57e72d241db900d9734512c50ccec062451" + integrity sha512-db1mx37a1EJDf1XeX8jJN7R3PZABmJQXR8r28yUjVMFSjkmnQo6X6pOEEmNl+Tp2gYQOGPdYbFIipBtdElZ3Yg== + dependencies: + "@types/history" "^4.7.11" + "@types/react" "*" + "@types/react-router" "*" + +"@types/react-router-dom@*": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz#e9d6b4a66fcdbd651a5f106c2656a30088cc1e83" + integrity sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw== + dependencies: + "@types/history" "^4.7.11" + "@types/react" "*" + "@types/react-router" "*" + +"@types/react-router@*": + version "5.1.18" + resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.18.tgz#c8851884b60bc23733500d86c1266e1cfbbd9ef3" + integrity sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g== + dependencies: + "@types/history" "^4.7.11" + "@types/react" "*" + +"@types/react@*", "@types/react@17.0.43": version "17.0.43" resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.43.tgz#4adc142887dd4a2601ce730bc56c3436fdb07a55" integrity sha512-8Q+LNpdxf057brvPu1lMtC5Vn7J119xrP1aq4qiaefNioQUYANF/CYeK4NsKorSZyUGJ66g0IM+4bbjwx45o2A== @@ -1158,11 +3049,30 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/retry@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== + +"@types/sax@^1.2.1": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/sax/-/sax-1.2.4.tgz#8221affa7f4f3cb21abd22f244cfabfa63e6a69e" + integrity sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw== + dependencies: + "@types/node" "*" + "@types/scheduler@*": version "0.16.2" resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== +"@types/serve-index@^1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278" + integrity sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg== + dependencies: + "@types/express" "*" + "@types/serve-static@*": version "1.13.10" resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" @@ -1171,6 +3081,25 @@ "@types/mime" "^1" "@types/node" "*" +"@types/sockjs@^0.3.33": + version "0.3.33" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f" + integrity sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw== + dependencies: + "@types/node" "*" + +"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" + integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== + +"@types/ws@^8.5.1": + version "8.5.3" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.3.tgz#7d25a1ffbecd3c4f2d35068d0b283c037003274d" + integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w== + dependencies: + "@types/node" "*" + "@typescript-eslint/eslint-plugin@5.25.0": version "5.25.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.25.0.tgz#e8ce050990e4d36cc200f2de71ca0d3eb5e77a31" @@ -1251,6 +3180,137 @@ "@typescript-eslint/types" "5.25.0" eslint-visitor-keys "^3.3.0" +"@webassemblyjs/ast@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" + integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + +"@webassemblyjs/floating-point-hex-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" + integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== + +"@webassemblyjs/helper-api-error@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" + integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== + +"@webassemblyjs/helper-buffer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" + integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== + +"@webassemblyjs/helper-numbers@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" + integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" + integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== + +"@webassemblyjs/helper-wasm-section@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" + integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + +"@webassemblyjs/ieee754@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" + integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" + integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" + integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== + +"@webassemblyjs/wasm-edit@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" + integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/helper-wasm-section" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-opt" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + "@webassemblyjs/wast-printer" "1.11.1" + +"@webassemblyjs/wasm-gen@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" + integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wasm-opt@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" + integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + +"@webassemblyjs/wasm-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" + integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wast-printer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" + integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -1263,7 +3323,7 @@ abort-controller@^3.0.0: dependencies: event-target-shim "^5.0.0" -accepts@~1.3.8: +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== @@ -1271,6 +3331,11 @@ accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" +acorn-import-assertions@^1.7.6: + version "1.8.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" + integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== + acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -1290,16 +3355,26 @@ acorn-walk@^7.0.0: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== +acorn-walk@^8.0.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + acorn@^7.0.0: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.7.1: +acorn@^8.0.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1: version "8.7.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== +address@^1.0.1, address@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/address/-/address-1.2.0.tgz#d352a62c92fee90f89a693eccd2a8b2139ab02d9" + integrity sha512-tNEZYz5G/zYunxFm7sfhAxkXEuLj3K6BKwv6ZURlsF6yiUQ65z0Q2wZW9L5cPUl9ocofGvXOdFYbFHp0+6MOig== + agent-base@4, agent-base@^4.2.0, agent-base@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" @@ -1321,7 +3396,34 @@ agent-base@~4.2.1: dependencies: es6-promisify "^5.0.0" -ajv@^6.10.0, ajv@^6.12.4: +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.10.0, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1331,7 +3433,17 @@ ajv@^6.10.0, ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -algoliasearch-helper@^3.7.4, algoliasearch-helper@^3.8.2: +ajv@^8.0.0, ajv@^8.8.0: + version "8.11.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" + integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +algoliasearch-helper@^3.7.0, algoliasearch-helper@^3.7.4, algoliasearch-helper@^3.8.2: version "3.8.2" resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.8.2.tgz#35726dc6d211f49dbab0bf6d37b4658165539523" integrity sha512-AXxiF0zT9oYwl8ZBgU/eRXvfYhz7cBA5YrLPlw9inZHdaYF0QEya/f1Zp1mPYMXc1v6VkHwBq4pk6/vayBLICg== @@ -1358,11 +3470,48 @@ algoliasearch@4.13.0: "@algolia/requester-node-http" "4.13.0" "@algolia/transporter" "4.13.0" +algoliasearch@^4.0.0, algoliasearch@^4.12.1: + version "4.13.1" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.13.1.tgz#54195c41c9e4bd13ed64982248cf49d4576974fe" + integrity sha512-dtHUSE0caWTCE7liE1xaL+19AFf6kWEcyn76uhcitWpntqvicFHXKFoZe5JJcv9whQOTRM6+B8qJz6sFj+rDJA== + dependencies: + "@algolia/cache-browser-local-storage" "4.13.1" + "@algolia/cache-common" "4.13.1" + "@algolia/cache-in-memory" "4.13.1" + "@algolia/client-account" "4.13.1" + "@algolia/client-analytics" "4.13.1" + "@algolia/client-common" "4.13.1" + "@algolia/client-personalization" "4.13.1" + "@algolia/client-search" "4.13.1" + "@algolia/logger-common" "4.13.1" + "@algolia/logger-console" "4.13.1" + "@algolia/requester-browser-xhr" "4.13.1" + "@algolia/requester-common" "4.13.1" + "@algolia/requester-node-http" "4.13.1" + "@algolia/transporter" "4.13.1" + +ansi-align@^3.0.0, ansi-align@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== + dependencies: + string-width "^4.1.0" + +ansi-html-community@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -1377,6 +3526,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +ansi-styles@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.0.tgz#87313c102b8118abd57371afab34618bf7350ed3" + integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ== + anymatch@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" @@ -1385,11 +3539,18 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -arg@^5.0.1: +arg@^5.0.0, arg@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.1.tgz#eb0c9a8f77786cad2af8ff2b862899842d7b6adb" integrity sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA== +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + argparse@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" @@ -1408,6 +3569,11 @@ array-flatten@1.1.1: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== +array-flatten@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + array-includes@^3.1.4, array-includes@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.5.tgz#2c320010db8d31031fd2a5f6b3bbd4b1aad31bdb" @@ -1424,6 +3590,11 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== +array-union@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-3.0.1.tgz#da52630d327f8b88cfbfb57728e2af5cd9b6b975" + integrity sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw== + array.prototype.flat@^1.2.5: version "1.3.0" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz#0b0c1567bf57b38b56b4c97b8aa72ab45e4adc7b" @@ -1449,6 +3620,11 @@ arrify@^2.0.0: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + ast-types-flow@^0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" @@ -1480,6 +3656,11 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + autoprefixer@10.2.6: version "10.2.6" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.2.6.tgz#aadd9ec34e1c98d403e01950038049f0eb252949" @@ -1492,31 +3673,133 @@ autoprefixer@10.2.6: normalize-range "^0.1.2" postcss-value-parser "^4.1.0" +autoprefixer@^10.3.7, autoprefixer@^10.4.2: + version "10.4.7" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.7.tgz#1db8d195f41a52ca5069b7593be167618edbbedf" + integrity sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA== + dependencies: + browserslist "^4.20.3" + caniuse-lite "^1.0.30001335" + fraction.js "^4.2.0" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + axe-core@^4.3.5: version "4.4.2" resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.2.tgz#dcf7fb6dea866166c3eab33d68208afe4d5f670c" integrity sha512-LVAaGp/wkkgYJcjmHsoKx4juT1aQvJyPcW09MLCjVTh3V2cc6PnyempiLMNH5iMdfIX/zdbjUx2KDjMLCTdPeA== +axios@^0.25.0: + version "0.25.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.25.0.tgz#349cfbb31331a9b4453190791760a8d35b093e0a" + integrity sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g== + dependencies: + follow-redirects "^1.14.7" + axobject-query@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== +babel-loader@^8.2.3: + version "8.2.5" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.5.tgz#d45f585e654d5a5d90f5350a779d7647c5ed512e" + integrity sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ== + dependencies: + find-cache-dir "^3.3.1" + loader-utils "^2.0.0" + make-dir "^3.1.0" + schema-utils "^2.6.5" + +babel-plugin-apply-mdx-type-prop@1.6.22: + version "1.6.22" + resolved "https://registry.yarnpkg.com/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz#d216e8fd0de91de3f1478ef3231e05446bc8705b" + integrity sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ== + dependencies: + "@babel/helper-plugin-utils" "7.10.4" + "@mdx-js/util" "1.6.22" + +babel-plugin-dynamic-import-node@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" + integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-extract-import-names@1.6.22: + version "1.6.22" + resolved "https://registry.yarnpkg.com/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz#de5f9a28eb12f3eb2578bf74472204e66d1a13dc" + integrity sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ== + dependencies: + "@babel/helper-plugin-utils" "7.10.4" + +babel-plugin-polyfill-corejs2@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5" + integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== + dependencies: + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.3.1" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72" + integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.1" + core-js-compat "^3.21.0" + +babel-plugin-polyfill-regenerator@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" + integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.1" + +bail@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" + integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +base16@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70" + integrity sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ== + base64-js@^1.3.0: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== + big-integer@^1.6.16: version "1.6.51" resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + bignumber.js@^9.0.0: version "9.0.2" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.2.tgz#71c6c6bed38de64e24a65ebe16cfcf23ae693673" @@ -1534,6 +3817,11 @@ biskviit@1.0.1: dependencies: psl "^1.1.7" +bluebird@^3.7.1: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + body-parser@1.20.0: version "1.20.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" @@ -1552,11 +3840,49 @@ body-parser@1.20.0: type-is "~1.6.18" unpipe "1.0.0" -boolbase@^1.0.0: +bonjour-service@^1.0.11: + version "1.0.12" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.0.12.tgz#28fbd4683f5f2e36feedb833e24ba661cac960c3" + integrity sha512-pMmguXYCu63Ug37DluMKEHdxc+aaIf/ay4YbF8Gxtba+9d3u+rmEWy61VK3Z3hp8Rskok3BunHYnG0dUHAsblw== + dependencies: + array-flatten "^2.1.2" + dns-equal "^1.0.0" + fast-deep-equal "^3.1.3" + multicast-dns "^7.2.4" + +boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== +boxen@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" + integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== + dependencies: + ansi-align "^3.0.0" + camelcase "^6.2.0" + chalk "^4.1.0" + cli-boxes "^2.2.1" + string-width "^4.2.2" + type-fest "^0.20.2" + widest-line "^3.1.0" + wrap-ansi "^7.0.0" + +boxen@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-6.2.1.tgz#b098a2278b2cd2845deef2dff2efc38d329b434d" + integrity sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw== + dependencies: + ansi-align "^3.0.1" + camelcase "^6.2.0" + chalk "^4.1.2" + cli-boxes "^3.0.0" + string-width "^5.0.1" + type-fest "^2.5.0" + widest-line "^4.0.1" + wrap-ansi "^8.0.1" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1586,7 +3912,7 @@ broadcast-channel@^3.4.1: rimraf "3.0.2" unload "2.2.0" -browserslist@^4.16.6: +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.18.1, browserslist@^4.20.2, browserslist@^4.20.3: version "4.20.3" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== @@ -1602,11 +3928,34 @@ buffer-equal-constant-time@1.0.1: resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + bytes@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -1620,16 +3969,49 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase-css@^2.0.1: +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camelcase-css@2.0.1, camelcase-css@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== +camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001335: + version "1.0.30001344" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001344.tgz#8a1e7fdc4db9c2ec79a05e9fd68eb93a761888bb" + integrity sha512-0ZFjnlCaXNOAYcV7i+TtdKBp0L/3XEU2MF/x6Du1lrh+SRX4IfzIVL4HNJg5pB2PmFb8rszIGyOvsZnqqRoc2g== + caniuse-lite@^1.0.30001230, caniuse-lite@^1.0.30001283, caniuse-lite@^1.0.30001332: version "1.0.30001341" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001341.tgz#59590c8ffa8b5939cf4161f00827b8873ad72498" integrity sha512-2SodVrFFtvGENGCv0ChVJIDQ0KPaS1cg7/qtfMaICgeMolDdo/Z2OD32F0Aq9yl6F4YFwGPBS5AaPqNYiW4PoA== +ccount@^1.0.0, ccount@^1.0.3: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" + integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== + chalk@^2.0.0: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -1647,7 +4029,70 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" -chokidar@^3.5.2: +character-entities-legacy@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" + integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== + +character-entities@^1.0.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" + integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== + +character-reference-invalid@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" + integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== + +cheerio-select@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" + integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== + dependencies: + boolbase "^1.0.0" + css-select "^5.1.0" + css-what "^6.1.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + +cheerio@^0.22.0: + version "0.22.0" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" + integrity sha512-8/MzidM6G/TgRelkzDG13y3Y9LxBjCb+8yOEZ9+wwq5gVF2w2pV0wmHvjfT0RvuxGyR7UEuK36r+yYMbT4uKgA== + dependencies: + css-select "~1.2.0" + dom-serializer "~0.1.0" + entities "~1.1.1" + htmlparser2 "^3.9.1" + lodash.assignin "^4.0.9" + lodash.bind "^4.1.4" + lodash.defaults "^4.0.1" + lodash.filter "^4.4.0" + lodash.flatten "^4.2.0" + lodash.foreach "^4.3.0" + lodash.map "^4.4.0" + lodash.merge "^4.4.0" + lodash.pick "^4.2.1" + lodash.reduce "^4.4.0" + lodash.reject "^4.4.0" + lodash.some "^4.4.0" + +cheerio@^1.0.0-rc.10: + version "1.0.0-rc.11" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.11.tgz#1be84be1a126958366bcc57a11648cd9b30a60c2" + integrity sha512-bQwNaDIBKID5ts/DsdhxrjqFXYfLw4ste+wMKqWA8DyKcS4qwsPP4Bk8ZNaTJjvpiX/qW3BT4sU7d6Bh5i+dag== + dependencies: + cheerio-select "^2.1.0" + dom-serializer "^2.0.0" + domhandler "^5.0.3" + domutils "^3.0.1" + htmlparser2 "^8.0.1" + parse5 "^7.0.0" + parse5-htmlparser2-tree-adapter "^7.0.0" + tslib "^2.4.0" + +chokidar@^3.4.2, chokidar@^3.5.2, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -1662,11 +4107,52 @@ chokidar@^3.5.2: optionalDependencies: fsevents "~2.3.2" +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + classnames@^2.2.5: version "2.3.1" resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== +clean-css@^5.2.2, clean-css@^5.2.4: + version "5.3.0" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.0.tgz#ad3d8238d5f3549e83d5f87205189494bc7cbb59" + integrity sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ== + dependencies: + source-map "~0.6.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-boxes@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + +cli-boxes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-3.0.0.tgz#71a10c716feeba005e4504f36329ef0b17cf3145" + integrity sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g== + +cli-table3@^0.6.1: + version "0.6.2" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.2.tgz#aaf5df9d8b5bf12634dc8b3040806a0c07120d2a" + integrity sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw== + dependencies: + string-width "^4.2.0" + optionalDependencies: + "@colors/colors" "1.5.0" + cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -1676,7 +4162,23 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" -clsx@1.1.1: +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q== + dependencies: + mimic-response "^1.0.0" + +clsx@1.1.1, clsx@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== @@ -1686,6 +4188,11 @@ co@^4.6.0: resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= +collapse-white-space@^1.0.2: + version "1.0.6" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" + integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -1710,11 +4217,26 @@ color-name@^1.1.4, color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +colord@^2.9.1: + version "2.9.2" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.2.tgz#25e2bacbbaa65991422c07ea209e2089428effb1" + integrity sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ== + colorette@^1.2.2: version "1.4.0" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== +colorette@^2.0.10: + version "2.0.16" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" + integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== + +combine-promises@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/combine-promises/-/combine-promises-1.1.0.tgz#72db90743c0ca7aab7d0d8d2052fd7b0f674de71" + integrity sha512-ZI9jvcLDxqwaXEixOhArm3r7ReIivsXkpbyEWyeOhzz1QS0iSgBPnWvEqvIQtYyamGCYA88gFhmUrs9hrrQ0pg== + combined-stream@^1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -1722,13 +4244,56 @@ combined-stream@^1.0.6: dependencies: delayed-stream "~1.0.0" -compressible@^2.0.12: +comma-separated-tokens@^1.0.0: + version "1.0.8" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" + integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@^8.0.0, commander@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +compressible@^2.0.12, compressible@~2.0.16: version "2.0.18" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== dependencies: mime-db ">= 1.43.0 < 2" +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -1748,7 +4313,7 @@ concurrently@6.5.1: tree-kill "^1.2.2" yargs "^16.2.0" -configstore@^5.0.0: +configstore@^5.0.0, configstore@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== @@ -1760,6 +4325,21 @@ configstore@^5.0.0: write-file-atomic "^3.0.0" xdg-basedir "^4.0.0" +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +consola@^2.15.3: + version "2.15.3" + resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" + integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + integrity sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA== + content-disposition@0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" @@ -1772,6 +4352,13 @@ content-type@~1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== +convert-source-map@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== + dependencies: + safe-buffer "~5.1.1" + cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" @@ -1782,6 +4369,31 @@ cookie@0.5.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== +copy-text-to-clipboard@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.0.1.tgz#8cbf8f90e0a47f12e4a24743736265d157bce69c" + integrity sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q== + +copy-webpack-plugin@^10.2.4: + version "10.2.4" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz#6c854be3fdaae22025da34b9112ccf81c63308fe" + integrity sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg== + dependencies: + fast-glob "^3.2.7" + glob-parent "^6.0.1" + globby "^12.0.2" + normalize-path "^3.0.0" + schema-utils "^4.0.0" + serialize-javascript "^6.0.0" + +core-js-compat@^3.21.0, core-js-compat@^3.22.1: + version "3.22.7" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.7.tgz#8359eb66ecbf726dd0cfced8e48d5e73f3224239" + integrity sha512-uI9DAQKKiiE/mclIC5g4AjRpio27g+VMRhe6rQoz+q4Wm4L6A/fJhiLtBw+sfOpDG9wZ3O0pxIw7GbfOlBgjOA== + dependencies: + browserslist "^4.20.3" + semver "7.0.0" + core-js-pure@^3.20.2: version "3.22.5" resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.22.5.tgz#bdee0ed2f9b78f2862cda4338a07b13a49b6c9a9" @@ -1792,6 +4404,11 @@ core-js@3.6.5: resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== +core-js@^3.21.1: + version "3.22.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.22.7.tgz#8d6c37f630f6139b8732d10f2c114c3f1d00024f" + integrity sha512-Jt8SReuDKVNZnZEzyEQT5eK6T2RRCXkfTq7Lo09kpm+fHjgGewSbNjV+Wt4yZMhPDdzz2x1ulI5z/w4nxpBseg== + core-util-is@~1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" @@ -1805,7 +4422,18 @@ cors@2.8.5, cors@^2.8.5: object-assign "^4" vary "^1" -cosmiconfig@^7.0.1: +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + +cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== @@ -1835,7 +4463,14 @@ cross-env@^7.0.3: dependencies: cross-spawn "^7.0.1" -cross-spawn@^7.0.1, cross-spawn@^7.0.2: +cross-fetch@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" + integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== + dependencies: + node-fetch "2.6.7" + +cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -1849,7 +4484,38 @@ crypto-random-string@^2.0.0: resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== -css-select@^4.2.0: +css-declaration-sorter@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz#bfd2f6f50002d6a3ae779a87d3a0c5d5b10e0f02" + integrity sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg== + +css-loader@^6.6.0: + version "6.7.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.1.tgz#e98106f154f6e1baf3fc3bc455cb9981c1d5fd2e" + integrity sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw== + dependencies: + icss-utils "^5.1.0" + postcss "^8.4.7" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.2.0" + semver "^7.3.5" + +css-minimizer-webpack-plugin@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz#ab78f781ced9181992fe7b6e4f3422e76429878f" + integrity sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q== + dependencies: + cssnano "^5.0.6" + jest-worker "^27.0.2" + postcss "^8.3.5" + schema-utils "^4.0.0" + serialize-javascript "^6.0.0" + source-map "^0.6.1" + +css-select@^4.1.3, css-select@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== @@ -1860,7 +4526,41 @@ css-select@^4.2.0: domutils "^2.8.0" nth-check "^2.0.1" -css-what@^6.0.1: +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-select@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha512-dUQOBoqdR7QwV90WysXPLXG5LO7nhYBgiWVfxF80DKPF8zx1t/pUd2FYy73emg3zrjtM6dzmYgbHKfV2rxiHQA== + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-tree@^1.1.2, css-tree@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@2.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== + +css-what@^6.0.1, css-what@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== @@ -1870,6 +4570,74 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== +cssnano-preset-advanced@^5.1.12: + version "5.3.6" + resolved "https://registry.yarnpkg.com/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.6.tgz#6c995a86cecc9e6472bf6d120e5517231ed527dc" + integrity sha512-OZHsytu16eStRVrIY3wmPQqhJMaI0+O3raU4JHoKV3uuQYEeQek/FJVUIvYXD55hWR6OjCMyKYNRDw+k3/xgUw== + dependencies: + autoprefixer "^10.3.7" + cssnano-preset-default "^5.2.10" + postcss-discard-unused "^5.1.0" + postcss-merge-idents "^5.1.1" + postcss-reduce-idents "^5.2.0" + postcss-zindex "^5.1.0" + +cssnano-preset-default@^5.2.10: + version "5.2.10" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.10.tgz#6dfffe6cc3b13f3bb356a42c49a334a98700ef45" + integrity sha512-H8TJRhTjBKVOPltp9vr9El9I+IfYsOMhmXdK0LwdvwJcxYX9oWkY7ctacWusgPWAgQq1vt/WO8v+uqpfLnM7QA== + dependencies: + css-declaration-sorter "^6.2.2" + cssnano-utils "^3.1.0" + postcss-calc "^8.2.3" + postcss-colormin "^5.3.0" + postcss-convert-values "^5.1.2" + postcss-discard-comments "^5.1.2" + postcss-discard-duplicates "^5.1.0" + postcss-discard-empty "^5.1.1" + postcss-discard-overridden "^5.1.0" + postcss-merge-longhand "^5.1.5" + postcss-merge-rules "^5.1.2" + postcss-minify-font-values "^5.1.0" + postcss-minify-gradients "^5.1.1" + postcss-minify-params "^5.1.3" + postcss-minify-selectors "^5.2.1" + postcss-normalize-charset "^5.1.0" + postcss-normalize-display-values "^5.1.0" + postcss-normalize-positions "^5.1.0" + postcss-normalize-repeat-style "^5.1.0" + postcss-normalize-string "^5.1.0" + postcss-normalize-timing-functions "^5.1.0" + postcss-normalize-unicode "^5.1.0" + postcss-normalize-url "^5.1.0" + postcss-normalize-whitespace "^5.1.1" + postcss-ordered-values "^5.1.1" + postcss-reduce-initial "^5.1.0" + postcss-reduce-transforms "^5.1.0" + postcss-svgo "^5.1.0" + postcss-unique-selectors "^5.1.1" + +cssnano-utils@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" + integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== + +cssnano@^5.0.17, cssnano@^5.0.6: + version "5.1.10" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.10.tgz#fc6ddd9a4d7d238f320634326ed814cf0abf6e1c" + integrity sha512-ACpnRgDg4m6CZD/+8SgnLcGCgy6DDGdkMbOawwdvVxNietTNLe/MtWcenp6qT0PRt5wzhGl6/cjMWCdhKXC9QA== + dependencies: + cssnano-preset-default "^5.2.10" + lilconfig "^2.0.3" + yaml "^1.10.2" + +csso@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + csstype@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2" @@ -1996,7 +4764,7 @@ dayjs@1.10.7: resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.7.tgz#2cf5f91add28116748440866a0a1d26f3a6ce468" integrity sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig== -debug@2, debug@2.6.9, debug@^2.6.9: +debug@2, debug@2.6.9, debug@^2.6.0, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -2024,11 +4792,45 @@ debug@^3.1.0, debug@^3.2.7: dependencies: ms "^2.1.1" +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== + dependencies: + mimic-response "^1.0.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +default-gateway@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== + dependencies: + execa "^5.0.0" + +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + define-properties@^1.1.3, define-properties@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" @@ -2051,6 +4853,20 @@ degenerator@^1.0.4: escodegen "1.x.x" esprima "3.x.x" +del@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-6.1.1.tgz#3b70314f1ec0aa325c6b14eb36b95786671edb7a" + integrity sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg== + dependencies: + globby "^11.0.1" + graceful-fs "^4.2.4" + is-glob "^4.0.1" + is-path-cwd "^2.2.0" + is-path-inside "^3.0.2" + p-map "^4.0.0" + rimraf "^3.0.2" + slash "^3.0.0" + delaunator@4: version "4.0.1" resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-4.0.1.tgz#3d779687f57919a7a418f8ab947d3bddb6846957" @@ -2066,6 +4882,11 @@ depd@2.0.0: resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + dequal@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d" @@ -2076,11 +4897,34 @@ destroy@1.2.0: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== +detab@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/detab/-/detab-2.0.4.tgz#b927892069aff405fbb9a186fe97a44a92a94b43" + integrity sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g== + dependencies: + repeat-string "^1.5.4" + detect-node@^2.0.4, detect-node@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== +detect-port-alt@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" + integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== + dependencies: + address "^1.0.1" + debug "^2.6.0" + +detect-port@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.3.0.tgz#d9c40e9accadd4df5cac6a782aefd014d573d1f1" + integrity sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ== + dependencies: + address "^1.0.1" + debug "^2.6.0" + detective@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b" @@ -2114,6 +4958,18 @@ dlv@^1.1.3: resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== + +dns-packet@^5.2.2: + version "5.3.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.3.1.tgz#eb94413789daec0f0ebe2fcc230bdc9d7c91b43d" + integrity sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw== + dependencies: + "@leichtgewicht/ip-codec" "^2.0.1" + doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -2128,6 +4984,21 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + dom-serializer@^1.0.1: version "1.4.1" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" @@ -2137,19 +5008,71 @@ dom-serializer@^1.0.1: domhandler "^4.2.0" entities "^2.0.0" -domelementtype@^2.0.1, domelementtype@^2.2.0: +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +dom-serializer@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== + dependencies: + domelementtype "^1.3.0" + entities "^1.1.1" + +domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== -domhandler@^4.2.0, domhandler@^4.3.1: +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== dependencies: domelementtype "^2.2.0" -domutils@^2.8.0: +domhandler@^5.0.1, domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw== + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^2.5.2, domutils@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== @@ -2158,6 +5081,23 @@ domutils@^2.8.0: domelementtype "^2.2.0" domhandler "^4.2.0" +domutils@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.0.1.tgz#696b3875238338cb186b6c0612bd4901c89a4f1c" + integrity sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.1" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + dot-prop@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" @@ -2165,6 +5105,16 @@ dot-prop@^5.2.0: dependencies: is-obj "^2.0.0" +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA== + +duplexer@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + duplexify@^4.0.0, duplexify@^4.1.1: version "4.1.2" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0" @@ -2175,6 +5125,11 @@ duplexify@^4.0.0, duplexify@^4.1.1: readable-stream "^3.1.1" stream-shift "^1.0.0" +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ecdsa-sig-formatter@1.0.11, ecdsa-sig-formatter@^1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" @@ -2202,6 +5157,16 @@ emoji-regex@^9.2.2: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +emoticon@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/emoticon/-/emoticon-3.2.0.tgz#c008ca7d7620fac742fe1bf4af8ff8fed154ae7f" + integrity sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg== + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -2221,16 +5186,39 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" +enhanced-resolve@^5.9.3: + version "5.9.3" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz#44a342c012cbc473254af5cc6ae20ebd0aae5d88" + integrity sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + ent@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= +entities@^1.1.1, entities@~1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + entities@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== +entities@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" + integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== + +entities@^4.2.0, entities@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.3.0.tgz#62915f08d67353bb4eb67e3d62641a4059aec656" + integrity sha512-/iP1rZrSEJ0DTlPiX+jbzlA3eVkY/e8L8SozroF395fIqE3TYF/Nz7YOMAawta+vLmyJ/hkGNNPcSbMADCCXbg== + error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -2267,6 +5255,11 @@ es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19 string.prototype.trimstart "^1.0.5" unbox-primitive "^1.0.2" +es-module-lexer@^0.9.0: + version "0.9.3" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" + integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== + es-shim-unscopables@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" @@ -2300,7 +5293,12 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-html@~1.0.3: +escape-goat@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" + integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== + +escape-html@^1.0.3, escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= @@ -2438,7 +5436,7 @@ eslint-plugin-react@^7.29.4: semver "^6.3.0" string.prototype.matchall "^4.0.7" -eslint-scope@^5.1.1: +eslint-scope@5.1.1, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -2526,7 +5524,7 @@ esprima@3.x.x: resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= -esprima@^4.0.1: +esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -2560,17 +5558,55 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +eta@^1.12.3: + version "1.12.3" + resolved "https://registry.yarnpkg.com/eta/-/eta-1.12.3.tgz#2982d08adfbef39f9fa50e2fbd42d7337e7338b1" + integrity sha512-qHixwbDLtekO/d51Yr4glcaUJCIjGVJyTzuqV4GPlgZo1YpgOKG+avQynErZIYrfM6JIJdtiG2Kox8tbb+DoGg== + etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= +eval@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/eval/-/eval-0.1.8.tgz#2b903473b8cc1d1989b83a1e7923f883eb357f85" + integrity sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw== + dependencies: + "@types/node" "*" + require-like ">= 0.1.1" + event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== -express@^4.17.1: +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +express@^4.17.1, express@^4.17.3: version "4.18.1" resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== @@ -2607,7 +5643,14 @@ express@^4.17.1: utils-merge "1.0.1" vary "~1.1.2" -extend@^3.0.2, extend@~3.0.2: +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + dependencies: + is-extendable "^0.1.0" + +extend@^3.0.0, extend@^3.0.2, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== @@ -2648,6 +5691,13 @@ fast-text-encoding@^1.0.0, fast-text-encoding@^1.0.3: resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz#ec02ac8e01ab8a319af182dae2681213cfe9ce53" integrity sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig== +fast-url-parser@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" + integrity sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ== + dependencies: + punycode "^1.3.2" + fastq@^1.6.0: version "1.13.0" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" @@ -2655,13 +5705,45 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -faye-websocket@0.11.4: +faye-websocket@0.11.4, faye-websocket@^0.11.3: version "0.11.4" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== dependencies: websocket-driver ">=0.5.1" +fbemitter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/fbemitter/-/fbemitter-3.0.0.tgz#00b2a1af5411254aab416cd75f9e6289bee4bff3" + integrity sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw== + dependencies: + fbjs "^3.0.0" + +fbjs-css-vars@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" + integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== + +fbjs@^3.0.0, fbjs@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.4.tgz#e1871c6bd3083bac71ff2da868ad5067d37716c6" + integrity sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ== + dependencies: + cross-fetch "^3.1.5" + fbjs-css-vars "^1.0.0" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^0.7.30" + +feed@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/feed/-/feed-4.2.2.tgz#865783ef6ed12579e2c44bbef3c9113bc4956a7e" + integrity sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ== + dependencies: + xml-js "^1.6.11" + fetch-blob@^3.1.2, fetch-blob@^3.1.4: version "3.1.5" resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.1.5.tgz#0077bf5f3fcdbd9d75a0b5362f77dbb743489863" @@ -2685,11 +5767,24 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" +file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + file-uri-to-path@1: version "1.0.0" resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== +filesize@^8.0.6: + version "8.0.7" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-8.0.7.tgz#695e70d80f4e47012c132d57a059e80c6b580bd8" + integrity sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ== + fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -2710,6 +5805,15 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" +find-cache-dir@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" @@ -2717,6 +5821,29 @@ find-up@^2.1.0: dependencies: locate-path "^2.0.0" +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + firebase-admin@10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/firebase-admin/-/firebase-admin-10.0.0.tgz#0638cd50d2395fddc9d8af4e1699d0a10b1b22d8" @@ -2797,6 +5924,38 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== +flux@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/flux/-/flux-4.0.3.tgz#573b504a24982c4768fdfb59d8d2ea5637d72ee7" + integrity sha512-yKAbrp7JhZhj6uiT1FTuVMlIAT1J4jqEyBpFApi1kxpGZCvacMVc/t1pMQyotqHhAgvoE3bNvAykhCo2CLjnYw== + dependencies: + fbemitter "^3.0.0" + fbjs "^3.0.1" + +follow-redirects@^1.0.0, follow-redirects@^1.14.7: + version "1.15.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" + integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== + +fork-ts-checker-webpack-plugin@^6.5.0: + version "6.5.2" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz#4f67183f2f9eb8ba7df7177ce3cf3e75cdafb340" + integrity sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA== + dependencies: + "@babel/code-frame" "^7.8.3" + "@types/json-schema" "^7.0.5" + chalk "^4.1.0" + chokidar "^3.4.2" + cosmiconfig "^6.0.0" + deepmerge "^4.2.2" + fs-extra "^9.0.0" + glob "^7.1.6" + memfs "^3.1.2" + minimatch "^3.0.4" + schema-utils "2.7.0" + semver "^7.3.2" + tapable "^1.0.0" + form-data@^2.3.3, form-data@^2.5.0: version "2.5.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" @@ -2818,7 +5977,7 @@ forwarded@0.2.0: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -fraction.js@^4.1.1: +fraction.js@^4.1.1, fraction.js@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== @@ -2828,6 +5987,30 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= +fs-extra@^10.0.1: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^9.0.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-monkey@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" + integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -2890,6 +6073,11 @@ gcp-metadata@^4.2.0: gaxios "^4.0.0" json-bigint "^1.0.0" +gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" @@ -2904,6 +6092,30 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + get-symbol-description@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" @@ -2924,6 +6136,11 @@ get-uri@^2.0.0: ftp "~0.3.10" readable-stream "2" +github-slugger@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.4.0.tgz#206eb96cdb22ee56fdc53a28d5a302338463444e" + integrity sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ== + glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -2938,6 +6155,11 @@ glob-parent@^6.0.1, glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + glob@7.1.7: version "7.1.7" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" @@ -2950,7 +6172,7 @@ glob@7.1.7: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.1.3, glob@^7.2.0: +glob@^7.0.0, glob@^7.1.3, glob@^7.1.6, glob@^7.2.0: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -2962,6 +6184,34 @@ glob@^7.1.3, glob@^7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" +global-dirs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" + integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== + dependencies: + ini "2.0.0" + +global-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + globals@^13.15.0, globals@^13.6.0: version "13.15.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" @@ -2969,7 +6219,7 @@ globals@^13.15.0, globals@^13.6.0: dependencies: type-fest "^0.20.2" -globby@^11.1.0: +globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -2981,6 +6231,18 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" +globby@^12.0.2: + version "12.2.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-12.2.0.tgz#2ab8046b4fba4ff6eede835b29f678f90e3d3c22" + integrity sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA== + dependencies: + array-union "^3.0.1" + dir-glob "^3.0.1" + fast-glob "^3.2.7" + ignore "^5.1.9" + merge2 "^1.4.1" + slash "^4.0.0" + goober@^2.1.1: version "2.1.9" resolved "https://registry.yarnpkg.com/goober/-/goober-2.1.9.tgz#0faee08fab1a5d55b23e9ec043bb5a1b46fa025a" @@ -3027,11 +6289,38 @@ google-p12-pem@^3.1.3: dependencies: node-forge "^1.3.1" -graceful-fs@^4.1.2: +got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== +gray-matter@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" + integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== + dependencies: + js-yaml "^3.13.1" + kind-of "^6.0.2" + section-matter "^1.0.0" + strip-bom-string "^1.0.0" + gridjs-react@5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/gridjs-react/-/gridjs-react-5.0.2.tgz#5c561b89a391615fc8242223649e56808fcdd824" @@ -3054,6 +6343,18 @@ gtoken@^5.0.4: google-p12-pem "^3.1.3" jws "^4.0.0" +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== + dependencies: + duplexer "^0.1.2" + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" @@ -3088,6 +6389,11 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" +has-yarn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" + integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== + has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -3100,6 +6406,126 @@ hash-stream-validation@^0.2.2: resolved "https://registry.yarnpkg.com/hash-stream-validation/-/hash-stream-validation-0.2.4.tgz#ee68b41bf822f7f44db1142ec28ba9ee7ccb7512" integrity sha512-Gjzu0Xn7IagXVkSu9cSFuK1fqzwtLwFhNhVL8IFJijRNMgUttFbBSIAzKuSIrsFMO1+g1RlsoN49zPIbwPDMGQ== +hast-to-hyperscript@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz#9b67fd188e4c81e8ad66f803855334173920218d" + integrity sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA== + dependencies: + "@types/unist" "^2.0.3" + comma-separated-tokens "^1.0.0" + property-information "^5.3.0" + space-separated-tokens "^1.0.0" + style-to-object "^0.3.0" + unist-util-is "^4.0.0" + web-namespaces "^1.0.0" + +hast-util-from-parse5@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-5.0.3.tgz#3089dc0ee2ccf6ec8bc416919b51a54a589e097c" + integrity sha512-gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA== + dependencies: + ccount "^1.0.3" + hastscript "^5.0.0" + property-information "^5.0.0" + web-namespaces "^1.1.2" + xtend "^4.0.1" + +hast-util-from-parse5@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz#554e34abdeea25ac76f5bd950a1f0180e0b3bc2a" + integrity sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA== + dependencies: + "@types/parse5" "^5.0.0" + hastscript "^6.0.0" + property-information "^5.0.0" + vfile "^4.0.0" + vfile-location "^3.2.0" + web-namespaces "^1.0.0" + +hast-util-is-element@1.1.0, hast-util-is-element@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz#3b3ed5159a2707c6137b48637fbfe068e175a425" + integrity sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ== + +hast-util-parse-selector@^2.0.0: + version "2.2.5" + resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz#d57c23f4da16ae3c63b3b6ca4616683313499c3a" + integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ== + +hast-util-raw@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-6.0.1.tgz#973b15930b7529a7b66984c98148b46526885977" + integrity sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig== + dependencies: + "@types/hast" "^2.0.0" + hast-util-from-parse5 "^6.0.0" + hast-util-to-parse5 "^6.0.0" + html-void-elements "^1.0.0" + parse5 "^6.0.0" + unist-util-position "^3.0.0" + vfile "^4.0.0" + web-namespaces "^1.0.0" + xtend "^4.0.0" + zwitch "^1.0.0" + +hast-util-to-parse5@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz#1ec44650b631d72952066cea9b1445df699f8479" + integrity sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ== + dependencies: + hast-to-hyperscript "^9.0.0" + property-information "^5.0.0" + web-namespaces "^1.0.0" + xtend "^4.0.0" + zwitch "^1.0.0" + +hast-util-to-text@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/hast-util-to-text/-/hast-util-to-text-2.0.1.tgz#04f2e065642a0edb08341976084aa217624a0f8b" + integrity sha512-8nsgCARfs6VkwH2jJU9b8LNTuR4700na+0h3PqCaEk4MAnMDeu5P0tP8mjk9LLNGxIeQRLbiDbZVw6rku+pYsQ== + dependencies: + hast-util-is-element "^1.0.0" + repeat-string "^1.0.0" + unist-util-find-after "^3.0.0" + +hastscript@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-5.1.2.tgz#bde2c2e56d04c62dd24e8c5df288d050a355fb8a" + integrity sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ== + dependencies: + comma-separated-tokens "^1.0.0" + hast-util-parse-selector "^2.0.0" + property-information "^5.0.0" + space-separated-tokens "^1.0.0" + +hastscript@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-6.0.0.tgz#e8768d7eac56c3fdeac8a92830d58e811e5bf640" + integrity sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w== + dependencies: + "@types/hast" "^2.0.0" + comma-separated-tokens "^1.0.0" + hast-util-parse-selector "^2.0.0" + property-information "^5.0.0" + space-separated-tokens "^1.0.0" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +history@^4.9.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^3.0.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^1.0.1" + hogan.js@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/hogan.js/-/hogan.js-3.0.2.tgz#4cd9e1abd4294146e7679e41d7898732b02c7bfd" @@ -3108,6 +6534,104 @@ hogan.js@^3.0.2: mkdirp "0.3.0" nopt "1.0.10" +hoist-non-react-statics@^3.1.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-entities@^2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.3.tgz#117d7626bece327fc8baace8868fa6f5ef856e46" + integrity sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA== + +html-minifier-terser@^6.0.2, html-minifier-terser@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" + integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== + dependencies: + camel-case "^4.1.2" + clean-css "^5.2.2" + commander "^8.3.0" + he "^1.2.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.10.0" + +html-tags@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.2.0.tgz#dbb3518d20b726524e4dd43de397eb0a95726961" + integrity sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg== + +html-void-elements@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" + integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== + +html-webpack-plugin@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz#c3911936f57681c1f9f4d8b68c158cd9dfe52f50" + integrity sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw== + dependencies: + "@types/html-minifier-terser" "^6.0.0" + html-minifier-terser "^6.0.2" + lodash "^4.17.21" + pretty-error "^4.0.0" + tapable "^2.0.0" + +htmlparser2@^3.9.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +htmlparser2@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.1.tgz#abaa985474fcefe269bc761a779b544d7196d010" + integrity sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + domutils "^3.0.1" + entities "^4.3.0" + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== + http-errors@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" @@ -3119,6 +6643,16 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + http-parser-js@>=0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.6.tgz#2e02406ab2df8af8a7abfba62e0da01c62b95afd" @@ -3141,6 +6675,26 @@ http-proxy-agent@^5.0.0: agent-base "6" debug "4" +http-proxy-middleware@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" + integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== + dependencies: + "@types/http-proxy" "^1.17.8" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + https-proxy-agent@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz#b8c286433e87602311b01c8ea34413d856a4af81" @@ -3157,6 +6711,11 @@ https-proxy-agent@^5.0.0: agent-base "6" debug "4" +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + iconv-lite@0.4.24, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -3164,22 +6723,39 @@ iconv-lite@0.4.24, iconv-lite@~0.4.13: dependencies: safer-buffer ">= 2.1.2 < 3" +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + idb@3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/idb/-/idb-3.0.2.tgz#c8e9122d5ddd40f13b60ae665e4862f8b13fa384" integrity sha512-+FLa/0sTXqyux0o6C+i2lOR0VoS60LU/jzUo5xjfY6+7sEEgy4Gz1O7yFBXvjd7N0NyIGWIRg8DcQSLEG+VSPw== -ignore@^5.2.0: +ignore@^5.1.9, ignore@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== +image-size@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.0.1.tgz#86d6cfc2b1d19eab5d2b368d4b9194d9e48541c5" + integrity sha512-VAwkvNSNGClRw9mDHhc5Efax8PLlsOGcUTh0T/LIriC8vPA3U5PdqXWqkz406MoYHMKW8Uf9gWr05T/rYB44kQ== + dependencies: + queue "6.0.2" + immediate@~3.0.5: version "3.0.6" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= -import-fresh@^3.0.0, import-fresh@^3.2.1: +immer@^9.0.7: + version "9.0.14" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.14.tgz#e05b83b63999d26382bb71676c9d827831248a48" + integrity sha512-ubBeqQutOSLIFCUBN03jGeOS6a3DoYlSYwYJTa+gSKEZKU5redJIqkIdZ3JVv/4RZpfcXdAWH5zCNLWPRv2WDw== + +import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -3187,11 +6763,26 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A== + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +infima@0.2.0-alpha.37: + version "0.2.0-alpha.37" + resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.37.tgz#b87ff42d528d6d050098a560f0294fbdd12adb78" + integrity sha512-4GX7Baw+/lwS4PPW/UJNY89tWSvYG1DL6baKVdpK6mC593iRgMssxNtORMTFArLPJ/A/lzsGhRmx+z6MaMxj0Q== + inflection@~1.12.0: version "1.12.0" resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.12.0.tgz#a200935656d6f5f6bc4dc7502e1aecb703228416" @@ -3210,11 +6801,31 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + +ini@^1.3.5, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + instantsearch.js@^4.40.1: version "4.40.5" resolved "https://registry.yarnpkg.com/instantsearch.js/-/instantsearch.js-4.40.5.tgz#17b3c2ed493bee80101b3eb9a48187b487d275c3" @@ -3245,6 +6856,18 @@ internmap@^1.0.0: resolved "https://registry.yarnpkg.com/internmap/-/internmap-1.0.1.tgz#0017cc8a3b99605f0302f2b198d272e015e5df95" integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw== +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + ip@1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" @@ -3260,6 +6883,24 @@ ipaddr.js@1.9.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== +ipaddr.js@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" + integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== + +is-alphabetical@1.0.4, is-alphabetical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" + integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== + +is-alphanumerical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" + integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== + dependencies: + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -3287,11 +6928,23 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-buffer@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + is-callable@^1.1.4, is-callable@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + is-core-module@^2.2.0, is-core-module@^2.8.1: version "2.9.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" @@ -3306,6 +6959,21 @@ is-date-object@^1.0.1: dependencies: has-tostringtag "^1.0.0" +is-decimal@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" + integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extendable@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -3323,11 +6991,29 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-hexadecimal@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" + integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== + +is-installed-globally@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== +is-npm@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" + integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== + is-number-object@^1.0.4: version "1.0.7" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" @@ -3340,11 +7026,43 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== + is-obj@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== +is-path-cwd@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-inside@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" @@ -3353,6 +7071,16 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== + +is-root@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" + integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== + is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" @@ -3401,6 +7129,28 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" +is-whitespace-character@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" + integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== + +is-word-character@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" + integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +is-yarn-global@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" + integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== + isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" @@ -3416,6 +7166,31 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +jest-worker@^27.0.2, jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +joi@^17.6.0: + version "17.6.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.6.0.tgz#0bb54f2f006c09a96e75ce687957bd04290054b2" + integrity sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw== + dependencies: + "@hapi/hoek" "^9.0.0" + "@hapi/topo" "^5.0.0" + "@sideway/address" "^4.1.3" + "@sideway/formula" "^3.0.0" + "@sideway/pinpoint" "^2.0.0" + jose@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/jose/-/jose-2.0.5.tgz#29746a18d9fff7dcf9d5d2a6f62cb0c7cd27abd3" @@ -3433,6 +7208,14 @@ js-sha3@0.8.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" @@ -3440,6 +7223,16 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + json-bigint@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" @@ -3447,7 +7240,12 @@ json-bigint@^1.0.0: dependencies: bignumber.js "^9.0.0" -json-parse-even-better-errors@^2.3.0: +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== @@ -3457,6 +7255,11 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" @@ -3469,6 +7272,20 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" +json5@^2.1.2, json5@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" + integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + jsonwebtoken@^8.5.1: version "8.5.1" resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" @@ -3548,6 +7365,35 @@ jws@^4.0.0: jwa "^2.0.0" safe-buffer "^5.0.1" +katex@^0.13.0: + version "0.13.24" + resolved "https://registry.yarnpkg.com/katex/-/katex-0.13.24.tgz#fe55455eb455698cb24b911a353d16a3c855d905" + integrity sha512-jZxYuKCma3VS5UuxOx/rFV1QyGSl3Uy/i0kTJF3HgQ5xMinCQVF8Zd4bMY/9aI9b9A2pjIBOsjSSm68ykTAr8w== + dependencies: + commander "^8.0.0" + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +klona@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" + integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== + language-subtag-registry@~0.3.2: version "0.3.21" resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" @@ -3560,6 +7406,18 @@ language-tags@^1.0.5: dependencies: language-subtag-registry "~0.3.2" +latest-version@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" + integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== + dependencies: + package-json "^6.3.0" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -3583,7 +7441,7 @@ lie@~3.3.0: dependencies: immediate "~3.0.5" -lilconfig@^2.0.5: +lilconfig@^2.0.3, lilconfig@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" integrity sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg== @@ -3598,6 +7456,25 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +loader-utils@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" + integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +loader-utils@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.2.0.tgz#bcecc51a7898bee7473d4bc6b845b23af8304d4f" + integrity sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ== + locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -3606,6 +7483,38 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.assignin@^4.0.9: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" + integrity sha512-yX/rx6d/UTVh7sSVWVSIMjfnz95evAgDFdb1ZozC35I9mSFCkmzptOzevxjgbQUsc78NR44LVHWjsoMQXy9FDg== + +lodash.bind@^4.1.4: + version "4.2.1" + resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" + integrity sha512-lxdsn7xxlCymgLYo1gGvVrfHmkjDiyqVv62FAeF2i5ta72BipE1SLxw8hPEPLhD4/247Ijw07UQH7Hq/chT5LA== + lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" @@ -3621,6 +7530,41 @@ lodash.clonedeep@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= +lodash.curry@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170" + integrity sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.defaults@^4.0.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== + +lodash.filter@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" + integrity sha512-pXYUy7PR8BCLwX5mgJ/aNtyOvuJTdZAo9EQFUvMIYugqmJxnrYaANvTbgndOzHSCSR0wnlBBfRXJL5SbWxo3FQ== + +lodash.flatten@^4.2.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== + +lodash.flow@^3.3.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/lodash.flow/-/lodash.flow-3.5.0.tgz#87bf40292b8cf83e4e8ce1a3ae4209e20071675a" + integrity sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw== + +lodash.foreach@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + integrity sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ== + lodash.includes@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" @@ -3651,7 +7595,17 @@ lodash.isstring@^4.0.1: resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= -lodash.merge@^4.6.2: +lodash.map@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" + integrity sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.merge@^4.4.0, lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== @@ -3661,7 +7615,32 @@ lodash.once@^4.0.0: resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= -lodash@4.17.21, lodash@^4.17.14, lodash@^4.17.21, lodash@^4.17.5: +lodash.pick@^4.2.1: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q== + +lodash.reduce@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" + integrity sha512-6raRe2vxCYBhpBu+B+TtNGUzah+hQjVdu3E17wfusjyrXBka2nBS8OH/gjVZ5PvHOhWmIZTYri09Z6n/QfnNMw== + +lodash.reject@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" + integrity sha512-qkTuvgEzYdyhiJBx42YPzPo71R1aEr0z79kAv7Ixg8wPFEjgRgJdUsGMG3Hf3OYSF/kHI79XhNlt+5Ar6OzwxQ== + +lodash.some@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" + integrity sha512-j7MJE+TuT51q9ggt4fSgVqro163BEFjAt3u97IqU+JA2DkWl80nFTrowzLpZ/BnpN7rrl0JA/593NAdd8p/scQ== + +lodash.uniq@4.5.0, lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash@4.17.21, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -3671,13 +7650,30 @@ long@^4.0.0: resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== -loose-envify@^1.1.0, loose-envify@^1.4.0: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -3723,13 +7719,18 @@ mailgun-js@0.22.0: proxy-agent "^3.0.3" tsscmp "^1.0.6" -make-dir@^3.0.0: +make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" +markdown-escapes@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" + integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== + match-sorter@^6.0.2: version "6.3.1" resolved "https://registry.yarnpkg.com/match-sorter/-/match-sorter-6.3.1.tgz#98cc37fda756093424ddf3cbc62bfe9c75b92bda" @@ -3738,16 +7739,71 @@ match-sorter@^6.0.2: "@babel/runtime" "^7.12.5" remove-accents "0.4.2" +mdast-squeeze-paragraphs@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz#7c4c114679c3bee27ef10b58e2e015be79f1ef97" + integrity sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ== + dependencies: + unist-util-remove "^2.0.0" + +mdast-util-definitions@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz#c5c1a84db799173b4dcf7643cda999e440c24db2" + integrity sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ== + dependencies: + unist-util-visit "^2.0.0" + +mdast-util-to-hast@10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz#0cfc82089494c52d46eb0e3edb7a4eb2aea021eb" + integrity sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + mdast-util-definitions "^4.0.0" + mdurl "^1.0.0" + unist-builder "^2.0.0" + unist-util-generated "^1.0.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +mdast-util-to-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" + integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +mdurl@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== + media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= +memfs@^3.1.2, memfs@^3.4.3: + version "3.4.4" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.4.tgz#e8973cd8060548916adcca58a248e7805c715e89" + integrity sha512-W4gHNUE++1oSJVn8Y68jPXi+mkx3fXR5ITE/Ubz6EQ3xRpCN5k2CQ4AUR8094Z7211F876TyoBACGsIveqgiGA== + dependencies: + fs-monkey "1.0.3" + merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" @@ -3758,7 +7814,7 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= -micromatch@^4.0.4: +micromatch@^4.0.2, micromatch@^4.0.4: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== @@ -3776,7 +7832,19 @@ mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.0.8, mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34: +mime-db@~1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" + integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== + +mime-types@2.1.18: + version "2.1.18" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== + dependencies: + mime-db "~1.33.0" + +mime-types@^2.0.8, mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -3793,11 +7861,48 @@ mime@^3.0.0: resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mini-create-react-context@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" + integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ== + dependencies: + "@babel/runtime" "^7.12.1" + tiny-warning "^1.0.3" + +mini-css-extract-plugin@^2.5.3: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz#578aebc7fc14d32c0ad304c2c34f08af44673f5e" + integrity sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w== + dependencies: + schema-utils "^4.0.0" + mini-svg-data-uri@^1.2.3: version "1.4.4" resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz#8ab0aabcdf8c29ad5693ca595af19dd2ead09939" integrity sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg== +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimatch@3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -3805,7 +7910,7 @@ minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.6: +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== @@ -3820,6 +7925,11 @@ module-alias@2.2.2: resolved "https://registry.yarnpkg.com/module-alias/-/module-alias-2.2.2.tgz#151cdcecc24e25739ff0aa6e51e1c5716974c0e0" integrity sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q== +mrmime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.0.tgz#14d387f0585a5233d291baba339b063752a2398b" + integrity sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ== + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -3835,6 +7945,14 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +multicast-dns@^7.2.4: + version "7.2.5" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" + integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== + dependencies: + dns-packet "^5.2.2" + thunky "^1.0.2" + nano-time@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/nano-time/-/nano-time-1.0.0.tgz#b0554f69ad89e22d0907f7a12b0993a5d96137ef" @@ -3857,6 +7975,11 @@ negotiator@0.6.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + netmask@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/netmask/-/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35" @@ -3894,11 +8017,26 @@ next@12.1.2: "@next/swc-win32-ia32-msvc" "12.1.2" "@next/swc-win32-x64-msvc" "12.1.2" +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + node-domexception@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== +node-emoji@^1.10.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" + integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== + dependencies: + lodash "^4.17.21" + node-fetch@2.6.5: version "2.6.5" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz#42735537d7f080a7e5f78b6c549b7146be1742fd" @@ -3906,6 +8044,13 @@ node-fetch@2.6.5: dependencies: whatwg-url "^5.0.0" +node-fetch@2.6.7, node-fetch@^2.6.1, node-fetch@^2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + node-fetch@3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.2.4.tgz#3fbca2d8838111048232de54cb532bd3cf134947" @@ -3915,19 +8060,12 @@ node-fetch@3.2.4: fetch-blob "^3.1.4" formdata-polyfill "^4.0.10" -node-fetch@^2.6.1, node-fetch@^2.6.7: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - node-forge@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== -node-forge@^1.3.1: +node-forge@^1, node-forge@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== @@ -3954,6 +8092,28 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= +normalize-url@^4.1.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nprogress@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" + integrity sha1-y480xTIT2JVyP8urkH6UIq28r7E= + nth-check@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" @@ -3961,7 +8121,14 @@ nth-check@^2.0.1: dependencies: boolbase "^1.0.0" -object-assign@^4, object-assign@^4.1.1: +nth-check@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -3986,7 +8153,7 @@ object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.2: +object.assign@^4.1.0, object.assign@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== @@ -4036,6 +8203,11 @@ oblivious-set@1.0.0: resolved "https://registry.yarnpkg.com/oblivious-set/-/oblivious-set-1.0.0.tgz#c8316f2c2fb6ff7b11b6158db3234c49f733c566" integrity sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw== +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + on-finished@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" @@ -4043,6 +8215,11 @@ on-finished@2.4.1: dependencies: ee-first "1.1.1" +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -4050,6 +8227,27 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^8.0.9, open@^8.4.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" + integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +opener@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -4074,6 +8272,11 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -4081,7 +8284,14 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" -p-limit@^3.0.1: +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.1, p-limit@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== @@ -4095,11 +8305,52 @@ p-locate@^2.0.0: dependencies: p-limit "^1.1.0" +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-retry@^4.5.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" + integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== + dependencies: + "@types/retry" "0.12.0" + retry "^0.13.1" + p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + pac-proxy-agent@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-3.0.1.tgz#115b1e58f92576cac2eba718593ca7b0e37de2ad" @@ -4125,11 +8376,29 @@ pac-resolver@^3.0.0: netmask "^1.0.6" thunkify "^2.1.2" +package-json@^6.3.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" + integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== + dependencies: + got "^9.6.0" + registry-auth-token "^4.0.0" + registry-url "^5.0.0" + semver "^6.2.0" + pako@~1.0.2: version "1.0.11" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -4137,6 +8406,18 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" +parse-entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" + integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + parse-json@^5.0.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" @@ -4147,6 +8428,11 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" +parse-numeric-range@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz#7c63b61190d61e4d53a1197f0c83c47bb670ffa3" + integrity sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ== + parse5-htmlparser2-tree-adapter@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" @@ -4154,27 +8440,65 @@ parse5-htmlparser2-tree-adapter@^6.0.1: dependencies: parse5 "^6.0.1" -parse5@^6.0.1: +parse5-htmlparser2-tree-adapter@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1" + integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== + dependencies: + domhandler "^5.0.2" + parse5 "^7.0.0" + +parse5@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + +parse5@^6.0.0, parse5@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== -parseurl@~1.3.3: +parse5@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.0.0.tgz#51f74a5257f5fcc536389e8c2d0b3802e1bfa91a" + integrity sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g== + dependencies: + entities "^4.3.0" + +parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-key@^3.1.0: +path-is-inside@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== @@ -4196,6 +8520,18 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= +path-to-regexp@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.2.1.tgz#90b617025a16381a879bc82a38d4e8bdeb2bcf45" + integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ== + +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -4221,6 +8557,73 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +pkg-dir@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-up@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + +postcss-calc@^8.2.3: + version "8.2.4" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5" + integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q== + dependencies: + postcss-selector-parser "^6.0.9" + postcss-value-parser "^4.2.0" + +postcss-colormin@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.0.tgz#3cee9e5ca62b2c27e84fce63affc0cfb5901956a" + integrity sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + colord "^2.9.1" + postcss-value-parser "^4.2.0" + +postcss-convert-values@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz#31586df4e184c2e8890e8b34a0b9355313f503ab" + integrity sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g== + dependencies: + browserslist "^4.20.3" + postcss-value-parser "^4.2.0" + +postcss-discard-comments@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz#8df5e81d2925af2780075840c1526f0660e53696" + integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ== + +postcss-discard-duplicates@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848" + integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw== + +postcss-discard-empty@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz#e57762343ff7f503fe53fca553d18d7f0c369c6c" + integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A== + +postcss-discard-overridden@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e" + integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== + +postcss-discard-unused@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-5.1.0.tgz#8974e9b143d887677304e558c1166d3762501142" + integrity sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw== + dependencies: + postcss-selector-parser "^6.0.5" + postcss-js@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-3.0.3.tgz#2f0bd370a2e8599d45439f6970403b5873abda33" @@ -4237,6 +8640,101 @@ postcss-load-config@^3.1.0: lilconfig "^2.0.5" yaml "^1.10.2" +postcss-loader@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-6.2.1.tgz#0895f7346b1702103d30fdc66e4d494a93c008ef" + integrity sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q== + dependencies: + cosmiconfig "^7.0.0" + klona "^2.0.5" + semver "^7.3.5" + +postcss-merge-idents@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-5.1.1.tgz#7753817c2e0b75d0853b56f78a89771e15ca04a1" + integrity sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw== + dependencies: + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-merge-longhand@^5.1.5: + version "5.1.5" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.5.tgz#b0e03bee3b964336f5f33c4fc8eacae608e91c05" + integrity sha512-NOG1grw9wIO+60arKa2YYsrbgvP6tp+jqc7+ZD5/MalIw234ooH2C6KlR6FEn4yle7GqZoBxSK1mLBE9KPur6w== + dependencies: + postcss-value-parser "^4.2.0" + stylehacks "^5.1.0" + +postcss-merge-rules@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz#7049a14d4211045412116d79b751def4484473a5" + integrity sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + cssnano-utils "^3.1.0" + postcss-selector-parser "^6.0.5" + +postcss-minify-font-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b" + integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-minify-gradients@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz#f1fe1b4f498134a5068240c2f25d46fcd236ba2c" + integrity sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw== + dependencies: + colord "^2.9.1" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-minify-params@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz#ac41a6465be2db735099bbd1798d85079a6dc1f9" + integrity sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg== + dependencies: + browserslist "^4.16.6" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-minify-selectors@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz#d4e7e6b46147b8117ea9325a915a801d5fe656c6" + integrity sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== + +postcss-modules-local-by-default@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" + integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + postcss-nested@5.0.6: version "5.0.6" resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.6.tgz#466343f7fc8d3d46af3e7dba3fcd47d052a945bc" @@ -4244,7 +8742,100 @@ postcss-nested@5.0.6: dependencies: postcss-selector-parser "^6.0.6" -postcss-selector-parser@^6.0.6: +postcss-normalize-charset@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed" + integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg== + +postcss-normalize-display-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8" + integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-positions@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz#902a7cb97cf0b9e8b1b654d4a43d451e48966458" + integrity sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-repeat-style@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz#f6d6fd5a54f51a741cc84a37f7459e60ef7a6398" + integrity sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-string@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228" + integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-timing-functions@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb" + integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-unicode@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz#3d23aede35e160089a285e27bf715de11dc9db75" + integrity sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ== + dependencies: + browserslist "^4.16.6" + postcss-value-parser "^4.2.0" + +postcss-normalize-url@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc" + integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew== + dependencies: + normalize-url "^6.0.1" + postcss-value-parser "^4.2.0" + +postcss-normalize-whitespace@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz#08a1a0d1ffa17a7cc6efe1e6c9da969cc4493cfa" + integrity sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-ordered-values@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz#0b41b610ba02906a3341e92cab01ff8ebc598adb" + integrity sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw== + dependencies: + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-reduce-idents@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-5.2.0.tgz#c89c11336c432ac4b28792f24778859a67dfba95" + integrity sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-reduce-initial@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz#fc31659ea6e85c492fb2a7b545370c215822c5d6" + integrity sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9" + integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.6, postcss-selector-parser@^6.0.9: version "6.0.10" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== @@ -4252,11 +8843,38 @@ postcss-selector-parser@^6.0.6: cssesc "^3.0.0" util-deprecate "^1.0.2" +postcss-sort-media-queries@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/postcss-sort-media-queries/-/postcss-sort-media-queries-4.2.1.tgz#a99bae69ef1098ee3b64a5fa94d258ec240d0355" + integrity sha512-9VYekQalFZ3sdgcTjXMa0dDjsfBVHXlraYJEMiOJ/2iMmI2JGCMavP16z3kWOaRu8NSaJCTgVpB/IVpH5yT9YQ== + dependencies: + sort-css-media-queries "2.0.4" + +postcss-svgo@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d" + integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA== + dependencies: + postcss-value-parser "^4.2.0" + svgo "^2.7.0" + +postcss-unique-selectors@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6" + integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA== + dependencies: + postcss-selector-parser "^6.0.5" + postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== +postcss-zindex@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-5.1.0.tgz#4a5c7e5ff1050bd4c01d95b1847dfdcc58a496ff" + integrity sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A== + postcss@8.3.5: version "8.3.5" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.5.tgz#982216b113412bc20a86289e91eb994952a5b709" @@ -4275,7 +8893,7 @@ postcss@8.4.5: picocolors "^1.0.0" source-map-js "^1.0.1" -postcss@^8.1.6, postcss@^8.3.7: +postcss@^8.1.6, postcss@^8.3.11, postcss@^8.3.5, postcss@^8.3.7, postcss@^8.4.7: version "8.4.14" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== @@ -4299,6 +8917,11 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + prettier-plugin-tailwindcss@^0.1.5: version "0.1.11" resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.1.11.tgz#6112da68d9d022b7f896d35c070464931c99c35f" @@ -4314,6 +8937,29 @@ pretty-bytes@^5.3.0: resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== +pretty-error@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" + integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== + dependencies: + lodash "^4.17.20" + renderkid "^3.0.0" + +pretty-time@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" + integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== + +prism-react-renderer@^1.2.1, prism-react-renderer@^1.3.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-1.3.3.tgz#9b5a4211a6756eee3c96fee9a05733abc0b0805c" + integrity sha512-Viur/7tBTCH2HmYzwCHmt2rEFn+rdIWNIINXyg0StiISbDiIhHKhrFuEK8eMkKgvsIYSjgGqy/hNyucHp6FpoQ== + +prismjs@^1.27.0: + version "1.28.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.28.0.tgz#0d8f561fa0f7cf6ebca901747828b149147044b6" + integrity sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw== + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -4324,6 +8970,13 @@ promise-polyfill@8.1.3: resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.1.3.tgz#8c99b3cf53f3a91c68226ffde7bde81d7f904116" integrity sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g== +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + promisify-call@^2.0.2: version "2.0.4" resolved "https://registry.yarnpkg.com/promisify-call/-/promisify-call-2.0.4.tgz#d48c2d45652ccccd52801ddecbd533a6d4bd5fba" @@ -4331,7 +8984,15 @@ promisify-call@^2.0.2: dependencies: with-callback "^1.0.2" -prop-types@^15.5.8, prop-types@^15.8.1: +prompts@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prop-types@^15.5.8, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -4340,6 +9001,13 @@ prop-types@^15.5.8, prop-types@^15.8.1: object-assign "^4.1.1" react-is "^16.13.1" +property-information@^5.0.0, property-information@^5.3.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.6.0.tgz#61675545fb23002f245c6540ec46077d4da3ed69" + integrity sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA== + dependencies: + xtend "^4.0.0" + proto3-json-serializer@^0.1.8: version "0.1.9" resolved "https://registry.yarnpkg.com/proto3-json-serializer/-/proto3-json-serializer-0.1.9.tgz#705ddb41b009dd3e6fcd8123edd72926abf65a34" @@ -4439,11 +9107,28 @@ pumpify@^2.0.0: inherits "^2.0.3" pump "^3.0.0" +punycode@^1.3.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +pupa@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" + integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== + dependencies: + escape-goat "^2.0.0" + +pure-color@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/pure-color/-/pure-color-1.3.0.tgz#1fe064fb0ac851f0de61320a8bf796836422f33e" + integrity sha1-H+Bk+wrIUfDeYTIKi/eWg2Qi8z4= + qs@6.10.3, qs@^6.6.0: version "6.10.3" resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" @@ -4456,11 +9141,23 @@ qs@6.10.3, qs@^6.6.0: resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe" integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw== +querystring@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" + integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== + queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +queue@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/queue/-/queue-6.0.2.tgz#b91525283e2315c7553d2efa18d83e76432fed65" + integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA== + dependencies: + inherits "~2.0.3" + quick-lru@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" @@ -4473,7 +9170,19 @@ raf@^3.1.0: dependencies: performance-now "^2.1.0" -range-parser@~1.2.1: +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= + +range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== @@ -4488,6 +9197,26 @@ raw-body@2.5.1, raw-body@^2.2.0: iconv-lite "0.4.24" unpipe "1.0.0" +rc@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-base16-styling@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/react-base16-styling/-/react-base16-styling-0.6.0.tgz#ef2156d66cf4139695c8a167886cb69ea660792c" + integrity sha1-7yFW1mz0E5aVyKFniGy2nqZgeSw= + dependencies: + base16 "^1.0.0" + lodash.curry "^4.0.1" + lodash.flow "^3.3.0" + pure-color "^1.2.0" + react-confetti@6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/react-confetti/-/react-confetti-6.0.1.tgz#d4f57b5a021dd908a6243b8f63b6009b00818d10" @@ -4495,7 +9224,37 @@ react-confetti@6.0.1: dependencies: tween-functions "^1.2.0" -react-dom@17.0.2: +react-dev-utils@^12.0.0: + version "12.0.1" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz#ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73" + integrity sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ== + dependencies: + "@babel/code-frame" "^7.16.0" + address "^1.1.2" + browserslist "^4.18.1" + chalk "^4.1.2" + cross-spawn "^7.0.3" + detect-port-alt "^1.1.6" + escape-string-regexp "^4.0.0" + filesize "^8.0.6" + find-up "^5.0.0" + fork-ts-checker-webpack-plugin "^6.5.0" + global-modules "^2.0.0" + globby "^11.0.4" + gzip-size "^6.0.0" + immer "^9.0.7" + is-root "^2.1.0" + loader-utils "^3.2.0" + open "^8.4.0" + pkg-up "^3.1.0" + prompts "^2.4.2" + react-error-overlay "^6.0.11" + recursive-readdir "^2.2.2" + shell-quote "^1.7.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +react-dom@17.0.2, react-dom@^17.0.1: version "17.0.2" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== @@ -4504,6 +9263,11 @@ react-dom@17.0.2: object-assign "^4.1.1" scheduler "^0.20.2" +react-error-overlay@^6.0.11: + version "6.0.11" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz#92835de5841c5cf08ba00ddd2d677b6d17ff9adb" + integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg== + react-expanding-textarea@2.3.5: version "2.3.5" resolved "https://registry.yarnpkg.com/react-expanding-textarea/-/react-expanding-textarea-2.3.5.tgz#310c28ab242c724e042589ac3ea400dd68ad1488" @@ -4513,6 +9277,22 @@ react-expanding-textarea@2.3.5: react-with-forwarded-ref "^0.3.3" tslib "^2.0.3" +react-fast-compare@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb" + integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA== + +react-helmet-async@*, react-helmet-async@^1.2.3: + version "1.3.0" + resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-1.3.0.tgz#7bd5bf8c5c69ea9f02f6083f14ce33ef545c222e" + integrity sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg== + dependencies: + "@babel/runtime" "^7.12.5" + invariant "^2.2.4" + prop-types "^15.7.2" + react-fast-compare "^3.2.0" + shallowequal "^1.1.0" + react-hot-toast@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/react-hot-toast/-/react-hot-toast-2.2.0.tgz#ab6f4caed4214b9534f94bb8cfaaf21b051e62b9" @@ -4539,16 +9319,33 @@ react-instantsearch-hooks@6.24.1: dequal "^2.0.0" instantsearch.js "^4.40.1" -react-is@^16.13.1: +react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== +react-json-view@^1.21.3: + version "1.21.3" + resolved "https://registry.yarnpkg.com/react-json-view/-/react-json-view-1.21.3.tgz#f184209ee8f1bf374fb0c41b0813cff54549c475" + integrity sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw== + dependencies: + flux "^4.0.1" + react-base16-styling "^0.6.0" + react-lifecycles-compat "^3.0.4" + react-textarea-autosize "^8.3.2" + react-lifecycles-compat@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== +react-loadable-ssr-addon-v5-slorber@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz#2cdc91e8a744ffdf9e3556caabeb6e4278689883" + integrity sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A== + dependencies: + "@babel/runtime" "^7.10.3" + react-motion@^0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/react-motion/-/react-motion-0.5.2.tgz#0dd3a69e411316567927917c6626551ba0607316" @@ -4567,6 +9364,51 @@ react-query@3.39.0: broadcast-channel "^3.4.1" match-sorter "^6.0.2" +react-router-config@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/react-router-config/-/react-router-config-5.1.1.tgz#0f4263d1a80c6b2dc7b9c1902c9526478194a988" + integrity sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg== + dependencies: + "@babel/runtime" "^7.1.2" + +react-router-dom@^5.2.0: + version "5.3.3" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.3.tgz#8779fc28e6691d07afcaf98406d3812fe6f11199" + integrity sha512-Ov0tGPMBgqmbu5CDmN++tv2HQ9HlWDuWIIqn4b88gjlAN5IHI+4ZUZRcpz9Hl0azFIwihbLDYw1OiHGRo7ZIng== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + loose-envify "^1.3.1" + prop-types "^15.6.2" + react-router "5.3.3" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router@5.3.3, react-router@^5.2.0: + version "5.3.3" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.3.3.tgz#8e3841f4089e728cf82a429d92cdcaa5e4a3a288" + integrity sha512-mzQGUvS3bM84TnbtMYR8ZjKnuPJ71IjSzR+DE6UkUqvN4czWIqEs17yLL8xkAycv4ev0AiN+IGrWu88vJs/p2w== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" + loose-envify "^1.3.1" + mini-create-react-context "^0.4.0" + path-to-regexp "^1.7.0" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-textarea-autosize@^8.3.2: + version "8.3.4" + resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.3.4.tgz#270a343de7ad350534141b02c9cb78903e553524" + integrity sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ== + dependencies: + "@babel/runtime" "^7.10.2" + use-composed-ref "^1.3.0" + use-latest "^1.2.1" + react-with-forwarded-ref@^0.3.3: version "0.3.4" resolved "https://registry.yarnpkg.com/react-with-forwarded-ref/-/react-with-forwarded-ref-0.3.4.tgz#b1e884ea081ec3c5dd578f37889159797454c0a5" @@ -4574,7 +9416,7 @@ react-with-forwarded-ref@^0.3.3: dependencies: tslib "^2.0.3" -react@17.0.2: +react@17.0.2, react@^17.0.1: version "17.0.2" resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== @@ -4592,7 +9434,7 @@ readable-stream@1.1.x: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@2, readable-stream@~2.3.6: +readable-stream@2, readable-stream@^2.0.1, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -4605,7 +9447,7 @@ readable-stream@2, readable-stream@~2.3.6: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.1.1: +readable-stream@^3.0.6, readable-stream@^3.1.1: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -4621,11 +9463,49 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +reading-time@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/reading-time/-/reading-time-1.5.0.tgz#d2a7f1b6057cb2e169beaf87113cc3411b5bc5bb" + integrity sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg== + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + dependencies: + resolve "^1.1.6" + +recursive-readdir@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" + integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg== + dependencies: + minimatch "3.0.4" + +regenerate-unicode-properties@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" + integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + regenerator-runtime@^0.13.4: version "0.13.9" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== +regenerator-transform@^0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537" + integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== + dependencies: + "@babel/runtime" "^7.8.4" + regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" @@ -4640,16 +9520,190 @@ regexpp@^3.2.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== +regexpu-core@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3" + integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^10.0.1" + regjsgen "^0.6.0" + regjsparser "^0.8.2" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.0.0" + +registry-auth-token@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" + integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== + dependencies: + rc "^1.2.8" + +registry-url@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" + integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== + dependencies: + rc "^1.2.8" + +regjsgen@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" + integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== + +regjsparser@^0.8.2: + version "0.8.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" + integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== + dependencies: + jsesc "~0.5.0" + +rehype-katex@5: + version "5.0.0" + resolved "https://registry.yarnpkg.com/rehype-katex/-/rehype-katex-5.0.0.tgz#b556f24fde918f28ba1cb642ea71c7e82f3373d7" + integrity sha512-ksSuEKCql/IiIadOHiKRMjypva9BLhuwQNascMqaoGLDVd0k2NlE2wMvgZ3rpItzRKCd6vs8s7MFbb8pcR0AEg== + dependencies: + "@types/katex" "^0.11.0" + hast-util-to-text "^2.0.0" + katex "^0.13.0" + rehype-parse "^7.0.0" + unified "^9.0.0" + unist-util-visit "^2.0.0" + +rehype-parse@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/rehype-parse/-/rehype-parse-6.0.2.tgz#aeb3fdd68085f9f796f1d3137ae2b85a98406964" + integrity sha512-0S3CpvpTAgGmnz8kiCyFLGuW5yA4OQhyNTm/nwPopZ7+PI11WnGl1TTWTGv/2hPEe/g2jRLlhVVSsoDH8waRug== + dependencies: + hast-util-from-parse5 "^5.0.0" + parse5 "^5.0.0" + xtend "^4.0.0" + +rehype-parse@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/rehype-parse/-/rehype-parse-7.0.1.tgz#58900f6702b56767814afc2a9efa2d42b1c90c57" + integrity sha512-fOiR9a9xH+Le19i4fGzIEowAbwG7idy2Jzs4mOrFWBSJ0sNUgy0ev871dwWnbOo371SjgjG4pwzrbgSVrKxecw== + dependencies: + hast-util-from-parse5 "^6.0.0" + parse5 "^6.0.0" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + +remark-admonitions@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/remark-admonitions/-/remark-admonitions-1.2.1.tgz#87caa1a442aa7b4c0cafa04798ed58a342307870" + integrity sha512-Ji6p68VDvD+H1oS95Fdx9Ar5WA2wcDA4kwrrhVU7fGctC6+d3uiMICu7w7/2Xld+lnU7/gi+432+rRbup5S8ow== + dependencies: + rehype-parse "^6.0.2" + unified "^8.4.2" + unist-util-visit "^2.0.1" + +remark-emoji@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/remark-emoji/-/remark-emoji-2.2.0.tgz#1c702090a1525da5b80e15a8f963ef2c8236cac7" + integrity sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w== + dependencies: + emoticon "^3.2.0" + node-emoji "^1.10.0" + unist-util-visit "^2.0.3" + +remark-footnotes@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/remark-footnotes/-/remark-footnotes-2.0.0.tgz#9001c4c2ffebba55695d2dd80ffb8b82f7e6303f" + integrity sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ== + +remark-math@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/remark-math/-/remark-math-3.0.1.tgz#85a02a15b15cad34b89a27244d4887b3a95185bb" + integrity sha512-epT77R/HK0x7NqrWHdSV75uNLwn8g9qTyMqCRCDujL0vj/6T6+yhdrR7mjELWtkse+Fw02kijAaBuVcHBor1+Q== + +remark-mdx@1.6.22: + version "1.6.22" + resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-1.6.22.tgz#06a8dab07dcfdd57f3373af7f86bd0e992108bbd" + integrity sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ== + dependencies: + "@babel/core" "7.12.9" + "@babel/helper-plugin-utils" "7.10.4" + "@babel/plugin-proposal-object-rest-spread" "7.12.1" + "@babel/plugin-syntax-jsx" "7.12.1" + "@mdx-js/util" "1.6.22" + is-alphabetical "1.0.4" + remark-parse "8.0.3" + unified "9.2.0" + +remark-parse@8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-8.0.3.tgz#9c62aa3b35b79a486454c690472906075f40c7e1" + integrity sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q== + dependencies: + ccount "^1.0.0" + collapse-white-space "^1.0.2" + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + is-whitespace-character "^1.0.0" + is-word-character "^1.0.0" + markdown-escapes "^1.0.0" + parse-entities "^2.0.0" + repeat-string "^1.5.4" + state-toggle "^1.0.0" + trim "0.0.1" + trim-trailing-lines "^1.0.0" + unherit "^1.0.4" + unist-util-remove-position "^2.0.0" + vfile-location "^3.0.0" + xtend "^4.0.1" + +remark-squeeze-paragraphs@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz#76eb0e085295131c84748c8e43810159c5653ead" + integrity sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw== + dependencies: + mdast-squeeze-paragraphs "^4.0.0" + remove-accents@0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/remove-accents/-/remove-accents-0.4.2.tgz#0a43d3aaae1e80db919e07ae254b285d9e1c7bb5" integrity sha1-CkPTqq4egNuRngeuJUsoXZ4ce7U= +renderkid@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" + integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^6.0.1" + +repeat-string@^1.0.0, repeat-string@^1.5.4: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +"require-like@>= 0.1.1": + version "0.1.2" + resolved "https://registry.yarnpkg.com/require-like/-/require-like-0.1.2.tgz#ad6f30c13becd797010c468afa775c0c0a6b47fa" + integrity sha1-rW8wwTvs15cBDEaK+ndcDAprR/o= + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + resize-observer-polyfill@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" @@ -4660,7 +9714,12 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve@^1.20.0, resolve@^1.22.0: +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + +resolve@^1.1.6, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.3.2: version "1.22.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== @@ -4677,6 +9736,13 @@ resolve@^2.0.0-next.3: is-core-module "^2.2.0" path-parse "^1.0.6" +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + retry-request@^4.0.0, retry-request@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-4.2.2.tgz#b7d82210b6d2651ed249ba3497f07ea602f1a903" @@ -4685,7 +9751,7 @@ retry-request@^4.0.0, retry-request@^4.2.2: debug "^4.1.1" extend "^3.0.2" -retry@0.13.1: +retry@0.13.1, retry@^0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== @@ -4702,6 +9768,21 @@ rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" +rtl-detect@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/rtl-detect/-/rtl-detect-1.0.4.tgz#40ae0ea7302a150b96bc75af7d749607392ecac6" + integrity sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ== + +rtlcss@^3.3.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/rtlcss/-/rtlcss-3.5.0.tgz#c9eb91269827a102bac7ae3115dd5d049de636c3" + integrity sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A== + dependencies: + find-up "^5.0.0" + picocolors "^1.0.0" + postcss "^8.3.11" + strip-json-comments "^3.1.1" + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -4716,21 +9797,33 @@ rxjs@^6.6.3: dependencies: tslib "^1.9.0" -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +rxjs@^7.5.4: + version "7.5.5" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" + integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== + dependencies: + tslib "^2.1.0" -safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + "safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + scheduler@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" @@ -4739,11 +9832,61 @@ scheduler@^0.20.2: loose-envify "^1.1.0" object-assign "^4.1.1" +schema-utils@2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== + dependencies: + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" + +schema-utils@^2.6.5: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7" + integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.8.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.0.0" + search-insights@^2.1.0: version "2.2.1" resolved "https://registry.yarnpkg.com/search-insights/-/search-insights-2.2.1.tgz#9c93344fbae5fbf2f88c1a81b46b4b5d888c11f7" integrity sha512-JDfVGZbKqTtiKVZjAVbkNw9C9f0ib80yx6Ea17M3z4RvPmuD0GYWXuFwA9++dpbreBEMH4TC3lQ29Zq7O4b5oA== +section-matter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" + integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== + dependencies: + extend-shallow "^2.0.1" + kind-of "^6.0.0" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + selenium-webdriver@4.0.0-rc-1: version "4.0.0-rc-1" resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.0.0-rc-1.tgz#b1e7e5821298c8a071e988518dd6b759f0c41281" @@ -4763,17 +9906,36 @@ selenium-webdriver@^4.0.0-beta.2: tmp "^0.2.1" ws ">=7.4.6" -semver@^5.6.0: +selfsigned@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.0.1.tgz#8b2df7fa56bf014d19b6007655fff209c0ef0a56" + integrity sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ== + dependencies: + node-forge "^1" + +semver-diff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" + integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== + dependencies: + semver "^6.3.0" + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@^5.4.1, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.0.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.7: +semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== @@ -4799,6 +9961,40 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" +serialize-javascript@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + +serve-handler@^6.1.3: + version "6.1.3" + resolved "https://registry.yarnpkg.com/serve-handler/-/serve-handler-6.1.3.tgz#1bf8c5ae138712af55c758477533b9117f6435e8" + integrity sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w== + dependencies: + bytes "3.0.0" + content-disposition "0.5.2" + fast-url-parser "1.1.3" + mime-types "2.1.18" + minimatch "3.0.4" + path-is-inside "1.0.2" + path-to-regexp "2.2.1" + range-parser "1.2.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + serve-static@1.15.0: version "1.15.0" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" @@ -4814,11 +10010,28 @@ setimmediate@^1.0.5: resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + setprototypeof@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -4831,6 +10044,20 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +shell-quote@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" + integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== + +shelljs@^0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -4840,21 +10067,59 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.2: +signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +sirv@^1.0.7: + version "1.0.19" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.19.tgz#1d73979b38c7fe91fcba49c85280daa9c2363b49" + integrity sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ== + dependencies: + "@polka/url" "^1.0.0-next.20" + mrmime "^1.0.0" + totalist "^1.0.0" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +sitemap@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/sitemap/-/sitemap-7.1.1.tgz#eeed9ad6d95499161a3eadc60f8c6dce4bea2bef" + integrity sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg== + dependencies: + "@types/node" "^17.0.5" + "@types/sax" "^1.2.1" + arg "^5.0.0" + sax "^1.2.4" + slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + smart-buffer@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== +sockjs@^0.3.24: + version "0.3.24" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== + dependencies: + faye-websocket "^0.11.3" + uuid "^8.3.2" + websocket-driver "^0.7.4" + socks-proxy-agent@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" @@ -4871,6 +10136,16 @@ socks@~2.3.2: ip "1.1.5" smart-buffer "^4.1.0" +sort-css-media-queries@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/sort-css-media-queries/-/sort-css-media-queries-2.0.4.tgz#b2badfa519cb4a938acbc6d3aaa913d4949dc908" + integrity sha512-PAIsEK/XupCQwitjv7XxoMvYhT7EAfyzI3hsy/MyDgTvc+Ft55ctdkctJLOy6cQejaIC+zjpUL4djFVm2ivOOw== + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + source-map-js@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" @@ -4881,21 +10156,87 @@ source-map-js@^1.0.1, source-map-js@^1.0.2: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map@~0.6.1: +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.5.0: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +space-separated-tokens@^1.0.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" + integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== + spawn-command@^0.0.2-1: version "0.0.2-1" resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" integrity sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A= +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +state-toggle@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" + integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== + statuses@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +std-env@^3.0.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.1.1.tgz#1f19c4d3f6278c52efd08a94574a2a8d32b7d092" + integrity sha512-/c645XdExBypL01TpFKiG/3RAa/Qmu+zRi0MwAmrdEkwHNuN0ebo8ccAXBBDa5Z0QOJgBskUIbuCK91x0sCVEw== + stream-events@^1.0.4, stream-events@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/stream-events/-/stream-events-1.0.5.tgz#bbc898ec4df33a4902d892333d47da9bf1c406d5" @@ -4913,7 +10254,7 @@ streamsearch@^1.1.0: resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== -string-width@^4.1.0, string-width@^4.2.0: +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -4922,6 +10263,15 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string-width@^5.0.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + string.prototype.matchall@^4.0.7: version "4.0.7" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz#8e6ecb0d8a1fb1fda470d81acecb2dba057a481d" @@ -4973,6 +10323,15 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -4980,16 +10339,38 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" +strip-ansi@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" + integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== + dependencies: + ansi-regex "^6.0.1" + +strip-bom-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + stripe@8.194.0: version "8.194.0" resolved "https://registry.yarnpkg.com/stripe/-/stripe-8.194.0.tgz#67fc7a34260f95f9103834a1f0962d27c608cf73" @@ -5003,11 +10384,26 @@ stubs@^3.0.0: resolved "https://registry.yarnpkg.com/stubs/-/stubs-3.0.0.tgz#e8d2ba1fa9c90570303c030b6900f7d5f89abe5b" integrity sha1-6NK6H6nJBXAwPAMLaQD31fiavls= +style-to-object@0.3.0, style-to-object@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" + integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== + dependencies: + inline-style-parser "0.1.1" + styled-jsx@5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.1.tgz#78fecbbad2bf95ce6cd981a08918ce4696f5fc80" integrity sha512-+PIZ/6Uk40mphiQJJI1202b+/dYeTVd9ZnMPR80pgiWbjIwvN2zIp4r9et0BgqBuShh48I0gttPlAXA7WVvBxw== +stylehacks@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.0.tgz#a40066490ca0caca04e96c6b02153ddc39913520" + integrity sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q== + dependencies: + browserslist "^4.16.6" + postcss-selector-parser "^6.0.4" + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -5022,7 +10418,7 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.1.0: +supports-color@^8.0.0, supports-color@^8.1.0: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== @@ -5034,6 +10430,24 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +svg-parser@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" + integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== + +svgo@^2.5.0, svgo@^2.7.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" + integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^4.1.3" + css-tree "^1.1.3" + csso "^4.2.0" + picocolors "^1.0.0" + stable "^0.1.8" + tailwindcss@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.0.1.tgz#bef72ff45d5cfed79bb648d30da952e521e98da4" @@ -5061,6 +10475,16 @@ tailwindcss@3.0.1: resolve "^1.20.0" tmp "^0.2.1" +tapable@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + teeny-request@^7.1.3: version "7.2.0" resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-7.2.0.tgz#41347ece068f08d741e7b86df38a4498208b2633" @@ -5072,6 +10496,27 @@ teeny-request@^7.1.3: stream-events "^1.0.5" uuid "^8.0.0" +terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz#0320dcc270ad5372c1e8993fabbd927929773e54" + integrity sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g== + dependencies: + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.0" + source-map "^0.6.1" + terser "^5.7.2" + +terser@^5.10.0, terser@^5.7.2: + version "5.14.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.0.tgz#eefeec9af5153f55798180ee2617f390bdd285e2" + integrity sha512-JC6qfIEkPBd9j1SMO3Pfn+A6w2kQV54tv+ABQLgZr7dA3k/DL/OBoYSWxzVpZev3J+bUHXfr55L8Mox7AaNo6g== + dependencies: + "@jridgewell/source-map" "^0.3.2" + acorn "^8.5.0" + commander "^2.20.0" + source-map-support "~0.5.20" + text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -5082,6 +10527,21 @@ thunkify@^2.1.2: resolved "https://registry.yarnpkg.com/thunkify/-/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d" integrity sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0= +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +tiny-invariant@^1.0.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.2.0.tgz#a1141f86b672a9148c72e978a19a73b9b94a15a9" + integrity sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg== + +tiny-warning@^1.0.0, tiny-warning@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + tmp@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" @@ -5089,6 +10549,16 @@ tmp@^0.2.1: dependencies: rimraf "^3.0.0" +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -5101,6 +10571,11 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== +totalist@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" + integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== + tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" @@ -5111,6 +10586,21 @@ tree-kill@^1.2.2: resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== +trim-trailing-lines@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0" + integrity sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ== + +trim@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" + integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= + +trough@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" + integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== + tsc-files@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/tsc-files/-/tsc-files-1.1.3.tgz#ef4cfcb7affc9b90577d707a879dc53bb105be83" @@ -5131,7 +10621,7 @@ tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0: +tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== @@ -5172,6 +10662,11 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== +type-fest@^2.5.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.13.0.tgz#d1ecee38af29eb2e863b22299a3d68ef30d2abfb" + integrity sha512-lPfAm42MxE4/456+QyIaaVBAwgpJb6xZ8PRu09utnhPdWwcyj9vgy6Sq0Z5yNbJ21EdxB5dRU/Qg8bsyAMtlcw== + type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -5192,6 +10687,11 @@ typescript@4.6.4: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.4.tgz#caa78bbc3a59e6a5c510d35703f6a09877ce45e9" integrity sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg== +ua-parser-js@^0.7.30: + version "0.7.31" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.31.tgz#649a656b191dffab4f21d5e053e27ca17cbff5c6" + integrity sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ== + unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" @@ -5202,6 +10702,72 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +unherit@^1.0.4: + version "1.1.3" + resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" + integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== + dependencies: + inherits "^2.0.0" + xtend "^4.0.0" + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" + integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" + integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== + +unified@9.2.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8" + integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg== + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^2.0.0" + trough "^1.0.0" + vfile "^4.0.0" + +unified@^8.4.2: + version "8.4.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-8.4.2.tgz#13ad58b4a437faa2751a4a4c6a16f680c500fff1" + integrity sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA== + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-plain-obj "^2.0.0" + trough "^1.0.0" + vfile "^4.0.0" + +unified@^9.0.0: + version "9.2.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.2.tgz#67649a1abfc3ab85d2969502902775eb03146975" + integrity sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ== + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^2.0.0" + trough "^1.0.0" + vfile "^4.0.0" + unique-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" @@ -5209,6 +10775,76 @@ unique-string@^2.0.0: dependencies: crypto-random-string "^2.0.0" +unist-builder@2.0.3, unist-builder@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" + integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw== + +unist-util-find-after@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unist-util-find-after/-/unist-util-find-after-3.0.0.tgz#5c65fcebf64d4f8f496db46fa8fd0fbf354b43e6" + integrity sha512-ojlBqfsBftYXExNu3+hHLfJQ/X1jYY/9vdm4yZWjIbf0VuWF6CRufci1ZyoD/wV2TYMKxXUoNuoqwy+CkgzAiQ== + dependencies: + unist-util-is "^4.0.0" + +unist-util-generated@^1.0.0: + version "1.1.6" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b" + integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg== + +unist-util-is@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" + integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== + +unist-util-position@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" + integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== + +unist-util-remove-position@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc" + integrity sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA== + dependencies: + unist-util-visit "^2.0.0" + +unist-util-remove@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unist-util-remove/-/unist-util-remove-2.1.0.tgz#b0b4738aa7ee445c402fda9328d604a02d010588" + integrity sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q== + dependencies: + unist-util-is "^4.0.0" + +unist-util-stringify-position@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" + integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== + dependencies: + "@types/unist" "^2.0.2" + +unist-util-visit-parents@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" + integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + +unist-util-visit@2.0.3, unist-util-visit@^2.0.0, unist-util-visit@^2.0.1, unist-util-visit@^2.0.2, unist-util-visit@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" + integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + unist-util-visit-parents "^3.0.0" + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + unload@2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/unload/-/unload-2.2.0.tgz#ccc88fdcad345faa06a92039ec0f80b488880ef7" @@ -5222,6 +10858,26 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= +update-notifier@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" + integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== + dependencies: + boxen "^5.0.0" + chalk "^4.1.0" + configstore "^5.0.1" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.4.0" + is-npm "^5.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.1.0" + pupa "^2.1.1" + semver "^7.3.4" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -5229,6 +10885,39 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +url-loader@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" + integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== + dependencies: + loader-utils "^2.0.0" + mime-types "^2.1.27" + schema-utils "^3.0.0" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +use-composed-ref@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.3.0.tgz#3d8104db34b7b264030a9d916c5e94fbe280dbda" + integrity sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ== + +use-isomorphic-layout-effect@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" + integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== + +use-latest@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/use-latest/-/use-latest-1.2.1.tgz#d13dfb4b08c28e3e33991546a2cee53e14038cf2" + integrity sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw== + dependencies: + use-isomorphic-layout-effect "^1.1.1" + use-subscription@1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/use-subscription/-/use-subscription-1.5.1.tgz#73501107f02fad84c6dd57965beb0b75c68c42d1" @@ -5241,12 +10930,22 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + +utility-types@^3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz#ea4148f9a741015f05ed74fd615e1d20e6bed82b" + integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== + utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^8.0.0: +uuid@^8.0.0, uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== @@ -5256,11 +10955,70 @@ v8-compile-cache@^2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== + vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= +vfile-location@^3.0.0, vfile-location@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c" + integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA== + +vfile-message@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" + integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^2.0.0" + +vfile@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" + integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^2.0.0" + vfile-message "^2.0.0" + +wait-on@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-6.0.1.tgz#16bbc4d1e4ebdd41c5b4e63a2e16dbd1f4e5601e" + integrity sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw== + dependencies: + axios "^0.25.0" + joi "^17.6.0" + lodash "^4.17.21" + minimist "^1.2.5" + rxjs "^7.5.4" + +watchpack@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.3.1.tgz#4200d9447b401156eeca7767ee610f8809bc9d25" + integrity sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +web-namespaces@^1.0.0, web-namespaces@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" + integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== + web-streams-polyfill@^3.0.3: version "3.2.1" resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" @@ -5271,7 +11029,128 @@ webidl-conversions@^3.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= -websocket-driver@>=0.5.1: +webpack-bundle-analyzer@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.5.0.tgz#1b0eea2947e73528754a6f9af3e91b2b6e0f79d5" + integrity sha512-GUMZlM3SKwS8Z+CKeIFx7CVoHn3dXFcUAjT/dcZQQmfSZGvitPfMob2ipjai7ovFFqPvTqkEZ/leL4O0YOdAYQ== + dependencies: + acorn "^8.0.4" + acorn-walk "^8.0.0" + chalk "^4.1.0" + commander "^7.2.0" + gzip-size "^6.0.0" + lodash "^4.17.20" + opener "^1.5.2" + sirv "^1.0.7" + ws "^7.3.1" + +webpack-dev-middleware@^5.3.1: + version "5.3.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz#efae67c2793908e7311f1d9b06f2a08dcc97e51f" + integrity sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA== + dependencies: + colorette "^2.0.10" + memfs "^3.4.3" + mime-types "^2.1.31" + range-parser "^1.2.1" + schema-utils "^4.0.0" + +webpack-dev-server@^4.7.4: + version "4.9.1" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.9.1.tgz#184607b0287c791aeaa45e58e8fe75fcb4d7e2a8" + integrity sha512-CTMfu2UMdR/4OOZVHRpdy84pNopOuigVIsRbGX3LVDMWNP8EUgC5mUBMErbwBlHTEX99ejZJpVqrir6EXAEajA== + dependencies: + "@types/bonjour" "^3.5.9" + "@types/connect-history-api-fallback" "^1.3.5" + "@types/express" "^4.17.13" + "@types/serve-index" "^1.9.1" + "@types/sockjs" "^0.3.33" + "@types/ws" "^8.5.1" + ansi-html-community "^0.0.8" + bonjour-service "^1.0.11" + chokidar "^3.5.3" + colorette "^2.0.10" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + default-gateway "^6.0.3" + express "^4.17.3" + graceful-fs "^4.2.6" + html-entities "^2.3.2" + http-proxy-middleware "^2.0.3" + ipaddr.js "^2.0.1" + open "^8.0.9" + p-retry "^4.5.0" + rimraf "^3.0.2" + schema-utils "^4.0.0" + selfsigned "^2.0.1" + serve-index "^1.9.1" + sockjs "^0.3.24" + spdy "^4.0.2" + webpack-dev-middleware "^5.3.1" + ws "^8.4.2" + +webpack-merge@^5.8.0: + version "5.8.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" + integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== + dependencies: + clone-deep "^4.0.1" + wildcard "^2.0.0" + +webpack-sources@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack@^5.69.1: + version "5.72.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.72.1.tgz#3500fc834b4e9ba573b9f430b2c0a61e1bb57d13" + integrity sha512-dXG5zXCLspQR4krZVR6QgajnZOjW2K/djHvdcRaDQvsjV9z9vaW6+ja5dZOYbqBBjF6kGXka/2ZyxNdc+8Jung== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^0.0.51" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/wasm-edit" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + acorn "^8.4.1" + acorn-import-assertions "^1.7.6" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.9.3" + es-module-lexer "^0.9.0" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.9" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.1.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.1.3" + watchpack "^2.3.1" + webpack-sources "^3.2.3" + +webpackbar@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-5.0.2.tgz#d3dd466211c73852741dfc842b7556dcbc2b0570" + integrity sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ== + dependencies: + chalk "^4.1.0" + consola "^2.15.3" + pretty-time "^1.1.0" + std-env "^3.0.1" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== @@ -5309,6 +11188,13 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" +which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -5316,6 +11202,25 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + +widest-line@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-4.0.1.tgz#a0fc673aaba1ea6f0a0d35b3c2795c9a9cc2ebf2" + integrity sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig== + dependencies: + string-width "^5.0.1" + +wildcard@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" + integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== + with-callback@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/with-callback/-/with-callback-1.0.2.tgz#a09629b9a920028d721404fb435bdcff5c91bc21" @@ -5335,6 +11240,15 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.0.1.tgz#2101e861777fec527d0ea90c57c6b03aac56a5b3" + integrity sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -5355,17 +11269,34 @@ ws@>=7.4.6: resolved "https://registry.yarnpkg.com/ws/-/ws-8.6.0.tgz#e5e9f1d9e7ff88083d0c0dd8281ea662a42c9c23" integrity sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw== +ws@^7.3.1: + version "7.5.8" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.8.tgz#ac2729881ab9e7cbaf8787fe3469a48c5c7f636a" + integrity sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw== + +ws@^8.4.2: + version "8.7.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.7.0.tgz#eaf9d874b433aa00c0e0d8752532444875db3957" + integrity sha512-c2gsP0PRwcLFzUiA8Mkr37/MI7ilIlHQxaEAtd0uNMbVMoy8puJyafRlm0bV9MbGSabUPeLrRRaqIBcFcA2Pqg== + xdg-basedir@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== +xml-js@^1.6.11: + version "1.6.11" + resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" + integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== + dependencies: + sax "^1.2.4" + xregexp@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" integrity sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM= -xtend@^4.0.2: +xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -5390,7 +11321,7 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.0, yaml@^1.10.2: +yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== @@ -5422,3 +11353,8 @@ zod@3.17.2: version "3.17.2" resolved "https://registry.yarnpkg.com/zod/-/zod-3.17.2.tgz#d20b32146a3b5068f8f71768b4f9a4bfe52cddb0" integrity sha512-L8UPS2J/F3dIA8gsPTvGjd8wSRuwR1Td4AqR2Nw8r8BgcLIbZZ5/tCII7hbTLXTQDhxUnnsFdHwpETGajt5i3A== + +zwitch@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" + integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== From cee8e8b892f62f0443b7f22d050eb2897058a7e8 Mon Sep 17 00:00:00 2001 From: Marshall Polaris Date: Tue, 31 May 2022 14:50:21 -0700 Subject: [PATCH 08/24] Fix up formatting in the docs package to use Prettier correctly (#370) * Add .prettierignore to docs package * Fix up prettier errors --- docs/.prettierignore | 2 ++ docs/docs/binary-markets.md | 22 +++++++++++----------- docs/docs/faq.md | 4 +--- docs/docusaurus.config.js | 4 ++-- 4 files changed, 16 insertions(+), 16 deletions(-) create mode 100644 docs/.prettierignore diff --git a/docs/.prettierignore b/docs/.prettierignore new file mode 100644 index 00000000..84ba12e0 --- /dev/null +++ b/docs/.prettierignore @@ -0,0 +1,2 @@ +.docusaurus/ +build/ diff --git a/docs/docs/binary-markets.md b/docs/docs/binary-markets.md index 99eaee48..c65a59d0 100644 --- a/docs/docs/binary-markets.md +++ b/docs/docs/binary-markets.md @@ -15,10 +15,10 @@ Uniswap's CPMM and a suggestion from Manifold user Pepe. - Markets are structured around a question with a binary outcome. - Traders can place a bet on either YES or NO and receive shares in the outcome in return. - 1 YES share = M$1 if the event happens. 1 NO share = M$1 if the event does not happen. - - Notice that 1 YES share + 1 NO share = M$1. If you ever get multiple YES and NO shares, they will cancel out and you will be left with cash. + - Notice that 1 YES share + 1 NO share = M$1. If you ever get multiple YES and NO shares, they will cancel out and you will be left with cash. - When the market is resolved, you will be paid out according to your shares. If you own 100 YES shares, if the event resolves YES, you will earn M$100. (If the event resolves NO, you will earn M$0). - The creator of each market is responsible for resolving each market YES or NO. - - Creators can also resolve N/A to cancel all transactions and return the money, or resolve to a particular probability (say 50%). + - Creators can also resolve N/A to cancel all transactions and return the money, or resolve to a particular probability (say 50%). # Betting @@ -26,15 +26,15 @@ Uniswap's CPMM and a suggestion from Manifold user Pepe. - Manifold's automated market automatically adjusts the market probability after each trade and determines how many shares a user will get for their bet. - You can sell back your shares for cash. If you sell YES shares, the market probability will go down. If you sell NO shares, the probability will go up. - Manifold charges fees on each trade. They are baked into the number of shares you receive. - - If you place a M$100 bet on YES when the probability is 50%, you may end up with 150 YES shares. These shares already include our fees. Notice also that when you buy, the probability goes up, so you are not getting in exactly at 200 shares or 50%. - - Our fee schedule is currently: 13% * (1 - post-bet probability) * bet amount - - The post-trade probability is what the market probability would be after your bet if there were no fees. - - Example: - - If you bet M$100 on NO and the resulting probability without fees would be 10%, then you pay M$100 * 13% * 10% = M$1.3. - - If you bet M$100 on YES and the resulting probability without fees would be 90%, then you pay `M$100 * 13% * 10% = M$1.3`. - - The fees are used to provide a commission to the market creator and to subsidize trading within the market. - - The market creator’s commission is paid out only after the market is resolved. - - No fees are levied on sales. + - If you place a M$100 bet on YES when the probability is 50%, you may end up with 150 YES shares. These shares already include our fees. Notice also that when you buy, the probability goes up, so you are not getting in exactly at 200 shares or 50%. + - Our fee schedule is currently: 13% _ (1 - post-bet probability) _ bet amount + - The post-trade probability is what the market probability would be after your bet if there were no fees. + - Example: + - If you bet M$100 on NO and the resulting probability without fees would be 10%, then you pay M$100 _ 13% _ 10% = M$1.3. + - If you bet M$100 on YES and the resulting probability without fees would be 90%, then you pay `M$100 * 13% * 10% = M$1.3`. + - The fees are used to provide a commission to the market creator and to subsidize trading within the market. + - The market creator’s commission is paid out only after the market is resolved. + - No fees are levied on sales. # Market creation diff --git a/docs/docs/faq.md b/docs/docs/faq.md index ed153509..a6808b97 100644 --- a/docs/docs/faq.md +++ b/docs/docs/faq.md @@ -10,7 +10,6 @@ Nope! Each account starts with a free M$ 1000. If you invest it wisely, you can Manifold Dollars, or mana for short. - ### Can M$ be sold for real money? No. Gambling laws put many restrictions on real-money prediction markets, so Manifold uses play money instead. @@ -30,7 +29,6 @@ In general, prediction markets are very accurate. They do have some known issues As a general heuristic, check the total pool for the market in question. The more M$ there is in the market, the more likely it is to be accurate. - ### Can I participate without having a Google account? No. See [here](https://manifold.markets/hamnox/will-manifold-markets-add-nongoogle) for the probability that this changes. @@ -65,7 +63,7 @@ A market being "closed" means that people can no longer place or sell bets, "loc ### What does "PROB" mean? -Resolving a market as "PROB" means that it's resolved at a certain probability, chosen by the market creator. PROB 100% is the same as "yes", and PROB 0% is the same as "no". For example, if a market is resolved at PROB 75%, anyone who bought "yes" at less than 75% will (usually) make a profit, and anyone who bought "yes" at greater than 75% will (usually) take a loss. Vice versa for "no". +Resolving a market as "PROB" means that it's resolved at a certain probability, chosen by the market creator. PROB 100% is the same as "yes", and PROB 0% is the same as "no". For example, if a market is resolved at PROB 75%, anyone who bought "yes" at less than 75% will (usually) make a profit, and anyone who bought "yes" at greater than 75% will (usually) take a loss. Vice versa for "no". ### What happens if a market creator resolves a market incorrectly, or doesn't resolve it at all? diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index 95320288..03f585cc 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -51,8 +51,8 @@ const config = { scripts: [ { src: 'https://cdn.jsdelivr.net/npm/link-summoner@1.0.2/dist/browser.min.js', - async: 'true' - } + async: 'true', + }, ], themeConfig: From d8af8accbbaa570e0193f91541d41c60709f8526 Mon Sep 17 00:00:00 2001 From: Marshall Polaris Date: Tue, 31 May 2022 15:16:02 -0700 Subject: [PATCH 09/24] Mention /docs package in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c2883c60..f6e85007 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ Operations with complicated contracts (e.g. buying shares) are provided in a sep - `og-image/`: The OpenGraph image generator; creates the preview images shown on Twitter/social media. -Also: Our docs are currently in [a separate repo](https://github.com/manifoldmarkets/docs). TODO: move them into this monorepo. +- `docs/`: Manifold's public documentation that lives at https://docs.manifold.markets. ## Contributing From 3d9d60e8feee1fc6669a15bbd0c250d540d6d8d7 Mon Sep 17 00:00:00 2001 From: Sinclair Chen Date: Tue, 31 May 2022 17:13:54 -0700 Subject: [PATCH 10/24] refactor Row, Col to accept all div props --- web/components/layout/col.tsx | 12 +++--------- web/components/layout/row.tsx | 11 +++-------- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/web/components/layout/col.tsx b/web/components/layout/col.tsx index 74fad186..99bb2d7d 100644 --- a/web/components/layout/col.tsx +++ b/web/components/layout/col.tsx @@ -1,16 +1,10 @@ import clsx from 'clsx' -import { CSSProperties, Ref, ReactNode } from 'react' -export function Col(props: { - children?: ReactNode - className?: string - style?: CSSProperties - ref?: Ref -}) { - const { children, className, style, ref } = props +export function Col(props: JSX.IntrinsicElements['div']) { + const { children, className, ...rest } = props return ( -
+
{children}
) diff --git a/web/components/layout/row.tsx b/web/components/layout/row.tsx index 1c69c252..ceb2183c 100644 --- a/web/components/layout/row.tsx +++ b/web/components/layout/row.tsx @@ -1,15 +1,10 @@ import clsx from 'clsx' -import { ReactNode } from 'react' -export function Row(props: { - children?: ReactNode - className?: string - id?: string -}) { - const { children, className, id } = props +export function Row(props: JSX.IntrinsicElements['div']) { + const { children, className, ...rest } = props return ( -
+
{children}
) From c8bf71d40d5bace1c3477f48d1e3efe47cf5fe34 Mon Sep 17 00:00:00 2001 From: Sinclair Chen Date: Tue, 31 May 2022 17:36:58 -0700 Subject: [PATCH 11/24] Allow selling CPMM binary position from bet table (#372) * Allow selling CPMM binary position from bet table * Only click to collapse on bet header, not body --- web/components/bets-list.tsx | 39 +++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/web/components/bets-list.tsx b/web/components/bets-list.tsx index 9ec28b14..6508e2fb 100644 --- a/web/components/bets-list.tsx +++ b/web/components/bets-list.tsx @@ -48,6 +48,8 @@ import { import { useTimeSinceFirstRender } from 'web/hooks/use-time-since-first-render' import { trackLatency } from 'web/lib/firebase/tracking' import { NumericContract } from 'common/contract' +import { useUser } from 'web/hooks/use-user' +import { SellSharesModal } from './sell-modal' type BetSort = 'newest' | 'profit' | 'closeTime' | 'value' type BetFilter = 'open' | 'sold' | 'closed' | 'resolved' | 'all' @@ -257,12 +259,14 @@ function MyContractBets(props: {
setCollapsed((collapsed) => !collapsed)} > - + setCollapsed((collapsed) => !collapsed)} + > @@ -360,10 +364,11 @@ export function MyBetsSummary(props: { const noWinnings = sumBy(excludeSalesAndAntes, (bet) => calculatePayout(contract, bet, 'NO') ) - const { invested, profitPercent, payout, profit } = getContractBetMetrics( - contract, - bets - ) + const { invested, profitPercent, payout, profit, totalShares } = + getContractBetMetrics(contract, bets) + + const [showSellModal, setShowSellModal] = useState(false) + const user = useUser() return ( @@ -419,6 +424,26 @@ export function MyBetsSummary(props: {
Profit
{formatMoney(profit)} + {isCpmm && isBinary && !resolution && invested > 0 && user && ( + <> + + {showSellModal && ( + + )} + + )}
From a840143990b14c11a1d8cd18daf7d4f52743b308 Mon Sep 17 00:00:00 2001 From: Austin Chen Date: Tue, 31 May 2022 18:06:27 -0700 Subject: [PATCH 12/24] Publicly display bets without infinite looping React why --- web/components/bets-list.tsx | 13 +++++++++---- web/components/user-page.tsx | 28 +++++++++++++++++++++------- 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/web/components/bets-list.tsx b/web/components/bets-list.tsx index 6508e2fb..ff5a31e1 100644 --- a/web/components/bets-list.tsx +++ b/web/components/bets-list.tsx @@ -54,9 +54,14 @@ import { SellSharesModal } from './sell-modal' type BetSort = 'newest' | 'profit' | 'closeTime' | 'value' type BetFilter = 'open' | 'sold' | 'closed' | 'resolved' | 'all' -export function BetsList(props: { user: User }) { - const { user } = props - const bets = useUserBets(user.id, { includeRedemptions: true }) +export function BetsList(props: { user: User; hideBetsBefore?: number }) { + const { user, hideBetsBefore } = props + const allBets = useUserBets(user.id, { includeRedemptions: true }) + // Hide bets before 06-01-2022 if this isn't your own profile + // NOTE: This means public profits also begin on 06-01-2022 as well. + const bets = (allBets ?? []).filter( + (bet) => bet.createdTime >= (hideBetsBefore ?? 0) + ) const [contracts, setContracts] = useState() const [sort, setSort] = useState('newest') @@ -77,7 +82,7 @@ export function BetsList(props: { user: User }) { disposed = true } } - }, [bets]) + }, [allBets]) const getTime = useTimeSinceFirstRender() useEffect(() => { diff --git a/web/components/user-page.tsx b/web/components/user-page.tsx index e1398fea..c1099ce8 100644 --- a/web/components/user-page.tsx +++ b/web/components/user-page.tsx @@ -44,6 +44,7 @@ export function UserLink(props: { } export const TAB_IDS = ['markets', 'comments', 'bets'] +const JUNE_1_2022 = new Date('2022-06-01T00:00:00.000Z').valueOf() export function UserPage(props: { user: User @@ -229,14 +230,27 @@ export function UserPage(props: { title: 'Bets', content: (
- + )} + - {isCurrentUser && } + {!isCurrentUser && ( + <> + + + + )}
), tabIcon: ( From b236ebdbd9495dd582fd3491a1b323f680c70088 Mon Sep 17 00:00:00 2001 From: James Grugett Date: Tue, 31 May 2022 20:07:26 -0500 Subject: [PATCH 13/24] Fix janky horizontal scrollbar on home on mobile --- web/components/contract/contract-card.tsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/web/components/contract/contract-card.tsx b/web/components/contract/contract-card.tsx index a98aa18a..f1493483 100644 --- a/web/components/contract/contract-card.tsx +++ b/web/components/contract/contract-card.tsx @@ -65,9 +65,7 @@ export function ContractCard(props: {
From 9cb24c9f3c1a1155f0d1157392fd683189392c3b Mon Sep 17 00:00:00 2001 From: James Grugett Date: Tue, 31 May 2022 21:23:36 -0500 Subject: [PATCH 14/24] Make categories work when signed out --- web/components/contract-search.tsx | 1 - web/components/feed/category-selector.tsx | 10 +++------- web/pages/activity.tsx | 6 +----- 3 files changed, 4 insertions(+), 13 deletions(-) diff --git a/web/components/contract-search.tsx b/web/components/contract-search.tsx index acddaa6e..65a70d8e 100644 --- a/web/components/contract-search.tsx +++ b/web/components/contract-search.tsx @@ -115,7 +115,6 @@ export function ContractSearch(props: { {showCategorySelector && ( diff --git a/web/components/feed/category-selector.tsx b/web/components/feed/category-selector.tsx index bb89da81..7c014a0e 100644 --- a/web/components/feed/category-selector.tsx +++ b/web/components/feed/category-selector.tsx @@ -1,16 +1,14 @@ import clsx from 'clsx' -import { User } from '../../../common/user' import { Row } from '../layout/row' import { CATEGORIES, CATEGORY_LIST } from '../../../common/categories' export function CategorySelector(props: { - user: User | null | undefined category: string setCategory: (category: string) => void className?: string }) { - const { className, user, category, setCategory } = props + const { className, category, setCategory } = props return ( { - if (!user?.id) return + toggle={() => { setCategory('all') }} /> @@ -35,8 +32,7 @@ export function CategorySelector(props: { key={cat} category={CATEGORIES[cat].split(' ')[0]} isFollowed={cat === category} - toggle={async () => { - if (!user?.id) return + toggle={() => { setCategory(cat) }} /> diff --git a/web/pages/activity.tsx b/web/pages/activity.tsx index dd36ac39..b39191bc 100644 --- a/web/pages/activity.tsx +++ b/web/pages/activity.tsx @@ -39,11 +39,7 @@ export default function Activity() { <> - + {feed ? ( Date: Tue, 31 May 2022 21:36:00 -0500 Subject: [PATCH 15/24] Fix dependency of useEffect in BetsList (#379) * Fix dependency of useEffect in BetsList * Revert "Fix dependency of useEffect in BetsList" This reverts commit 077b211f22eff039c7e684d9714a5d3e7d824a26. * Disable linter for BetsList useEffect deps * Add hideBetsBefore to useEffect dependencies * Fix formatting --- web/components/bets-list.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/web/components/bets-list.tsx b/web/components/bets-list.tsx index ff5a31e1..a56ded54 100644 --- a/web/components/bets-list.tsx +++ b/web/components/bets-list.tsx @@ -82,7 +82,8 @@ export function BetsList(props: { user: User; hideBetsBefore?: number }) { disposed = true } } - }, [allBets]) + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [allBets, hideBetsBefore]) const getTime = useTimeSinceFirstRender() useEffect(() => { From 7c4ec2a8e38761fa54f56469398b06d94112f025 Mon Sep 17 00:00:00 2001 From: Marshall Polaris Date: Tue, 31 May 2022 19:42:35 -0700 Subject: [PATCH 16/24] Refactor contract typing to be more concise and more correct (#355) * Refactor contract types slightly * Refactor contract types greatly * Kill dead binary DPM contract creation code * Use BinaryContract, DPMContract, etc. type aliases --- common/add-liquidity.ts | 4 +- common/antes.ts | 18 ++++---- common/calculate-cpmm.ts | 22 ++++----- common/calculate-dpm.ts | 46 +++++-------------- common/calculate-fixed-payouts.ts | 9 ++-- common/calculate.ts | 33 +++---------- common/contract.ts | 34 +++++++------- common/new-bet.ts | 15 +++--- common/payouts-dpm.ts | 15 +++--- common/payouts-fixed.ts | 10 ++-- common/payouts.ts | 28 ++++------- common/scoring.ts | 17 +++---- common/sell-bet.ts | 6 +-- functions/src/create-answer.ts | 14 +----- functions/src/create-contract.ts | 34 +++----------- functions/src/redeem-shares.ts | 4 +- .../src/scripts/correct-bet-probability.ts | 8 ++-- functions/src/scripts/migrate-to-cfmm.ts | 11 ++--- functions/src/scripts/migrate-to-dpm-2.ts | 4 +- functions/src/sell-shares.ts | 4 +- web/components/answers/answer-bet-panel.tsx | 4 +- web/components/answers/answer-item.tsx | 4 +- .../answers/answer-resolve-panel.tsx | 4 +- web/components/answers/answers-graph.tsx | 9 ++-- web/components/answers/answers-panel.tsx | 10 ++-- .../answers/create-answer-panel.tsx | 6 +-- web/components/bet-panel.tsx | 33 +++++++------ web/components/bet-row.tsx | 4 +- web/components/bets-list.tsx | 34 +++++++------- web/components/contract/contract-card.tsx | 26 ++++------- web/components/contract/contract-overview.tsx | 24 +++------- .../contract/contract-prob-graph.tsx | 4 +- web/components/contract/quick-bet.tsx | 20 +++----- web/components/feed/activity-items.ts | 24 ++++------ .../feed/feed-answer-comment-group.tsx | 3 +- web/components/outcome-label.tsx | 22 +++------ web/components/resolution-panel.tsx | 4 +- web/components/sell-button.tsx | 6 +-- web/components/sell-modal.tsx | 4 +- web/components/sell-row.tsx | 6 +-- web/components/use-save-shares.ts | 10 +--- web/lib/firebase/contracts.ts | 12 ++--- web/pages/[username]/[contractSlug].tsx | 31 ++----------- web/pages/embed/[username]/[contractSlug].tsx | 31 +++---------- web/pages/make-predictions.tsx | 10 ++-- 45 files changed, 245 insertions(+), 436 deletions(-) diff --git a/common/add-liquidity.ts b/common/add-liquidity.ts index 0421bcb5..254b8936 100644 --- a/common/add-liquidity.ts +++ b/common/add-liquidity.ts @@ -1,12 +1,12 @@ import { addCpmmLiquidity, getCpmmLiquidity } from './calculate-cpmm' -import { Binary, CPMM, FullContract } from './contract' +import { CPMMContract } from './contract' import { LiquidityProvision } from './liquidity-provision' import { User } from './user' export const getNewLiquidityProvision = ( user: User, amount: number, - contract: FullContract, + contract: CPMMContract, newLiquidityProvisionId: string ) => { const { pool, p, totalLiquidity } = contract diff --git a/common/antes.ts b/common/antes.ts index e104796f..becc9b7e 100644 --- a/common/antes.ts +++ b/common/antes.ts @@ -2,12 +2,10 @@ import { range } from 'lodash' import { Bet, NumericBet } from './bet' import { getDpmProbability, getValueFromBucket } from './calculate-dpm' import { - Binary, - CPMM, - DPM, - FreeResponse, - FullContract, - Numeric, + CPMMBinaryContract, + DPMBinaryContract, + FreeResponseContract, + NumericContract, } from './contract' import { User } from './user' import { LiquidityProvision } from './liquidity-provision' @@ -23,7 +21,7 @@ export const HOUSE_LIQUIDITY_PROVIDER_ID = 'IPTOzEqrpkWmEzh6hwvAyY9PqFb2' // @Ma export function getCpmmInitialLiquidity( providerId: string, - contract: FullContract, + contract: CPMMBinaryContract, anteId: string, amount: number ) { @@ -47,7 +45,7 @@ export function getCpmmInitialLiquidity( export function getAnteBets( creator: User, - contract: FullContract, + contract: DPMBinaryContract, yesAnteId: string, noAnteId: string ) { @@ -89,7 +87,7 @@ export function getAnteBets( export function getFreeAnswerAnte( anteBettorId: string, - contract: FullContract, + contract: FreeResponseContract, anteBetId: string ) { const { totalBets, totalShares } = contract @@ -117,7 +115,7 @@ export function getFreeAnswerAnte( export function getNumericAnte( anteBettorId: string, - contract: FullContract, + contract: NumericContract, ante: number, newBetId: string ) { diff --git a/common/calculate-cpmm.ts b/common/calculate-cpmm.ts index 4ced5b16..485f32c8 100644 --- a/common/calculate-cpmm.ts +++ b/common/calculate-cpmm.ts @@ -1,6 +1,6 @@ import { sum, groupBy, mapValues, sumBy } from 'lodash' -import { Binary, CPMM, FullContract } from './contract' +import { CPMMContract } from './contract' import { CREATOR_FEE, Fees, LIQUIDITY_FEE, noFees, PLATFORM_FEE } from './fees' import { LiquidityProvision } from './liquidity-provision' import { addObjects } from './util/object' @@ -14,7 +14,7 @@ export function getCpmmProbability( } export function getCpmmProbabilityAfterBetBeforeFees( - contract: FullContract, + contract: CPMMContract, outcome: string, bet: number ) { @@ -31,7 +31,7 @@ export function getCpmmProbabilityAfterBetBeforeFees( } export function getCpmmOutcomeProbabilityAfterBet( - contract: FullContract, + contract: CPMMContract, outcome: string, bet: number ) { @@ -59,7 +59,7 @@ function calculateCpmmShares( } export function getCpmmLiquidityFee( - contract: FullContract, + contract: CPMMContract, bet: number, outcome: string ) { @@ -78,7 +78,7 @@ export function getCpmmLiquidityFee( } export function calculateCpmmSharesAfterFee( - contract: FullContract, + contract: CPMMContract, bet: number, outcome: string ) { @@ -89,7 +89,7 @@ export function calculateCpmmSharesAfterFee( } export function calculateCpmmPurchase( - contract: FullContract, + contract: CPMMContract, bet: number, outcome: string ) { @@ -133,7 +133,7 @@ function sellSharesK( } function calculateCpmmShareValue( - contract: FullContract, + contract: CPMMContract, shares: number, outcome: 'YES' | 'NO' ) { @@ -168,7 +168,7 @@ function calculateCpmmShareValue( } export function calculateCpmmSale( - contract: FullContract, + contract: CPMMContract, shares: number, outcome: string ) { @@ -222,7 +222,7 @@ export function calculateCpmmSale( } export function getCpmmProbabilityAfterSale( - contract: FullContract, + contract: CPMMContract, shares: number, outcome: 'YES' | 'NO' ) { @@ -261,7 +261,7 @@ export function addCpmmLiquidity( } export function getCpmmLiquidityPoolWeights( - contract: FullContract, + contract: CPMMContract, liquidities: LiquidityProvision[] ) { const { p } = contract @@ -291,7 +291,7 @@ export function getCpmmLiquidityPoolWeights( } // export function removeCpmmLiquidity( -// contract: FullContract, +// contract: CPMMContract, // liquidity: number // ) { // const { YES, NO } = contract.pool diff --git a/common/calculate-dpm.ts b/common/calculate-dpm.ts index 104b5ef7..4d31bf3b 100644 --- a/common/calculate-dpm.ts +++ b/common/calculate-dpm.ts @@ -1,13 +1,6 @@ import { cloneDeep, range, sum, sumBy, sortBy, mapValues } from 'lodash' import { Bet, NumericBet } from './bet' -import { - Binary, - DPM, - FreeResponse, - FullContract, - Numeric, - NumericContract, -} from './contract' +import { DPMContract, DPMBinaryContract, NumericContract } from './contract' import { DPM_FEES } from './fees' import { normpdf } from '../common/util/math' import { addObjects } from './util/object' @@ -202,7 +195,7 @@ export function calculateDpmRawShareValue( } export function calculateDpmMoneyRatio( - contract: FullContract, + contract: DPMContract, bet: Bet, shareValue: number ) { @@ -228,10 +221,7 @@ export function calculateDpmMoneyRatio( return actual / expected } -export function calculateDpmShareValue( - contract: FullContract, - bet: Bet -) { +export function calculateDpmShareValue(contract: DPMContract, bet: Bet) { const { pool, totalShares } = contract const { shares, outcome } = bet @@ -243,17 +233,14 @@ export function calculateDpmShareValue( return adjShareValue } -export function calculateDpmSaleAmount( - contract: FullContract, - bet: Bet -) { +export function calculateDpmSaleAmount(contract: DPMContract, bet: Bet) { const { amount } = bet const winnings = calculateDpmShareValue(contract, bet) return deductDpmFees(amount, winnings) } export function calculateDpmPayout( - contract: FullContract, + contract: DPMContract, bet: Bet, outcome: string ) { @@ -263,10 +250,7 @@ export function calculateDpmPayout( return calculateStandardDpmPayout(contract, bet, outcome) } -export function calculateDpmCancelPayout( - contract: FullContract, - bet: Bet -) { +export function calculateDpmCancelPayout(contract: DPMContract, bet: Bet) { const { totalBets, pool } = contract const betTotal = sum(Object.values(totalBets)) const poolTotal = sum(Object.values(pool)) @@ -275,7 +259,7 @@ export function calculateDpmCancelPayout( } export function calculateStandardDpmPayout( - contract: FullContract, + contract: DPMContract, bet: Bet, outcome: string ) { @@ -308,7 +292,7 @@ export function calculateStandardDpmPayout( } export function calculateDpmPayoutAfterCorrectBet( - contract: FullContract, + contract: DPMContract, bet: Bet ) { const { totalShares, pool, totalBets, outcomeType } = contract @@ -338,13 +322,10 @@ export function calculateDpmPayoutAfterCorrectBet( : outcomeType, } - return calculateStandardDpmPayout(newContract, bet, outcome) + return calculateStandardDpmPayout(newContract as any, bet, outcome) } -function calculateMktDpmPayout( - contract: FullContract, - bet: Bet -) { +function calculateMktDpmPayout(contract: DPMContract, bet: Bet) { if (contract.outcomeType === 'BINARY') return calculateBinaryMktDpmPayout(contract, bet) @@ -389,10 +370,7 @@ function calculateMktDpmPayout( return deductDpmFees(amount, winnings) } -function calculateBinaryMktDpmPayout( - contract: FullContract, - bet: Bet -) { +function calculateBinaryMktDpmPayout(contract: DPMBinaryContract, bet: Bet) { const { resolutionProbability, totalShares, phantomShares } = contract const p = resolutionProbability !== undefined @@ -413,7 +391,7 @@ function calculateBinaryMktDpmPayout( return deductDpmFees(amount, winnings) } -export function resolvedDpmPayout(contract: FullContract, bet: Bet) { +export function resolvedDpmPayout(contract: DPMContract, bet: Bet) { if (contract.resolution) return calculateDpmPayout(contract, bet, contract.resolution) throw new Error('Contract was not resolved') diff --git a/common/calculate-fixed-payouts.ts b/common/calculate-fixed-payouts.ts index 9c6ff536..a5eacb3d 100644 --- a/common/calculate-fixed-payouts.ts +++ b/common/calculate-fixed-payouts.ts @@ -1,9 +1,9 @@ import { Bet } from './bet' import { getProbability } from './calculate' -import { Binary, FixedPayouts, FullContract } from './contract' +import { CPMMContract } from './contract' export function calculateFixedPayout( - contract: FullContract, + contract: CPMMContract, bet: Bet, outcome: string ) { @@ -23,10 +23,7 @@ export function calculateStandardFixedPayout(bet: Bet, outcome: string) { return shares } -function calculateFixedMktPayout( - contract: FullContract, - bet: Bet -) { +function calculateFixedMktPayout(contract: CPMMContract, bet: Bet) { const { resolutionProbability } = contract const p = resolutionProbability !== undefined diff --git a/common/calculate.ts b/common/calculate.ts index 43b04af8..b7d79f2f 100644 --- a/common/calculate.ts +++ b/common/calculate.ts @@ -18,24 +18,15 @@ import { getDpmProbabilityAfterSale, } from './calculate-dpm' import { calculateFixedPayout } from './calculate-fixed-payouts' -import { - Binary, - Contract, - CPMM, - DPM, - FreeResponseContract, - FullContract, -} from './contract' +import { Contract, BinaryContract, FreeResponseContract } from './contract' -export function getProbability(contract: FullContract) { +export function getProbability(contract: BinaryContract) { return contract.mechanism === 'cpmm-1' ? getCpmmProbability(contract.pool, contract.p) : getDpmProbability(contract.totalShares) } -export function getInitialProbability( - contract: FullContract -) { +export function getInitialProbability(contract: BinaryContract) { if (contract.initialProbability) return contract.initialProbability if (contract.mechanism === 'dpm-2' || (contract as any).totalShares) @@ -59,11 +50,7 @@ export function getOutcomeProbabilityAfterBet( bet: number ) { return contract.mechanism === 'cpmm-1' - ? getCpmmOutcomeProbabilityAfterBet( - contract as FullContract, - outcome, - bet - ) + ? getCpmmOutcomeProbabilityAfterBet(contract, outcome, bet) : getDpmOutcomeProbabilityAfterBet(contract.totalShares, outcome, bet) } @@ -73,11 +60,7 @@ export function calculateShares( betChoice: string ) { return contract.mechanism === 'cpmm-1' - ? calculateCpmmSharesAfterFee( - contract as FullContract, - bet, - betChoice - ) + ? calculateCpmmSharesAfterFee(contract, bet, betChoice) : calculateDpmShares(contract.totalShares, bet, betChoice) } @@ -99,11 +82,7 @@ export function getProbabilityAfterSale( shares: number ) { return contract.mechanism === 'cpmm-1' - ? getCpmmProbabilityAfterSale( - contract as FullContract, - shares, - outcome as 'YES' | 'NO' - ) + ? getCpmmProbabilityAfterSale(contract, shares, outcome as 'YES' | 'NO') : getDpmProbabilityAfterSale(contract.totalShares, outcome, shares) } diff --git a/common/contract.ts b/common/contract.ts index e9b768ea..2abda13a 100644 --- a/common/contract.ts +++ b/common/contract.ts @@ -1,10 +1,15 @@ import { Answer } from './answer' import { Fees } from './fees' -export type FullContract< - M extends DPM | CPMM, - T extends Binary | Multi | FreeResponse | Numeric -> = { +export type AnyMechanism = DPM | CPMM +export type AnyOutcomeType = Binary | Multi | FreeResponse | Numeric +export type AnyContractType = + | (CPMM & Binary) + | (DPM & Binary) + | (DPM & (Multi | FreeResponse)) + | (DPM & Numeric) + +export type Contract = { id: string slug: string // auto-generated; must be unique @@ -36,16 +41,15 @@ export type FullContract< volume7Days: number collectedFees: Fees -} & M & - T +} & T -export type Contract = FullContract< - DPM | CPMM, - Binary | Multi | FreeResponse | Numeric -> -export type BinaryContract = FullContract -export type FreeResponseContract = FullContract -export type NumericContract = FullContract +export type BinaryContract = Contract & Binary +export type NumericContract = Contract & Numeric +export type FreeResponseContract = Contract & FreeResponse +export type DPMContract = Contract & DPM +export type CPMMContract = Contract & CPMM +export type DPMBinaryContract = BinaryContract & DPM +export type CPMMBinaryContract = BinaryContract & CPMM export type DPM = { mechanism: 'dpm-2' @@ -63,8 +67,6 @@ export type CPMM = { totalLiquidity: number // in M$ } -export type FixedPayouts = CPMM - export type Binary = { outcomeType: 'BINARY' initialProbability: number @@ -94,7 +96,7 @@ export type Numeric = { resolutionValue?: number } -export type outcomeType = 'BINARY' | 'MULTI' | 'FREE_RESPONSE' | 'NUMERIC' +export type outcomeType = AnyOutcomeType['outcomeType'] export const OUTCOME_TYPES = [ 'BINARY', 'MULTI', diff --git a/common/new-bet.ts b/common/new-bet.ts index 1053ec58..ba799624 100644 --- a/common/new-bet.ts +++ b/common/new-bet.ts @@ -10,12 +10,9 @@ import { } from './calculate-dpm' import { calculateCpmmPurchase, getCpmmProbability } from './calculate-cpmm' import { - Binary, - CPMM, - DPM, - FreeResponse, - FullContract, - Multi, + CPMMBinaryContract, + DPMBinaryContract, + FreeResponseContract, NumericContract, } from './contract' import { noFees } from './fees' @@ -35,7 +32,7 @@ export type BetInfo = { export const getNewBinaryCpmmBetInfo = ( outcome: 'YES' | 'NO', amount: number, - contract: FullContract, + contract: CPMMBinaryContract, loanAmount: number ) => { const { shares, newPool, newP, fees } = calculateCpmmPurchase( @@ -69,7 +66,7 @@ export const getNewBinaryCpmmBetInfo = ( export const getNewBinaryDpmBetInfo = ( outcome: 'YES' | 'NO', amount: number, - contract: FullContract, + contract: DPMBinaryContract, loanAmount: number ) => { const { YES: yesPool, NO: noPool } = contract.pool @@ -116,7 +113,7 @@ export const getNewBinaryDpmBetInfo = ( export const getNewMultiBetInfo = ( outcome: string, amount: number, - contract: FullContract, + contract: FreeResponseContract, loanAmount: number ) => { const { pool, totalShares, totalBets } = contract diff --git a/common/payouts-dpm.ts b/common/payouts-dpm.ts index 300a906f..6cecddff 100644 --- a/common/payouts-dpm.ts +++ b/common/payouts-dpm.ts @@ -2,14 +2,11 @@ import { sum, groupBy, sumBy, mapValues } from 'lodash' import { Bet, NumericBet } from './bet' import { deductDpmFees, getDpmProbability } from './calculate-dpm' -import { DPM, FreeResponse, FullContract, Multi } from './contract' +import { DPMContract, FreeResponseContract } from './contract' import { DPM_CREATOR_FEE, DPM_FEES, DPM_PLATFORM_FEE } from './fees' import { addObjects } from './util/object' -export const getDpmCancelPayouts = ( - contract: FullContract, - bets: Bet[] -) => { +export const getDpmCancelPayouts = (contract: DPMContract, bets: Bet[]) => { const { pool } = contract const poolTotal = sum(Object.values(pool)) console.log('resolved N/A, pool M$', poolTotal) @@ -31,7 +28,7 @@ export const getDpmCancelPayouts = ( export const getDpmStandardPayouts = ( outcome: string, - contract: FullContract, + contract: DPMContract, bets: Bet[] ) => { const winningBets = bets.filter((bet) => bet.outcome === outcome) @@ -78,7 +75,7 @@ export const getDpmStandardPayouts = ( export const getNumericDpmPayouts = ( outcome: string, - contract: FullContract, + contract: DPMContract, bets: NumericBet[] ) => { const totalShares = sumBy(bets, (bet) => bet.allOutcomeShares[outcome] ?? 0) @@ -129,7 +126,7 @@ export const getNumericDpmPayouts = ( } export const getDpmMktPayouts = ( - contract: FullContract, + contract: DPMContract, bets: Bet[], resolutionProbability?: number ) => { @@ -183,7 +180,7 @@ export const getDpmMktPayouts = ( export const getPayoutsMultiOutcome = ( resolutions: { [outcome: string]: number }, - contract: FullContract, + contract: FreeResponseContract, bets: Bet[] ) => { const poolTotal = sum(Object.values(contract.pool)) diff --git a/common/payouts-fixed.ts b/common/payouts-fixed.ts index 1f4f2f4b..4e06042b 100644 --- a/common/payouts-fixed.ts +++ b/common/payouts-fixed.ts @@ -3,7 +3,7 @@ import { sum } from 'lodash' import { Bet } from './bet' import { getProbability } from './calculate' import { getCpmmLiquidityPoolWeights } from './calculate-cpmm' -import { Binary, CPMM, FixedPayouts, FullContract } from './contract' +import { CPMMContract } from './contract' import { noFees } from './fees' import { LiquidityProvision } from './liquidity-provision' @@ -30,7 +30,7 @@ export const getFixedCancelPayouts = ( export const getStandardFixedPayouts = ( outcome: string, - contract: FullContract, + contract: CPMMContract, bets: Bet[], liquidities: LiquidityProvision[] ) => { @@ -65,7 +65,7 @@ export const getStandardFixedPayouts = ( } export const getLiquidityPoolPayouts = ( - contract: FullContract, + contract: CPMMContract, outcome: string, liquidities: LiquidityProvision[] ) => { @@ -81,7 +81,7 @@ export const getLiquidityPoolPayouts = ( } export const getMktFixedPayouts = ( - contract: FullContract, + contract: CPMMContract, bets: Bet[], liquidities: LiquidityProvision[], resolutionProbability?: number @@ -116,7 +116,7 @@ export const getMktFixedPayouts = ( } export const getLiquidityPoolProbPayouts = ( - contract: FullContract, + contract: CPMMContract, p: number, liquidities: LiquidityProvision[] ) => { diff --git a/common/payouts.ts b/common/payouts.ts index 68fb8694..a3f105cf 100644 --- a/common/payouts.ts +++ b/common/payouts.ts @@ -1,15 +1,7 @@ import { sumBy, groupBy, mapValues } from 'lodash' import { Bet, NumericBet } from './bet' -import { - Binary, - Contract, - DPM, - FixedPayouts, - FreeResponse, - FullContract, - Multi, -} from './contract' +import { Contract, CPMMBinaryContract, DPMContract } from './contract' import { Fees } from './fees' import { LiquidityProvision } from './liquidity-provision' import { @@ -55,7 +47,7 @@ export type PayoutInfo = { } export const getPayouts = ( - outcome: string, + outcome: string | undefined, resolutions: { [outcome: string]: number }, @@ -73,7 +65,6 @@ export const getPayouts = ( resolutionProbability ) } - return getDpmPayouts( outcome, resolutions, @@ -84,8 +75,8 @@ export const getPayouts = ( } export const getFixedPayouts = ( - outcome: string, - contract: FullContract, + outcome: string | undefined, + contract: CPMMBinaryContract, bets: Bet[], liquidities: LiquidityProvision[], resolutionProbability?: number @@ -108,11 +99,11 @@ export const getFixedPayouts = ( } export const getDpmPayouts = ( - outcome: string, + outcome: string | undefined, resolutions: { [outcome: string]: number }, - contract: Contract, + contract: DPMContract, bets: Bet[], resolutionProbability?: number ): PayoutInfo => { @@ -125,13 +116,10 @@ export const getDpmPayouts = ( case 'MKT': return contract.outcomeType === 'FREE_RESPONSE' - ? getPayoutsMultiOutcome( - resolutions, - contract as FullContract, - openBets - ) + ? getPayoutsMultiOutcome(resolutions, contract, openBets) : getDpmMktPayouts(contract, openBets, resolutionProbability) case 'CANCEL': + case undefined: return getDpmCancelPayouts(contract, openBets) default: diff --git a/common/scoring.ts b/common/scoring.ts index 3f0c44b6..e910aa2f 100644 --- a/common/scoring.ts +++ b/common/scoring.ts @@ -1,7 +1,7 @@ import { groupBy, sumBy, mapValues, partition } from 'lodash' import { Bet } from './bet' -import { Binary, Contract, FullContract } from './contract' +import { Contract } from './contract' import { getPayouts } from './payouts' export function scoreCreators(contracts: Contract[]) { @@ -24,23 +24,24 @@ export function scoreTraders(contracts: Contract[], bets: Bet[][]) { return userScores } -export function scoreUsersByContract( - contract: FullContract, - bets: Bet[] -) { - const { resolution, resolutionProbability } = contract +export function scoreUsersByContract(contract: Contract, bets: Bet[]) { + const { resolution } = contract + const resolutionProb = + contract.outcomeType == 'BINARY' + ? contract.resolutionProbability + : undefined const [closedBets, openBets] = partition( bets, (bet) => bet.isSold || bet.sale ) const { payouts: resolvePayouts } = getPayouts( - resolution, + resolution as string, {}, contract, openBets, [], - resolutionProbability + resolutionProb ) const salePayouts = closedBets.map((bet) => { diff --git a/common/sell-bet.ts b/common/sell-bet.ts index 5392ab67..233e478f 100644 --- a/common/sell-bet.ts +++ b/common/sell-bet.ts @@ -5,14 +5,14 @@ import { deductDpmFees, } from './calculate-dpm' import { calculateCpmmSale, getCpmmProbability } from './calculate-cpmm' -import { Binary, DPM, CPMM, FullContract } from './contract' +import { CPMMContract, DPMContract } from './contract' import { DPM_CREATOR_FEE, DPM_PLATFORM_FEE, Fees } from './fees' import { User } from './user' export const getSellBetInfo = ( user: User, bet: Bet, - contract: FullContract, + contract: DPMContract, newBetId: string ) => { const { pool, totalShares, totalBets } = contract @@ -87,7 +87,7 @@ export const getCpmmSellBetInfo = ( user: User, shares: number, outcome: 'YES' | 'NO', - contract: FullContract, + contract: CPMMContract, prevLoanAmount: number, newBetId: string ) => { diff --git a/functions/src/create-answer.ts b/functions/src/create-answer.ts index 7fbe5416..7becfc7f 100644 --- a/functions/src/create-answer.ts +++ b/functions/src/create-answer.ts @@ -1,12 +1,7 @@ import * as functions from 'firebase-functions' import * as admin from 'firebase-admin' -import { - Contract, - DPM, - FreeResponse, - FullContract, -} from '../../common/contract' +import { Contract } from '../../common/contract' import { User } from '../../common/user' import { getNewMultiBetInfo } from '../../common/new-bet' import { Answer, MAX_ANSWER_LENGTH } from '../../common/answer' @@ -96,12 +91,7 @@ export const createAnswer = functions.runWith({ minInstances: 1 }).https.onCall( const loanAmount = 0 const { newBet, newPool, newTotalShares, newTotalBets } = - getNewMultiBetInfo( - answerId, - amount, - contract as FullContract, - loanAmount - ) + getNewMultiBetInfo(answerId, amount, contract, loanAmount) const newBalance = user.balance - amount const betDoc = firestore.collection(`contracts/${contractId}/bets`).doc() diff --git a/functions/src/create-contract.ts b/functions/src/create-contract.ts index ab65180b..805e4f6a 100644 --- a/functions/src/create-contract.ts +++ b/functions/src/create-contract.ts @@ -2,16 +2,13 @@ import * as admin from 'firebase-admin' import { z } from 'zod' import { - Binary, + CPMMBinaryContract, Contract, - CPMM, - DPM, - FreeResponse, - FullContract, + FreeResponseContract, MAX_DESCRIPTION_LENGTH, MAX_QUESTION_LENGTH, MAX_TAG_LENGTH, - Numeric, + NumericContract, OUTCOME_TYPES, } from '../../common/contract' import { slugify } from '../../common/util/slugify' @@ -22,7 +19,6 @@ import { APIError, newEndpoint, validate, zTimestamp } from './api' import { FIXED_ANTE, - getAnteBets, getCpmmInitialLiquidity, getFreeAnswerAnte, getNumericAnte, @@ -117,30 +113,14 @@ export const createContract = newEndpoint(['POST'], async (req, [user, _]) => { const providerId = isFree ? HOUSE_LIQUIDITY_PROVIDER_ID : user.id - if (outcomeType === 'BINARY' && contract.mechanism === 'dpm-2') { - const yesBetDoc = firestore - .collection(`contracts/${contract.id}/bets`) - .doc() - - const noBetDoc = firestore.collection(`contracts/${contract.id}/bets`).doc() - - const { yesBet, noBet } = getAnteBets( - user, - contract as FullContract, - yesBetDoc.id, - noBetDoc.id - ) - - await yesBetDoc.set(yesBet) - await noBetDoc.set(noBet) - } else if (outcomeType === 'BINARY') { + if (outcomeType === 'BINARY') { const liquidityDoc = firestore .collection(`contracts/${contract.id}/liquidity`) .doc() const lp = getCpmmInitialLiquidity( providerId, - contract as FullContract, + contract as CPMMBinaryContract, liquidityDoc.id, ante ) @@ -160,7 +140,7 @@ export const createContract = newEndpoint(['POST'], async (req, [user, _]) => { const anteBet = getFreeAnswerAnte( providerId, - contract as FullContract, + contract as FreeResponseContract, anteBetDoc.id ) await anteBetDoc.set(anteBet) @@ -171,7 +151,7 @@ export const createContract = newEndpoint(['POST'], async (req, [user, _]) => { const anteBet = getNumericAnte( providerId, - contract as FullContract, + contract as NumericContract, ante, anteBetDoc.id ) diff --git a/functions/src/redeem-shares.ts b/functions/src/redeem-shares.ts index b4c31223..bdd3ab94 100644 --- a/functions/src/redeem-shares.ts +++ b/functions/src/redeem-shares.ts @@ -4,7 +4,7 @@ import { partition, sumBy } from 'lodash' import { Bet } from '../../common/bet' import { getProbability } from '../../common/calculate' -import { Binary, CPMM, FullContract } from '../../common/contract' +import { Contract } from '../../common/contract' import { noFees } from '../../common/fees' import { User } from '../../common/user' @@ -15,7 +15,7 @@ export const redeemShares = async (userId: string, contractId: string) => { if (!contractSnap.exists) return { status: 'error', message: 'Invalid contract' } - const contract = contractSnap.data() as FullContract + const contract = contractSnap.data() as Contract if (contract.outcomeType !== 'BINARY' || contract.mechanism !== 'cpmm-1') return { status: 'success' } diff --git a/functions/src/scripts/correct-bet-probability.ts b/functions/src/scripts/correct-bet-probability.ts index 77321b7c..5a6ba730 100644 --- a/functions/src/scripts/correct-bet-probability.ts +++ b/functions/src/scripts/correct-bet-probability.ts @@ -6,14 +6,14 @@ initAdmin() import { Bet } from '../../../common/bet' import { getDpmProbability } from '../../../common/calculate-dpm' -import { Binary, Contract, DPM, FullContract } from '../../../common/contract' +import { DPMBinaryContract } from '../../../common/contract' type DocRef = admin.firestore.DocumentReference const firestore = admin.firestore() async function migrateContract( contractRef: DocRef, - contract: FullContract + contract: DPMBinaryContract ) { const bets = await contractRef .collection('bets') @@ -34,9 +34,7 @@ async function migrateContract( async function migrateContracts() { const snapshot = await firestore.collection('contracts').get() - const contracts = snapshot.docs.map( - (doc) => doc.data() as FullContract - ) + const contracts = snapshot.docs.map((doc) => doc.data() as DPMBinaryContract) console.log('Loaded contracts', contracts.length) diff --git a/functions/src/scripts/migrate-to-cfmm.ts b/functions/src/scripts/migrate-to-cfmm.ts index 65452e6c..039b04be 100644 --- a/functions/src/scripts/migrate-to-cfmm.ts +++ b/functions/src/scripts/migrate-to-cfmm.ts @@ -5,18 +5,15 @@ import { initAdmin } from './script-init' initAdmin() import { - Binary, Contract, - CPMM, - DPM, - FullContract, + DPMBinaryContract, + CPMMBinaryContract, } from '../../../common/contract' import { Bet } from '../../../common/bet' import { calculateDpmPayout, getDpmProbability, } from '../../../common/calculate-dpm' -import { User } from '../../../common/user' import { getCpmmInitialLiquidity } from '../../../common/antes' import { noFees } from '../../../common/fees' import { addObjects } from '../../../common/util/object' @@ -28,7 +25,7 @@ const firestore = admin.firestore() async function recalculateContract(contractRef: DocRef, isCommit = false) { await firestore.runTransaction(async (transaction) => { const contractDoc = await transaction.get(contractRef) - const contract = contractDoc.data() as FullContract + const contract = contractDoc.data() as DPMBinaryContract if (!contract?.slug) { console.log('missing slug; id=', contractRef.id) @@ -110,7 +107,7 @@ async function recalculateContract(contractRef: DocRef, isCommit = false) { { ...contract, ...contractUpdate, - } as FullContract, + } as CPMMBinaryContract, liquidityDocRef.id, ante ) diff --git a/functions/src/scripts/migrate-to-dpm-2.ts b/functions/src/scripts/migrate-to-dpm-2.ts index 64294ed9..ffbd1ef2 100644 --- a/functions/src/scripts/migrate-to-dpm-2.ts +++ b/functions/src/scripts/migrate-to-dpm-2.ts @@ -4,7 +4,7 @@ import { sortBy, sumBy } from 'lodash' import { initAdmin } from './script-init' initAdmin() -import { Binary, Contract, DPM, FullContract } from '../../../common/contract' +import { Contract, DPMBinaryContract } from '../../../common/contract' import { Bet } from '../../../common/bet' import { calculateDpmShares, @@ -32,7 +32,7 @@ async function recalculateContract( await firestore.runTransaction(async (transaction) => { const contractDoc = await transaction.get(contractRef) - const contract = contractDoc.data() as FullContract + const contract = contractDoc.data() as DPMBinaryContract const betDocs = await transaction.get(contractRef.collection('bets')) const bets = sortBy( diff --git a/functions/src/sell-shares.ts b/functions/src/sell-shares.ts index c4166b8b..e6bd66ab 100644 --- a/functions/src/sell-shares.ts +++ b/functions/src/sell-shares.ts @@ -2,7 +2,7 @@ import { partition, sumBy } from 'lodash' import * as admin from 'firebase-admin' import * as functions from 'firebase-functions' -import { Binary, CPMM, FullContract } from '../../common/contract' +import { BinaryContract } from '../../common/contract' import { User } from '../../common/user' import { getCpmmSellBetInfo } from '../../common/sell-bet' import { addObjects, removeUndefinedProps } from '../../common/util/object' @@ -35,7 +35,7 @@ export const sellShares = functions.runWith({ minInstances: 1 }).https.onCall( const contractSnap = await transaction.get(contractDoc) if (!contractSnap.exists) return { status: 'error', message: 'Invalid contract' } - const contract = contractSnap.data() as FullContract + const contract = contractSnap.data() as BinaryContract const { closeTime, mechanism, collectedFees, volume } = contract if (mechanism !== 'cpmm-1') diff --git a/web/components/answers/answer-bet-panel.tsx b/web/components/answers/answer-bet-panel.tsx index fb9e1270..ccb4fd14 100644 --- a/web/components/answers/answer-bet-panel.tsx +++ b/web/components/answers/answer-bet-panel.tsx @@ -3,7 +3,7 @@ import { useEffect, useRef, useState } from 'react' import { XIcon } from '@heroicons/react/solid' import { Answer } from 'common/answer' -import { DPM, FreeResponse, FullContract } from 'common/contract' +import { FreeResponseContract } from 'common/contract' import { BuyAmountInput } from '../amount-input' import { Col } from '../layout/col' import { APIError, placeBet } from 'web/lib/firebase/api-call' @@ -27,7 +27,7 @@ import { Bet } from 'common/bet' export function AnswerBetPanel(props: { answer: Answer - contract: FullContract + contract: FreeResponseContract closePanel: () => void className?: string isModal?: boolean diff --git a/web/components/answers/answer-item.tsx b/web/components/answers/answer-item.tsx index ccda34ea..87756a07 100644 --- a/web/components/answers/answer-item.tsx +++ b/web/components/answers/answer-item.tsx @@ -1,7 +1,7 @@ import clsx from 'clsx' import { Answer } from 'common/answer' -import { DPM, FreeResponse, FullContract } from 'common/contract' +import { FreeResponseContract } from 'common/contract' import { Col } from '../layout/col' import { Row } from '../layout/row' import { Avatar } from '../avatar' @@ -13,7 +13,7 @@ import { Linkify } from '../linkify' export function AnswerItem(props: { answer: Answer - contract: FullContract + contract: FreeResponseContract showChoice: 'radio' | 'checkbox' | undefined chosenProb: number | undefined totalChosenProb?: number diff --git a/web/components/answers/answer-resolve-panel.tsx b/web/components/answers/answer-resolve-panel.tsx index 7de19b5d..81b94550 100644 --- a/web/components/answers/answer-resolve-panel.tsx +++ b/web/components/answers/answer-resolve-panel.tsx @@ -2,7 +2,7 @@ import clsx from 'clsx' import { sum, mapValues } from 'lodash' import { useState } from 'react' -import { DPM, FreeResponse, FullContract } from 'common/contract' +import { Contract, FreeResponse } from 'common/contract' import { Col } from '../layout/col' import { resolveMarket } from 'web/lib/firebase/fn-call' import { Row } from '../layout/row' @@ -11,7 +11,7 @@ import { ResolveConfirmationButton } from '../confirmation-button' import { removeUndefinedProps } from 'common/util/object' export function AnswerResolvePanel(props: { - contract: FullContract + contract: Contract & FreeResponse resolveOption: 'CHOOSE' | 'CHOOSE_MULTIPLE' | 'CANCEL' | undefined setResolveOption: ( option: 'CHOOSE' | 'CHOOSE_MULTIPLE' | 'CANCEL' | undefined diff --git a/web/components/answers/answers-graph.tsx b/web/components/answers/answers-graph.tsx index 4d983353..f279151d 100644 --- a/web/components/answers/answers-graph.tsx +++ b/web/components/answers/answers-graph.tsx @@ -5,7 +5,7 @@ import { groupBy, sortBy, sumBy } from 'lodash' import { memo } from 'react' import { Bet } from 'common/bet' -import { DPM, FreeResponse, FullContract } from 'common/contract' +import { FreeResponseContract } from 'common/contract' import { getOutcomeProbability } from 'common/calculate' import { useBets } from 'web/hooks/use-bets' import { useWindowSize } from 'web/hooks/use-window-size' @@ -13,7 +13,7 @@ import { useWindowSize } from 'web/hooks/use-window-size' const NUM_LINES = 6 export const AnswersGraph = memo(function AnswersGraph(props: { - contract: FullContract + contract: FreeResponseContract bets: Bet[] height?: number }) { @@ -161,10 +161,7 @@ function formatTime(time: number, includeTime: boolean) { return dayjs(time).format('MMM D') } -const computeProbsByOutcome = ( - bets: Bet[], - contract: FullContract -) => { +const computeProbsByOutcome = (bets: Bet[], contract: FreeResponseContract) => { const { totalBets } = contract const betsByOutcome = groupBy(bets, (bet) => bet.outcome) diff --git a/web/components/answers/answers-panel.tsx b/web/components/answers/answers-panel.tsx index 7b3bc8cd..f2e344c6 100644 --- a/web/components/answers/answers-panel.tsx +++ b/web/components/answers/answers-panel.tsx @@ -1,7 +1,7 @@ import { sortBy, partition, sum, uniq } from 'lodash' import { useLayoutEffect, useState } from 'react' -import { DPM, FreeResponse, FullContract } from 'common/contract' +import { FreeResponseContract } from 'common/contract' import { Col } from '../layout/col' import { useUser } from 'web/hooks/use-user' import { getDpmOutcomeProbability } from 'common/calculate-dpm' @@ -25,9 +25,7 @@ import { UserLink } from 'web/components/user-page' import { Linkify } from 'web/components/linkify' import { BuyButton } from 'web/components/yes-no-selector' -export function AnswersPanel(props: { - contract: FullContract -}) { +export function AnswersPanel(props: { contract: FreeResponseContract }) { const { contract } = props const { creatorId, resolution, resolutions, totalBets } = contract @@ -154,7 +152,7 @@ export function AnswersPanel(props: { } function getAnswerItems( - contract: FullContract, + contract: FreeResponseContract, answers: Answer[], user: User | undefined | null ) { @@ -182,7 +180,7 @@ function getAnswerItems( } function OpenAnswer(props: { - contract: FullContract + contract: FreeResponseContract answer: Answer items: ActivityItem[] type: string diff --git a/web/components/answers/create-answer-panel.tsx b/web/components/answers/create-answer-panel.tsx index d0ae6996..6d9739cc 100644 --- a/web/components/answers/create-answer-panel.tsx +++ b/web/components/answers/create-answer-panel.tsx @@ -2,7 +2,7 @@ import clsx from 'clsx' import { useState } from 'react' import Textarea from 'react-expanding-textarea' -import { DPM, FreeResponse, FullContract } from 'common/contract' +import { FreeResponseContract } from 'common/contract' import { BuyAmountInput } from '../amount-input' import { Col } from '../layout/col' import { createAnswer } from 'web/lib/firebase/fn-call' @@ -23,9 +23,7 @@ import { firebaseLogin } from 'web/lib/firebase/users' import { Bet } from 'common/bet' import { MAX_ANSWER_LENGTH } from 'common/answer' -export function CreateAnswerPanel(props: { - contract: FullContract -}) { +export function CreateAnswerPanel(props: { contract: FreeResponseContract }) { const { contract } = props const user = useUser() const [text, setText] = useState('') diff --git a/web/components/bet-panel.tsx b/web/components/bet-panel.tsx index 8010e8de..536a2898 100644 --- a/web/components/bet-panel.tsx +++ b/web/components/bet-panel.tsx @@ -3,7 +3,7 @@ import React, { useEffect, useState } from 'react' import { partition, sumBy } from 'lodash' import { useUser } from 'web/hooks/use-user' -import { Binary, CPMM, DPM, FullContract } from 'common/contract' +import { BinaryContract, CPMMBinaryContract } from 'common/contract' import { Col } from './layout/col' import { Row } from './layout/row' import { Spacer } from './layout/spacer' @@ -39,7 +39,7 @@ import { useSaveShares } from './use-save-shares' import { SignUpPrompt } from './sign-up-prompt' export function BetPanel(props: { - contract: FullContract + contract: BinaryContract className?: string }) { const { contract, className } = props @@ -78,7 +78,7 @@ export function BetPanel(props: { } export function BetPanelSwitcher(props: { - contract: FullContract + contract: BinaryContract className?: string title?: string // Set if BetPanel is on a feed modal selected?: 'YES' | 'NO' @@ -157,16 +157,19 @@ export function BetPanelSwitcher(props: { text={tradeType === 'BUY' ? title ?? 'Place a trade' : 'Sell shares'} /> - {tradeType === 'SELL' && user && sharesOutcome && ( - } - shares={yesShares || noShares} - sharesOutcome={sharesOutcome} - user={user} - userBets={userBets ?? []} - onSellSuccess={onBetSuccess} - /> - )} + {tradeType === 'SELL' && + mechanism == 'cpmm-1' && + user && + sharesOutcome && ( + + )} {tradeType === 'BUY' && ( + contract: BinaryContract user: User | null | undefined selected?: 'YES' | 'NO' onBuySuccess?: () => void @@ -374,7 +377,7 @@ function BuyPanel(props: { } export function SellPanel(props: { - contract: FullContract + contract: CPMMBinaryContract userBets: Bet[] shares: number sharesOutcome: 'YES' | 'NO' diff --git a/web/components/bet-row.tsx b/web/components/bet-row.tsx index 5298a433..9621f7a9 100644 --- a/web/components/bet-row.tsx +++ b/web/components/bet-row.tsx @@ -3,7 +3,7 @@ import clsx from 'clsx' import { BetPanelSwitcher } from './bet-panel' import { YesNoSelector } from './yes-no-selector' -import { Binary, CPMM, DPM, FullContract } from 'common/contract' +import { BinaryContract } from 'common/contract' import { Modal } from './layout/modal' import { SellButton } from './sell-button' import { useUser } from 'web/hooks/use-user' @@ -12,7 +12,7 @@ import { useSaveShares } from './use-save-shares' // Inline version of a bet panel. Opens BetPanel in a new modal. export default function BetRow(props: { - contract: FullContract + contract: BinaryContract className?: string btnClassName?: string betPanelClassName?: string diff --git a/web/components/bets-list.tsx b/web/components/bets-list.tsx index a56ded54..e71a72ad 100644 --- a/web/components/bets-list.tsx +++ b/web/components/bets-list.tsx @@ -255,7 +255,6 @@ function MyContractBets(props: { const [collapsed, setCollapsed] = useState(true) const isBinary = outcomeType === 'BINARY' - const probPercent = getBinaryProbPercent(contract) const { payout, profit, profitPercent, invested } = getContractBetMetrics( contract, @@ -292,24 +291,27 @@ function MyContractBets(props: { - {(isBinary || resolution) && ( + {resolution ? ( <> - {resolution ? ( -
- Resolved{' '} - -
- ) : ( -
{probPercent}
- )} +
+ Resolved{' '} + +
- )} + ) : isBinary ? ( + <> +
+ {getBinaryProbPercent(contract)} +
+
+ + ) : null} ) : ( - } - truncate="long" - /> + ))} )} {outcomeType === 'FREE_RESPONSE' && ( } + contract={contract} truncate="long" /> )} @@ -135,7 +125,7 @@ export function ContractCard(props: { } export function BinaryResolutionOrChance(props: { - contract: FullContract + contract: BinaryContract large?: boolean className?: string }) { diff --git a/web/components/contract/contract-overview.tsx b/web/components/contract/contract-overview.tsx index 4d1d772e..a8608ae6 100644 --- a/web/components/contract/contract-overview.tsx +++ b/web/components/contract/contract-overview.tsx @@ -1,4 +1,4 @@ -import { Contract, tradingAllowed } from 'web/lib/firebase/contracts' +import { tradingAllowed } from 'web/lib/firebase/contracts' import { Col } from '../layout/col' import { Spacer } from '../layout/spacer' import { ContractProbGraph } from './contract-prob-graph' @@ -16,12 +16,7 @@ import { Bet } from 'common/bet' import { Comment } from 'common/comment' import BetRow from '../bet-row' import { AnswersGraph } from '../answers/answers-graph' -import { - DPM, - FreeResponse, - FullContract, - NumericContract, -} from 'common/contract' +import { Contract } from 'common/contract' import { ContractDescription } from './contract-description' import { ContractDetails } from './contract-details' import { ShareMarket } from '../share-market' @@ -58,7 +53,7 @@ export const ContractOverview = (props: { {outcomeType === 'NUMERIC' && ( )} @@ -82,9 +77,7 @@ export const ContractOverview = (props: { {outcomeType === 'NUMERIC' && ( - + )} @@ -97,14 +90,9 @@ export const ContractOverview = (props: { {isBinary && }{' '} {outcomeType === 'FREE_RESPONSE' && ( - } - bets={bets} - /> - )} - {outcomeType === 'NUMERIC' && ( - + )} + {outcomeType === 'NUMERIC' && } {(contract.description || isCreator) && } {isCreator && } + contract: BinaryContract bets: Bet[] height?: number }) { diff --git a/web/components/contract/quick-bet.tsx b/web/components/contract/quick-bet.tsx index 1c73e40d..4c0e2ce5 100644 --- a/web/components/contract/quick-bet.tsx +++ b/web/components/contract/quick-bet.tsx @@ -5,16 +5,8 @@ import { getTopAnswer, } from 'common/calculate' import { getExpectedValue } from 'common/calculate-dpm' -import { - Contract, - FullContract, - CPMM, - DPM, - Binary, - NumericContract, - FreeResponseContract, -} from 'common/contract' import { User } from 'common/user' +import { Contract, NumericContract } from 'common/contract' import { formatLargeNumber, formatMoney, @@ -39,12 +31,12 @@ export function QuickBet(props: { contract: Contract; user: User }) { const userBets = useUserContractBets(user.id, contract.id) const topAnswer = contract.outcomeType === 'FREE_RESPONSE' - ? getTopAnswer(contract as FreeResponseContract) + ? getTopAnswer(contract) : undefined // TODO: yes/no from useSaveShares doesn't work on numeric contracts const { yesFloorShares, noFloorShares } = useSaveShares( - contract as FullContract, + contract, userBets, topAnswer?.number.toString() || undefined ) @@ -226,10 +218,10 @@ function QuickOutcomeView(props: { display = getBinaryProbPercent(contract) break case 'NUMERIC': - display = formatLargeNumber(getExpectedValue(contract as NumericContract)) + display = formatLargeNumber(getExpectedValue(contract)) break case 'FREE_RESPONSE': { - const topAnswer = getTopAnswer(contract as FreeResponseContract) + const topAnswer = getTopAnswer(contract) display = topAnswer && formatPercent(getOutcomeProbability(contract, topAnswer.id)) @@ -257,7 +249,7 @@ function getProb(contract: Contract) { : outcomeType === 'FREE_RESPONSE' ? getOutcomeProbability(contract, getTopAnswer(contract)?.id || '') : outcomeType === 'NUMERIC' - ? getNumericScale(contract as NumericContract) + ? getNumericScale(contract) : 1 // Should not happen } diff --git a/web/components/feed/activity-items.ts b/web/components/feed/activity-items.ts index fce2cdc4..f59853e9 100644 --- a/web/components/feed/activity-items.ts +++ b/web/components/feed/activity-items.ts @@ -4,7 +4,7 @@ import { Answer } from 'common/answer' import { Bet } from 'common/bet' import { getOutcomeProbability } from 'common/calculate' import { Comment } from 'common/comment' -import { Contract, DPM, FreeResponse, FullContract } from 'common/contract' +import { Contract, FreeResponseContract } from 'common/contract' import { User } from 'common/user' import { mapCommentsByBetId } from 'web/lib/firebase/comments' @@ -188,7 +188,7 @@ function groupBets( } function getAnswerGroups( - contract: FullContract, + contract: FreeResponseContract, bets: Bet[], comments: Comment[], user: User | undefined | null, @@ -269,7 +269,7 @@ function getAnswerGroups( } function getAnswerAndCommentInputGroups( - contract: FullContract, + contract: FreeResponseContract, bets: Bet[], comments: Comment[], user: User | undefined | null @@ -493,17 +493,11 @@ export function getRecentContractActivityItems( const items = [] if (contract.outcomeType === 'FREE_RESPONSE') { items.push( - ...getAnswerGroups( - contract as FullContract, - bets, - comments, - user, - { - sortByProb: false, - abbreviated: true, - reversed: true, - } - ) + ...getAnswerGroups(contract, bets, comments, user, { + sortByProb: false, + abbreviated: true, + reversed: true, + }) ) } else { items.push( @@ -587,7 +581,7 @@ export function getSpecificContractActivityItems( case 'free-response-comment-answer-groups': items.push( ...getAnswerAndCommentInputGroups( - contract as FullContract, + contract as FreeResponseContract, bets, comments, user diff --git a/web/components/feed/feed-answer-comment-group.tsx b/web/components/feed/feed-answer-comment-group.tsx index a184dd3c..1b976668 100644 --- a/web/components/feed/feed-answer-comment-group.tsx +++ b/web/components/feed/feed-answer-comment-group.tsx @@ -1,4 +1,3 @@ -import { FreeResponse, FullContract } from 'common/contract' import { Answer } from 'common/answer' import { ActivityItem } from 'web/components/feed/activity-items' import { Bet } from 'common/bet' @@ -26,7 +25,7 @@ import { CopyLinkDateTimeComponent } from 'web/components/feed/copy-link-date-ti import { useRouter } from 'next/router' export function FeedAnswerCommentGroup(props: { - contract: FullContract + contract: any answer: Answer items: ActivityItem[] type: string diff --git a/web/components/outcome-label.tsx b/web/components/outcome-label.tsx index 7cbfa144..8737953e 100644 --- a/web/components/outcome-label.tsx +++ b/web/components/outcome-label.tsx @@ -3,16 +3,7 @@ import { ReactNode } from 'react' import { Answer } from 'common/answer' import { getProbability } from 'common/calculate' import { getValueFromBucket } from 'common/calculate-dpm' -import { - Binary, - Contract, - CPMM, - DPM, - FreeResponse, - FreeResponseContract, - FullContract, - NumericContract, -} from 'common/contract' +import { BinaryContract, Contract, NumericContract } from 'common/contract' import { formatPercent } from 'common/util/format' import { ClientRender } from './client-render' @@ -36,7 +27,7 @@ export function OutcomeLabel(props: { return ( } + contract={contract} resolution={outcome} truncate={truncate} answerClassName={'font-bold text-base-400'} @@ -56,7 +47,7 @@ export function BinaryOutcomeLabel(props: { } export function BinaryContractOutcomeLabel(props: { - contract: FullContract + contract: BinaryContract resolution: 'YES' | 'NO' | 'CANCEL' | 'MKT' }) { const { contract, resolution } = props @@ -70,7 +61,7 @@ export function BinaryContractOutcomeLabel(props: { } export function FreeResponseOutcomeLabel(props: { - contract: FreeResponseContract + contract: Contract resolution: string | 'CANCEL' | 'MKT' truncate: 'short' | 'long' | 'none' answerClassName?: string @@ -80,8 +71,9 @@ export function FreeResponseOutcomeLabel(props: { if (resolution === 'CANCEL') return if (resolution === 'MKT') return - const { answers } = contract - const chosen = answers?.find((answer) => answer.id === resolution) + const answers = + contract.outcomeType === 'FREE_RESPONSE' ? contract.answers : [] + const chosen = answers.find((answer) => answer.id === resolution) if (!chosen) return return ( diff --git a/web/components/resolution-panel.tsx b/web/components/resolution-panel.tsx index d37e9084..fc031b22 100644 --- a/web/components/resolution-panel.tsx +++ b/web/components/resolution-panel.tsx @@ -10,12 +10,12 @@ import { resolveMarket } from 'web/lib/firebase/fn-call' import { ProbabilitySelector } from './probability-selector' import { DPM_CREATOR_FEE } from 'common/fees' import { getProbability } from 'common/calculate' -import { Binary, CPMM, DPM, FullContract } from 'common/contract' +import { BinaryContract } from 'common/contract' import { formatMoney } from 'common/util/format' export function ResolutionPanel(props: { creator: User - contract: FullContract + contract: BinaryContract className?: string }) { useEffect(() => { diff --git a/web/components/sell-button.tsx b/web/components/sell-button.tsx index 17c8db3e..2b3734a5 100644 --- a/web/components/sell-button.tsx +++ b/web/components/sell-button.tsx @@ -1,4 +1,4 @@ -import { Binary, CPMM, DPM, FullContract } from 'common/contract' +import { BinaryContract } from 'common/contract' import { User } from 'common/user' import { useUserContractBets } from 'web/hooks/use-user-bets' import { useState } from 'react' @@ -7,7 +7,7 @@ import clsx from 'clsx' import { SellSharesModal } from './sell-modal' export function SellButton(props: { - contract: FullContract + contract: BinaryContract user: User | null | undefined sharesOutcome: 'YES' | 'NO' | undefined shares: number @@ -40,7 +40,7 @@ export function SellButton(props: { {showSellModal && ( } + contract={contract} user={user} userBets={userBets ?? []} shares={shares} diff --git a/web/components/sell-modal.tsx b/web/components/sell-modal.tsx index 3e620e24..f5a1af67 100644 --- a/web/components/sell-modal.tsx +++ b/web/components/sell-modal.tsx @@ -1,4 +1,4 @@ -import { Binary, CPMM, FullContract } from 'common/contract' +import { CPMMBinaryContract } from 'common/contract' import { Bet } from 'common/bet' import { User } from 'common/user' import { Modal } from './layout/modal' @@ -11,7 +11,7 @@ import clsx from 'clsx' export function SellSharesModal(props: { className?: string - contract: FullContract + contract: CPMMBinaryContract userBets: Bet[] shares: number sharesOutcome: 'YES' | 'NO' diff --git a/web/components/sell-row.tsx b/web/components/sell-row.tsx index 2ec50c72..4fe2536f 100644 --- a/web/components/sell-row.tsx +++ b/web/components/sell-row.tsx @@ -1,4 +1,4 @@ -import { Binary, CPMM, DPM, FullContract } from 'common/contract' +import { BinaryContract } from 'common/contract' import { User } from 'common/user' import { useState } from 'react' import { Col } from './layout/col' @@ -10,7 +10,7 @@ import { useSaveShares } from './use-save-shares' import { SellSharesModal } from './sell-modal' export function SellRow(props: { - contract: FullContract + contract: BinaryContract user: User | null | undefined className?: string }) { @@ -61,7 +61,7 @@ export function SellRow(props: { {showSellModal && ( } + contract={contract} user={user} userBets={userBets ?? []} shares={yesShares || noShares} diff --git a/web/components/use-save-shares.ts b/web/components/use-save-shares.ts index 9bf3e739..494c1f29 100644 --- a/web/components/use-save-shares.ts +++ b/web/components/use-save-shares.ts @@ -1,17 +1,11 @@ -import { - Binary, - CPMM, - DPM, - FreeResponseContract, - FullContract, -} from 'common/contract' +import { Contract } from 'common/contract' import { Bet } from 'common/bet' import { useEffect, useState } from 'react' import { partition, sumBy } from 'lodash' import { safeLocalStorage } from 'web/lib/util/local' export const useSaveShares = ( - contract: FullContract, + contract: Contract, userBets: Bet[] | undefined, freeResponseAnswerOutcome?: string ) => { diff --git a/web/lib/firebase/contracts.ts b/web/lib/firebase/contracts.ts index 3ea413ce..472f7bda 100644 --- a/web/lib/firebase/contracts.ts +++ b/web/lib/firebase/contracts.ts @@ -17,7 +17,7 @@ import { range, sortBy, sum } from 'lodash' import { app } from './init' import { getValues, listenForValue, listenForValues } from './utils' -import { Binary, Contract, FullContract } from 'common/contract' +import { BinaryContract, Contract } from 'common/contract' import { getDpmProbability } from 'common/calculate-dpm' import { createRNG, shuffle } from 'common/util/random' import { getCpmmProbability } from 'common/calculate-cpmm' @@ -63,18 +63,18 @@ export function contractPool(contract: Contract) { : 'Empty pool' } -export function getBinaryProb(contract: FullContract) { - const { totalShares, pool, p, resolutionProbability, mechanism } = contract +export function getBinaryProb(contract: BinaryContract) { + const { pool, resolutionProbability, mechanism } = contract return ( resolutionProbability ?? (mechanism === 'cpmm-1' - ? getCpmmProbability(pool, p) - : getDpmProbability(totalShares)) + ? getCpmmProbability(pool, contract.p) + : getDpmProbability(contract.totalShares)) ) } -export function getBinaryProbPercent(contract: FullContract) { +export function getBinaryProbPercent(contract: BinaryContract) { return formatPercent(getBinaryProb(contract)) } diff --git a/web/pages/[username]/[contractSlug].tsx b/web/pages/[username]/[contractSlug].tsx index 120f3cb7..e340e12a 100644 --- a/web/pages/[username]/[contractSlug].tsx +++ b/web/pages/[username]/[contractSlug].tsx @@ -30,13 +30,6 @@ import { formatMoney } from 'common/util/format' import { useUserById } from 'web/hooks/use-users' import { ContractTabs } from 'web/components/contract/contract-tabs' import { FirstArgument } from 'common/util/types' -import { - BinaryContract, - DPM, - FreeResponse, - FullContract, - NumericContract, -} from 'common/contract' import { contractTextDetails } from 'web/components/contract/contract-details' import { useWindowSize } from 'web/hooks/use-window-size' import Confetti from 'react-confetti' @@ -143,24 +136,15 @@ export function ContractPageContent(props: FirstArgument) { {allowTrade && (isNumeric ? ( - + ) : ( ))} {allowResolve && (isNumeric ? ( - + ) : ( - + ))} ) : null @@ -205,18 +189,13 @@ export function ContractPageContent(props: FirstArgument) { {outcomeType === 'FREE_RESPONSE' && ( <> - } - /> + )} {isNumeric && ( - + )} {isResolved && ( diff --git a/web/pages/embed/[username]/[contractSlug].tsx b/web/pages/embed/[username]/[contractSlug].tsx index ff485aae..57b6ab45 100644 --- a/web/pages/embed/[username]/[contractSlug].tsx +++ b/web/pages/embed/[username]/[contractSlug].tsx @@ -1,12 +1,5 @@ import { Bet } from 'common/bet' -import { - BinaryContract, - Contract, - DPM, - FreeResponse, - FullContract, - NumericContract, -} from 'common/contract' +import { Contract } from 'common/contract' import { DOMAIN } from 'common/envs/constants' import { AnswersGraph } from 'web/components/answers/answers-graph' import BetRow from 'web/components/bet-row' @@ -117,10 +110,9 @@ function ContractEmbed(props: { contract: Contract; bets: Bet[] }) { {isBinary && ( - + // this fails typechecking, but it doesn't explode because we will + never + )} @@ -133,9 +125,7 @@ function ContractEmbed(props: { contract: Contract; bets: Bet[] }) { )} {outcomeType === 'NUMERIC' && ( - + )}
@@ -152,18 +142,11 @@ function ContractEmbed(props: { contract: Contract; bets: Bet[] }) { )} {outcomeType === 'FREE_RESPONSE' && ( - } - bets={bets} - height={graphHeight} - /> + )} {outcomeType === 'NUMERIC' && ( - + )}
diff --git a/web/pages/make-predictions.tsx b/web/pages/make-predictions.tsx index 55fba2ce..dccef955 100644 --- a/web/pages/make-predictions.tsx +++ b/web/pages/make-predictions.tsx @@ -5,7 +5,7 @@ import { useState } from 'react' import Textarea from 'react-expanding-textarea' import { getProbability } from 'common/calculate' -import { Binary, CPMM, DPM, FullContract } from 'common/contract' +import { BinaryContract } from 'common/contract' import { parseWordsAsTags } from 'common/util/parse' import { BuyAmountInput } from 'web/components/amount-input' import { InfoTooltip } from 'web/components/info-tooltip' @@ -26,7 +26,7 @@ type Prediction = { createdUrl?: string } -function toPrediction(contract: FullContract): Prediction { +function toPrediction(contract: BinaryContract): Prediction { const startProb = getProbability(contract) return { question: contract.question, @@ -102,9 +102,7 @@ export default function MakePredictions() { const [description, setDescription] = useState('') const [tags, setTags] = useState('') const [isSubmitting, setIsSubmitting] = useState(false) - const [createdContracts, setCreatedContracts] = useState< - FullContract[] - >([]) + const [createdContracts, setCreatedContracts] = useState([]) const [ante, setAnte] = useState(100) const [anteError, setAnteError] = useState() @@ -155,7 +153,7 @@ ${TEST_VALUE} ante, closeTime, tags: parseWordsAsTags(tags), - })) as FullContract + })) as BinaryContract setCreatedContracts((prev) => [...prev, contract]) } From 9f1fe3ee176d0c3100a2c14a3789e7d44c2d1c66 Mon Sep 17 00:00:00 2001 From: Marshall Polaris Date: Tue, 31 May 2022 20:02:50 -0700 Subject: [PATCH 17/24] Fix busted avatar links on charity pages (#380) --- web/components/charity/feed-items.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/components/charity/feed-items.tsx b/web/components/charity/feed-items.tsx index b12c7274..9a411e76 100644 --- a/web/components/charity/feed-items.tsx +++ b/web/components/charity/feed-items.tsx @@ -16,7 +16,7 @@ export function Donation(props: { txn: Txn }) { return (
- +

Date: Tue, 31 May 2022 22:21:45 -0500 Subject: [PATCH 18/24] Show bets loading indictor instead of wrong data --- web/components/bets-list.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/components/bets-list.tsx b/web/components/bets-list.tsx index e71a72ad..9ccaf204 100644 --- a/web/components/bets-list.tsx +++ b/web/components/bets-list.tsx @@ -59,7 +59,7 @@ export function BetsList(props: { user: User; hideBetsBefore?: number }) { const allBets = useUserBets(user.id, { includeRedemptions: true }) // Hide bets before 06-01-2022 if this isn't your own profile // NOTE: This means public profits also begin on 06-01-2022 as well. - const bets = (allBets ?? []).filter( + const bets = allBets?.filter( (bet) => bet.createdTime >= (hideBetsBefore ?? 0) ) const [contracts, setContracts] = useState() From 35c373f6ce9b6e4700dfa3649751a18f7986b0f1 Mon Sep 17 00:00:00 2001 From: Marshall Polaris Date: Tue, 31 May 2022 20:40:08 -0700 Subject: [PATCH 19/24] MULTI contracts are not a thing (#381) --- common/contract.ts | 17 +++-------------- functions/src/emails.ts | 4 +--- web/components/outcome-label.tsx | 10 ++++------ 3 files changed, 8 insertions(+), 23 deletions(-) diff --git a/common/contract.ts b/common/contract.ts index 2abda13a..cf4bae0b 100644 --- a/common/contract.ts +++ b/common/contract.ts @@ -2,11 +2,11 @@ import { Answer } from './answer' import { Fees } from './fees' export type AnyMechanism = DPM | CPMM -export type AnyOutcomeType = Binary | Multi | FreeResponse | Numeric +export type AnyOutcomeType = Binary | FreeResponse | Numeric export type AnyContractType = | (CPMM & Binary) | (DPM & Binary) - | (DPM & (Multi | FreeResponse)) + | (DPM & FreeResponse) | (DPM & Numeric) export type Contract = { @@ -74,12 +74,6 @@ export type Binary = { resolution?: 'YES' | 'NO' | 'MKT' | 'CANCEL' } -export type Multi = { - outcomeType: 'MULTI' - multiOutcomes: string[] // Used for outcomeType 'MULTI'. - resolutions?: { [outcome: string]: number } // Used for MKT resolution. -} - export type FreeResponse = { outcomeType: 'FREE_RESPONSE' answers: Answer[] // Used for outcomeType 'FREE_RESPONSE'. @@ -97,12 +91,7 @@ export type Numeric = { } export type outcomeType = AnyOutcomeType['outcomeType'] -export const OUTCOME_TYPES = [ - 'BINARY', - 'MULTI', - 'FREE_RESPONSE', - 'NUMERIC', -] as const +export const OUTCOME_TYPES = ['BINARY', 'FREE_RESPONSE', 'NUMERIC'] as const export const MAX_QUESTION_LENGTH = 480 export const MAX_DESCRIPTION_LENGTH = 10000 export const MAX_TAG_LENGTH = 60 diff --git a/functions/src/emails.ts b/functions/src/emails.ts index b5838968..61fded50 100644 --- a/functions/src/emails.ts +++ b/functions/src/emails.ts @@ -110,9 +110,7 @@ const toDisplayResolution = ( getValueFromBucket(resolution, contract).toString() ) - const answer = (contract as FreeResponseContract).answers?.find( - (a) => a.id === resolution - ) + const answer = contract.answers.find((a) => a.id === resolution) if (answer) return answer.text return `#${resolution}` } diff --git a/web/components/outcome-label.tsx b/web/components/outcome-label.tsx index 8737953e..da8a0e80 100644 --- a/web/components/outcome-label.tsx +++ b/web/components/outcome-label.tsx @@ -3,7 +3,7 @@ import { ReactNode } from 'react' import { Answer } from 'common/answer' import { getProbability } from 'common/calculate' import { getValueFromBucket } from 'common/calculate-dpm' -import { BinaryContract, Contract, NumericContract } from 'common/contract' +import { BinaryContract, Contract, FreeResponseContract } from 'common/contract' import { formatPercent } from 'common/util/format' import { ClientRender } from './client-render' @@ -21,7 +21,7 @@ export function OutcomeLabel(props: { if (contract.outcomeType === 'NUMERIC') return ( - {value ?? getValueFromBucket(outcome, contract as NumericContract)} + {value ?? getValueFromBucket(outcome, contract)} ) @@ -61,7 +61,7 @@ export function BinaryContractOutcomeLabel(props: { } export function FreeResponseOutcomeLabel(props: { - contract: Contract + contract: FreeResponseContract resolution: string | 'CANCEL' | 'MKT' truncate: 'short' | 'long' | 'none' answerClassName?: string @@ -71,9 +71,7 @@ export function FreeResponseOutcomeLabel(props: { if (resolution === 'CANCEL') return if (resolution === 'MKT') return - const answers = - contract.outcomeType === 'FREE_RESPONSE' ? contract.answers : [] - const chosen = answers.find((answer) => answer.id === resolution) + const chosen = contract.answers.find((answer) => answer.id === resolution) if (!chosen) return return ( From 1c980ba678b76739d1d5bd8f008283c7f85991cb Mon Sep 17 00:00:00 2001 From: Ian Philips Date: Wed, 1 Jun 2022 07:11:25 -0600 Subject: [PATCH 20/24] Notifications (#354) * Notifications generating on comment,answer,contract update * Notifications MVP * Submitted an answer => answered * Listen for unseen notifications * Fix userlink formatting, move page * Fix links * Remove redundant code * Cleanup * Cleanup * Refactor name * Comments * Cleanup & update notif only after data retrieval * Find initial new notifs on user change * Enforce auth rules in db * eslint update * Code review changes * Refactor reason --- common/notification.ts | 29 ++++ functions/src/create-notification.ts | 172 +++++++++++++++++++++++ functions/src/index.ts | 2 + functions/src/on-create-answer.ts | 32 +++++ functions/src/on-create-comment.ts | 13 +- functions/src/on-update-contract.ts | 38 ++++++ web/components/nav/nav-bar.tsx | 8 +- web/components/nav/sidebar.tsx | 8 +- web/components/notifications-icon.tsx | 36 +++++ web/lib/firebase/notifications.ts | 24 ++++ web/pages/notifications.tsx | 187 ++++++++++++++++++++++++++ 11 files changed, 545 insertions(+), 4 deletions(-) create mode 100644 common/notification.ts create mode 100644 functions/src/create-notification.ts create mode 100644 functions/src/on-create-answer.ts create mode 100644 functions/src/on-update-contract.ts create mode 100644 web/components/notifications-icon.tsx create mode 100644 web/lib/firebase/notifications.ts create mode 100644 web/pages/notifications.tsx diff --git a/common/notification.ts b/common/notification.ts new file mode 100644 index 00000000..f13a75e9 --- /dev/null +++ b/common/notification.ts @@ -0,0 +1,29 @@ +export type Notification = { + id: string + userId: string + reasonText?: string + reason?: notification_reason_types + createdTime: number + viewTime?: number + isSeen: boolean + + sourceId?: string + sourceType?: notification_source_types + sourceContractId?: string + sourceUserName?: string + sourceUserUsername?: string + sourceUserAvatarUrl?: string +} +export type notification_source_types = + | 'contract' + | 'comment' + | 'bet' + | 'answer' + | 'liquidity' + +export type notification_reason_types = + | 'created' + | 'updated' + | 'resolved' + | 'tagged' + | 'replied' diff --git a/functions/src/create-notification.ts b/functions/src/create-notification.ts new file mode 100644 index 00000000..57f5d6ef --- /dev/null +++ b/functions/src/create-notification.ts @@ -0,0 +1,172 @@ +import * as admin from 'firebase-admin' +import { + Notification, + notification_reason_types, + notification_source_types, +} from '../../common/notification' +import { User } from '../../common/user' +import { Contract } from '../../common/contract' +import { getValues } from './utils' +import { Comment } from '../../common/comment' +import { uniq } from 'lodash' +import { Bet } from '../../common/bet' +import { Answer } from '../../common/answer' +const firestore = admin.firestore() + +type user_to_reason_texts = { + [userId: string]: { text: string; reason: notification_reason_types } +} + +export const createNotification = async ( + sourceId: string, + sourceType: notification_source_types, + reason: notification_reason_types, + sourceContract: Contract, + sourceUser: User, + idempotencyKey: string +) => { + const shouldGetNotification = ( + userId: string, + userToReasonTexts: user_to_reason_texts + ) => { + return ( + sourceUser.id != userId && + !Object.keys(userToReasonTexts).includes(userId) + ) + } + + const createUsersNotifications = async ( + userToReasonTexts: user_to_reason_texts + ) => { + await Promise.all( + Object.keys(userToReasonTexts).map(async (userId) => { + const notificationRef = firestore + .collection(`/users/${userId}/notifications`) + .doc(idempotencyKey) + const notification: Notification = { + id: idempotencyKey, + userId, + reasonText: userToReasonTexts[userId].text, + reason: userToReasonTexts[userId].reason, + createdTime: Date.now(), + isSeen: false, + sourceId, + sourceType, + sourceContractId: sourceContract.id, + sourceUserName: sourceUser.name, + sourceUserUsername: sourceUser.username, + sourceUserAvatarUrl: sourceUser.avatarUrl, + } + await notificationRef.set(notification) + }) + ) + } + + // TODO: Update for liquidity. + // TODO: Find tagged users. + // TODO: Find replies to comments. + // TODO: Filter bets for only open bets + if ( + sourceType === 'comment' || + sourceType === 'answer' || + sourceType === 'contract' + ) { + let reasonTextPretext = getReasonTextFromReason(sourceType, reason) + + const notifyContractCreator = async ( + userToReasonTexts: user_to_reason_texts + ) => { + if (shouldGetNotification(sourceContract.creatorId, userToReasonTexts)) + userToReasonTexts[sourceContract.creatorId] = { + text: `${reasonTextPretext} your question`, + reason, + } + } + + const notifyOtherAnswerersOnContract = async ( + userToReasonTexts: user_to_reason_texts + ) => { + const answers = await getValues( + firestore + .collection('contracts') + .doc(sourceContract.id) + .collection('answers') + ) + const recipientUserIds = uniq(answers.map((answer) => answer.userId)) + recipientUserIds.forEach((userId) => { + if (shouldGetNotification(userId, userToReasonTexts)) + userToReasonTexts[userId] = { + text: `${reasonTextPretext} a question you submitted an answer to`, + reason, + } + }) + } + + const notifyOtherCommentersOnContract = async ( + userToReasonTexts: user_to_reason_texts + ) => { + const comments = await getValues( + firestore + .collection('contracts') + .doc(sourceContract.id) + .collection('comments') + ) + const recipientUserIds = uniq(comments.map((comment) => comment.userId)) + recipientUserIds.forEach((userId) => { + if (shouldGetNotification(userId, userToReasonTexts)) + userToReasonTexts[userId] = { + text: `${reasonTextPretext} a question you commented on`, + reason, + } + }) + } + + const notifyOtherBettorsOnContract = async ( + userToReasonTexts: user_to_reason_texts + ) => { + const betsSnap = await firestore + .collection(`contracts/${sourceContract.id}/bets`) + .get() + const bets = betsSnap.docs.map((doc) => doc.data() as Bet) + const recipientUserIds = uniq(bets.map((bet) => bet.userId)) + recipientUserIds.forEach((userId) => { + if (shouldGetNotification(userId, userToReasonTexts)) + userToReasonTexts[userId] = { + text: `${reasonTextPretext} a question you bet on`, + reason, + } + }) + } + + const getUsersToNotify = async () => { + const userToReasonTexts: user_to_reason_texts = {} + // The following functions modify the userToReasonTexts object in place. + await notifyContractCreator(userToReasonTexts) + await notifyOtherAnswerersOnContract(userToReasonTexts) + await notifyOtherCommentersOnContract(userToReasonTexts) + await notifyOtherBettorsOnContract(userToReasonTexts) + return userToReasonTexts + } + + const userToReasonTexts = await getUsersToNotify() + await createUsersNotifications(userToReasonTexts) + } +} + +function getReasonTextFromReason( + source: notification_source_types, + reason: notification_reason_types +) { + // TODO: Find tagged users. + // TODO: Find replies to comments. + switch (source) { + case 'comment': + return 'commented on' + case 'contract': + return reason + case 'answer': + return 'answered' + default: + throw new Error('Invalid notification reason') + } +} diff --git a/functions/src/index.ts b/functions/src/index.ts index 3c0dc8f8..f18b6109 100644 --- a/functions/src/index.ts +++ b/functions/src/index.ts @@ -27,3 +27,5 @@ export * from './backup-db' export * from './change-user-info' export * from './market-close-emails' export * from './add-liquidity' +export * from './on-create-answer' +export * from './on-update-contract' diff --git a/functions/src/on-create-answer.ts b/functions/src/on-create-answer.ts new file mode 100644 index 00000000..3fd7fefa --- /dev/null +++ b/functions/src/on-create-answer.ts @@ -0,0 +1,32 @@ +import * as functions from 'firebase-functions' +import { getContract, getUser } from './utils' +import { createNotification } from './create-notification' +import { Answer } from '../../common/answer' + +export const onCreateAnswer = functions.firestore + .document('contracts/{contractId}/answers/{answerNumber}') + .onCreate(async (change, context) => { + const { contractId } = context.params as { + contractId: string + } + const { eventId } = context + const contract = await getContract(contractId) + if (!contract) + throw new Error('Could not find contract corresponding with answer') + + const answer = change.data() as Answer + // Ignore ante answer. + if (answer.number === 0) return + + const answerCreator = await getUser(answer.userId) + if (!answerCreator) throw new Error('Could not find answer creator') + + await createNotification( + answer.id, + 'answer', + 'created', + contract, + answerCreator, + eventId + ) + }) diff --git a/functions/src/on-create-comment.ts b/functions/src/on-create-comment.ts index ecbd9ea1..43676615 100644 --- a/functions/src/on-create-comment.ts +++ b/functions/src/on-create-comment.ts @@ -7,6 +7,7 @@ import { Comment } from '../../common/comment' import { sendNewCommentEmail } from './emails' import { Bet } from '../../common/bet' import { Answer } from '../../common/answer' +import { createNotification } from './create-notification' const firestore = admin.firestore() @@ -16,6 +17,7 @@ export const onCreateComment = functions.firestore const { contractId } = context.params as { contractId: string } + const { eventId } = context const contract = await getContract(contractId) if (!contract) @@ -25,7 +27,16 @@ export const onCreateComment = functions.firestore const lastCommentTime = comment.createdTime const commentCreator = await getUser(comment.userId) - if (!commentCreator) throw new Error('Could not find contract creator') + if (!commentCreator) throw new Error('Could not find comment creator') + + await createNotification( + comment.id, + 'comment', + 'created', + contract, + commentCreator, + eventId + ) await firestore .collection('contracts') diff --git a/functions/src/on-update-contract.ts b/functions/src/on-update-contract.ts new file mode 100644 index 00000000..2ccd5540 --- /dev/null +++ b/functions/src/on-update-contract.ts @@ -0,0 +1,38 @@ +import * as functions from 'firebase-functions' +import { getUser } from './utils' +import { createNotification } from './create-notification' +import { Contract } from '../../common/contract' + +export const onUpdateContract = functions.firestore + .document('contracts/{contractId}') + .onUpdate(async (change, context) => { + const contract = change.after.data() as Contract + const { eventId } = context + + const contractUpdater = await getUser(contract.creatorId) + if (!contractUpdater) throw new Error('Could not find contract updater') + + const previousValue = change.before.data() as Contract + if (previousValue.isResolved !== contract.isResolved) { + await createNotification( + contract.id, + 'contract', + 'resolved', + contract, + contractUpdater, + eventId + ) + } else if ( + previousValue.closeTime !== contract.closeTime || + previousValue.description !== contract.description + ) { + await createNotification( + contract.id, + 'contract', + 'updated', + contract, + contractUpdater, + eventId + ) + } + }) diff --git a/web/components/nav/nav-bar.tsx b/web/components/nav/nav-bar.tsx index b279e470..7a291606 100644 --- a/web/components/nav/nav-bar.tsx +++ b/web/components/nav/nav-bar.tsx @@ -5,7 +5,6 @@ import { MenuAlt3Icon, PresentationChartLineIcon, SearchIcon, - ChatAltIcon, XIcon, } from '@heroicons/react/outline' import { Transition, Dialog } from '@headlessui/react' @@ -16,17 +15,22 @@ import { formatMoney } from 'common/util/format' import { Avatar } from '../avatar' import clsx from 'clsx' import { useRouter } from 'next/router' +import NotificationsIcon from 'web/components/notifications-icon' import { useIsIframe } from 'web/hooks/use-is-iframe' function getNavigation(username: string) { return [ { name: 'Home', href: '/home', icon: HomeIcon }, - { name: 'Activity', href: '/activity', icon: ChatAltIcon }, { name: 'Portfolio', href: `/${username}/bets`, icon: PresentationChartLineIcon, }, + { + name: 'Notifications', + href: `/notifications`, + icon: NotificationsIcon, + }, ] } diff --git a/web/components/nav/sidebar.tsx b/web/components/nav/sidebar.tsx index db81b97d..1fd5743f 100644 --- a/web/components/nav/sidebar.tsx +++ b/web/components/nav/sidebar.tsx @@ -26,6 +26,7 @@ import { useHasCreatedContractToday, } from 'web/hooks/use-has-created-contract-today' import { Row } from '../layout/row' +import NotificationsIcon from 'web/components/notifications-icon' import React, { useEffect, useState } from 'react' import { IS_PRIVATE_MANIFOLD } from 'common/envs/constants' @@ -39,12 +40,17 @@ function IconFromUrl(url: string): React.ComponentType<{ className?: string }> { function getNavigation(username: string) { return [ { name: 'Home', href: '/home', icon: HomeIcon }, - { name: 'Activity', href: '/activity', icon: ChatAltIcon }, { name: 'Portfolio', href: `/${username}/bets`, icon: PresentationChartLineIcon, }, + { + name: 'Notifications', + href: `/notifications`, + icon: NotificationsIcon, + }, + { name: 'Charity', href: '/charity', icon: HeartIcon }, ] } diff --git a/web/components/notifications-icon.tsx b/web/components/notifications-icon.tsx new file mode 100644 index 00000000..95f7b721 --- /dev/null +++ b/web/components/notifications-icon.tsx @@ -0,0 +1,36 @@ +import { BellIcon } from '@heroicons/react/outline' +import clsx from 'clsx' +import { Row } from 'web/components/layout/row' +import { useEffect, useState } from 'react' +import { Notification } from 'common/notification' +import { listenForNotifications } from 'web/lib/firebase/notifications' +import { useUser } from 'web/hooks/use-user' +import { useRouter } from 'next/router' + +export default function NotificationsIcon(props: { className?: string }) { + const user = useUser() + const [notifications, setNotifications] = useState< + Notification[] | undefined + >() + const router = useRouter() + useEffect(() => { + if (router.pathname.endsWith('notifications')) return setNotifications([]) + }, [router.pathname]) + + useEffect(() => { + if (user) return listenForNotifications(user.id, setNotifications, true) + }, [user]) + + return ( + +

+ {notifications && notifications.length > 0 && ( +
+ {notifications.length} +
+ )} + +
+ + ) +} diff --git a/web/lib/firebase/notifications.ts b/web/lib/firebase/notifications.ts new file mode 100644 index 00000000..c4a30300 --- /dev/null +++ b/web/lib/firebase/notifications.ts @@ -0,0 +1,24 @@ +import { collection, query, where } from 'firebase/firestore' +import { Notification } from 'common/notification' +import { db } from 'web/lib/firebase/init' +import { getValues, listenForValues } from 'web/lib/firebase/utils' + +function getNotificationsQuery(userId: string, unseenOnly?: boolean) { + const notifsCollection = collection(db, `/users/${userId}/notifications`) + if (unseenOnly) return query(notifsCollection, where('isSeen', '==', false)) + return query(notifsCollection) +} + +export function listenForNotifications( + userId: string, + setNotifications: (notifs: Notification[]) => void, + unseenOnly?: boolean +) { + return listenForValues( + getNotificationsQuery(userId, unseenOnly), + (notifs) => { + notifs.sort((n1, n2) => n2.createdTime - n1.createdTime) + setNotifications(notifs) + } + ) +} diff --git a/web/pages/notifications.tsx b/web/pages/notifications.tsx new file mode 100644 index 00000000..b3c10a20 --- /dev/null +++ b/web/pages/notifications.tsx @@ -0,0 +1,187 @@ +import { Tabs } from 'web/components/layout/tabs' +import { useUser } from 'web/hooks/use-user' +import React, { useEffect, useState } from 'react' +import { Notification } from 'common/notification' +import { listenForNotifications } from 'web/lib/firebase/notifications' +import { Avatar } from 'web/components/avatar' +import { Row } from 'web/components/layout/row' +import { Page } from 'web/components/page' +import { Title } from 'web/components/title' +import { doc, updateDoc } from 'firebase/firestore' +import { db } from 'web/lib/firebase/init' +import { CopyLinkDateTimeComponent } from 'web/components/feed/copy-link-date-time' +import { Answer } from 'common/answer' +import { Comment } from 'web/lib/firebase/comments' +import { getValue } from 'web/lib/firebase/utils' +import Custom404 from 'web/pages/404' +import { UserLink } from 'web/components/user-page' +import { Linkify } from 'web/components/linkify' +import { User } from 'common/user' +import { useContract } from 'web/hooks/use-contract' + +export default function Notifications() { + const user = useUser() + const [notifications, setNotifications] = useState< + Notification[] | undefined + >() + + useEffect(() => { + if (user) return listenForNotifications(user.id, setNotifications) + }, [user]) + + if (!user) { + // TODO: return sign in page + return + } + + // TODO: use infinite scroll + return ( + +
+ + <Tabs + className={'pb-2 pt-1 '} + defaultIndex={0} + tabs={[ + { + title: 'All Notifications', + content: ( + <div className={''}> + {notifications && + notifications.map((notification) => ( + <Notification + currentUser={user} + notification={notification} + key={notification.id} + /> + ))} + </div> + ), + }, + ]} + /> + </div> + </Page> + ) +} + +function Notification(props: { + currentUser: User + notification: Notification +}) { + const { notification, currentUser } = props + const { + sourceType, + sourceContractId, + sourceId, + userId, + id, + sourceUserName, + sourceUserAvatarUrl, + reasonText, + sourceUserUsername, + createdTime, + } = notification + const [subText, setSubText] = useState<string>('') + const contract = useContract(sourceContractId ?? '') + + useEffect(() => { + if (!contract) return + if (sourceType === 'contract') { + setSubText(contract.question) + } + }, [contract, sourceType]) + + useEffect(() => { + if (!sourceContractId || !sourceId) return + + if (sourceType === 'answer') { + getValue<Answer>( + doc(db, `contracts/${sourceContractId}/answers/`, sourceId) + ).then((answer) => { + setSubText(answer?.text || '') + }) + } else if (sourceType === 'comment') { + getValue<Comment>( + doc(db, `contracts/${sourceContractId}/comments/`, sourceId) + ).then((comment) => { + setSubText(comment?.text || '') + }) + } + }, [sourceContractId, sourceId, sourceType]) + + useEffect(() => { + if (!contract || !notification || notification.isSeen) return + updateDoc(doc(db, `users/${currentUser.id}/notifications/`, id), { + ...notification, + isSeen: true, + viewTime: new Date(), + }) + }, [notification, contract, currentUser, id, userId]) + + function getSourceUrl(sourceId?: string) { + if (!contract) return '' + return `/${contract.creatorUsername}/${ + contract.slug + }#${getSourceIdForLinkComponent(sourceId ?? '')}` + } + + function getSourceIdForLinkComponent(sourceId: string) { + switch (sourceType) { + case 'answer': + return `answer-${sourceId}` + case 'comment': + return sourceId + case 'contract': + return '' + default: + return sourceId + } + } + + return ( + <div className={' bg-white px-4 pt-6'}> + <Row className={'items-center text-gray-500 sm:justify-start'}> + <Avatar + avatarUrl={sourceUserAvatarUrl} + size={'sm'} + className={'mr-2'} + username={sourceUserName} + /> + <div className={'flex-1'}> + <UserLink + name={sourceUserName || ''} + username={sourceUserUsername || ''} + className={'mr-0 flex-shrink-0'} + /> + <a href={getSourceUrl(sourceId)} className={'flex-1 pl-1'}> + {reasonText} + {contract && sourceId && ( + <div className={'inline'}> + <CopyLinkDateTimeComponent + contract={contract} + createdTime={createdTime} + elementId={getSourceIdForLinkComponent(sourceId)} + /> + </div> + )} + </a> + </div> + </Row> + <a href={getSourceUrl(sourceId)}> + <div className={'ml-4 mt-1'}> + {' '} + {contract && subText === contract.question ? ( + <div className={'text-md text-indigo-700 hover:underline'}> + {subText} + </div> + ) : ( + <Linkify text={subText} /> + )} + </div> + + <div className={'mt-6 border-b border-gray-300'} /> + </a> + </div> + ) +} From 59830579a9ae15f5a8aeccc2e8b05055a007ff9e Mon Sep 17 00:00:00 2001 From: Ian Philips <iansphilips@gmail.com> Date: Wed, 1 Jun 2022 07:54:48 -0600 Subject: [PATCH 21/24] Set timeout to reset the free market banner (#367) * wip - trigger recheck when past time * wip - trigger recheck when past time * Reset logic * Interval=>timeout --- web/components/nav/sidebar.tsx | 2 +- web/hooks/use-has-created-contract-today.ts | 22 +++++++++++++-------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/web/components/nav/sidebar.tsx b/web/components/nav/sidebar.tsx index 1fd5743f..70396676 100644 --- a/web/components/nav/sidebar.tsx +++ b/web/components/nav/sidebar.tsx @@ -160,7 +160,7 @@ export default function Sidebar(props: { className?: string }) { const currentPage = router.pathname const [countdown, setCountdown] = useState('...') useEffect(() => { - const nextUtcResetTime = getUtcFreeMarketResetTime(false) + const nextUtcResetTime = getUtcFreeMarketResetTime({ previousTime: false }) const interval = setInterval(() => { const now = new Date().getTime() const timeUntil = nextUtcResetTime - now diff --git a/web/hooks/use-has-created-contract-today.ts b/web/hooks/use-has-created-contract-today.ts index 8f05287c..eac2c78e 100644 --- a/web/hooks/use-has-created-contract-today.ts +++ b/web/hooks/use-has-created-contract-today.ts @@ -5,9 +5,8 @@ import dayjs from 'dayjs' import utc from 'dayjs/plugin/utc' dayjs.extend(utc) -let sessionCreatedContractToday = true - -export function getUtcFreeMarketResetTime(previous: boolean) { +export function getUtcFreeMarketResetTime(options: { previousTime: boolean }) { + const { previousTime } = options const localTimeNow = new Date() const utc4pmToday = dayjs() .utc() @@ -18,7 +17,7 @@ export function getUtcFreeMarketResetTime(previous: boolean) { // if it's after 4pm UTC today if (localTimeNow.getTime() > utc4pmToday.valueOf()) { - return previous + return previousTime ? // Return it as it is utc4pmToday.valueOf() : // Or add 24 hours to get the next 4pm UTC time: @@ -26,7 +25,7 @@ export function getUtcFreeMarketResetTime(previous: boolean) { } // 4pm UTC today is coming up - return previous + return previousTime ? // Subtract 24 hours to get the previous 4pm UTC time: utc4pmToday.valueOf() - 24 * 60 * 60 * 1000 : // Return it as it is @@ -39,9 +38,12 @@ export const useHasCreatedContractToday = (user: User | null | undefined) => { >('loading') useEffect(() => { + const nextUtcResetTime = getUtcFreeMarketResetTime({ previousTime: false }) setHasCreatedContractToday('loading') - const previousResetTime = getUtcFreeMarketResetTime(true) async function listUserContractsForToday() { + const previousResetTime = getUtcFreeMarketResetTime({ + previousTime: true, + }) if (!user) return const contracts = await listContracts(user.id) @@ -49,11 +51,15 @@ export const useHasCreatedContractToday = (user: User | null | undefined) => { (contract) => contract.createdTime > previousResetTime ) - sessionCreatedContractToday = todayContracts.length > 0 - setHasCreatedContractToday(sessionCreatedContractToday) + setHasCreatedContractToday(todayContracts.length > 0) } + const timeoutUntilNextFreeMarket = setTimeout(() => { + setHasCreatedContractToday(false) + }, nextUtcResetTime - Date.now()) + listUserContractsForToday() + return () => clearTimeout(timeoutUntilNextFreeMarket) }, [user]) return hasCreatedContractToday From 2c4aa6152ead6a8b5022e2c1579ff9055aadccea Mon Sep 17 00:00:00 2001 From: James Grugett <jahooma@gmail.com> Date: Wed, 1 Jun 2022 11:28:47 -0500 Subject: [PATCH 22/24] Hide sell buttons in other people's profiles --- web/components/bets-list.tsx | 87 +++++++++++++++-------- web/components/contract/contract-tabs.tsx | 7 +- 2 files changed, 60 insertions(+), 34 deletions(-) diff --git a/web/components/bets-list.tsx b/web/components/bets-list.tsx index 9ccaf204..2d3380ca 100644 --- a/web/components/bets-list.tsx +++ b/web/components/bets-list.tsx @@ -56,6 +56,10 @@ type BetFilter = 'open' | 'sold' | 'closed' | 'resolved' | 'all' export function BetsList(props: { user: User; hideBetsBefore?: number }) { const { user, hideBetsBefore } = props + + const signedInUser = useUser() + const isYourBets = user.id === signedInUser?.id + const allBets = useUserBets(user.id, { includeRedemptions: true }) // Hide bets before 06-01-2022 if this isn't your own profile // NOTE: This means public profits also begin on 06-01-2022 as well. @@ -218,11 +222,12 @@ export function BetsList(props: { user: User; hideBetsBefore?: number }) { <NoBets /> ) : ( displayedContracts.map((contract) => ( - <MyContractBets + <ContractBets key={contract.id} contract={contract} bets={contractBets[contract.id] ?? []} metric={sort === 'profit' ? 'profit' : 'value'} + isYourBets={isYourBets} /> )) )} @@ -242,12 +247,13 @@ const NoBets = () => { ) } -function MyContractBets(props: { +function ContractBets(props: { contract: Contract bets: Bet[] metric: 'profit' | 'value' + isYourBets: boolean }) { - const { bets, contract, metric } = props + const { bets, contract, metric, isYourBets } = props const { resolution, outcomeType } = contract const resolutionValue = (contract as NumericContract).resolutionValue @@ -337,26 +343,32 @@ function MyContractBets(props: { > <Spacer h={8} /> - <MyBetsSummary + <BetsSummary className="mr-5 flex-1 sm:mr-8" contract={contract} bets={bets} + isYourBets={isYourBets} /> <Spacer h={8} /> - <ContractBetsTable contract={contract} bets={bets} /> + <ContractBetsTable + contract={contract} + bets={bets} + isYourBets={isYourBets} + /> </div> </div> ) } -export function MyBetsSummary(props: { +export function BetsSummary(props: { contract: Contract bets: Bet[] + isYourBets: boolean className?: string }) { - const { contract, className } = props + const { contract, isYourBets, className } = props const { resolution, outcomeType, mechanism } = contract const isBinary = outcomeType === 'BINARY' const isCpmm = mechanism === 'cpmm-1' @@ -432,26 +444,31 @@ export function MyBetsSummary(props: { <div className="whitespace-nowrap text-sm text-gray-500">Profit</div> <div className="whitespace-nowrap"> {formatMoney(profit)} <ProfitBadge profitPercent={profitPercent} /> - {isCpmm && isBinary && !resolution && invested > 0 && user && ( - <> - <button - className="btn btn-sm ml-2" - onClick={() => setShowSellModal(true)} - > - Sell - </button> - {showSellModal && ( - <SellSharesModal - contract={contract} - user={user} - userBets={bets} - shares={totalShares.YES || totalShares.NO} - sharesOutcome={totalShares.YES ? 'YES' : 'NO'} - setOpen={setShowSellModal} - /> - )} - </> - )} + {isYourBets && + isCpmm && + isBinary && + !resolution && + invested > 0 && + user && ( + <> + <button + className="btn btn-sm ml-2" + onClick={() => setShowSellModal(true)} + > + Sell + </button> + {showSellModal && ( + <SellSharesModal + contract={contract} + user={user} + userBets={bets} + shares={totalShares.YES || totalShares.NO} + sharesOutcome={totalShares.YES ? 'YES' : 'NO'} + setOpen={setShowSellModal} + /> + )} + </> + )} </div> </Col> </Row> @@ -462,9 +479,10 @@ export function MyBetsSummary(props: { export function ContractBetsTable(props: { contract: Contract bets: Bet[] + isYourBets: boolean className?: string }) { - const { contract, className } = props + const { contract, className, isYourBets } = props const bets = props.bets.filter((b) => !b.isAnte) @@ -533,6 +551,7 @@ export function ContractBetsTable(props: { bet={bet} saleBet={salesDict[bet.id]} contract={contract} + isYourBet={isYourBets} /> ))} </tbody> @@ -541,8 +560,13 @@ export function ContractBetsTable(props: { ) } -function BetRow(props: { bet: Bet; contract: Contract; saleBet?: Bet }) { - const { bet, saleBet, contract } = props +function BetRow(props: { + bet: Bet + contract: Contract + saleBet?: Bet + isYourBet: boolean +}) { + const { bet, saleBet, contract, isYourBet } = props const { amount, outcome, @@ -583,7 +607,8 @@ function BetRow(props: { bet: Bet; contract: Contract; saleBet?: Bet }) { return ( <tr> <td className="text-neutral"> - {!isCPMM && + {isYourBet && + !isCPMM && !isResolved && !isClosed && !isSold && diff --git a/web/components/contract/contract-tabs.tsx b/web/components/contract/contract-tabs.tsx index 887a3200..4384b390 100644 --- a/web/components/contract/contract-tabs.tsx +++ b/web/components/contract/contract-tabs.tsx @@ -4,7 +4,7 @@ import { Comment } from 'web/lib/firebase/comments' import { User } from 'common/user' import { useBets } from 'web/hooks/use-bets' import { ContractActivity } from '../feed/contract-activity' -import { ContractBetsTable, MyBetsSummary } from '../bets-list' +import { ContractBetsTable, BetsSummary } from '../bets-list' import { Spacer } from '../layout/spacer' import { Tabs } from '../layout/tabs' import { Col } from '../layout/col' @@ -67,13 +67,14 @@ export function ContractTabs(props: { const yourTrades = ( <div> - <MyBetsSummary + <BetsSummary className="px-2" contract={contract} bets={userBets ?? []} + isYourBets /> <Spacer h={6} /> - <ContractBetsTable contract={contract} bets={userBets ?? []} /> + <ContractBetsTable contract={contract} bets={userBets ?? []} isYourBets /> <Spacer h={12} /> </div> ) From 29a09ad276288f542c55cb8d5f84d3a83643f4b7 Mon Sep 17 00:00:00 2001 From: TrueMilli <61841994+TrueMilli@users.noreply.github.com> Date: Wed, 1 Jun 2022 19:20:45 +0200 Subject: [PATCH 23/24] Made an actual comment (#384) --- web/pages/embed/[username]/[contractSlug].tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/pages/embed/[username]/[contractSlug].tsx b/web/pages/embed/[username]/[contractSlug].tsx index 57b6ab45..9220e5cb 100644 --- a/web/pages/embed/[username]/[contractSlug].tsx +++ b/web/pages/embed/[username]/[contractSlug].tsx @@ -110,8 +110,8 @@ function ContractEmbed(props: { contract: Contract; bets: Bet[] }) { {isBinary && ( <Row className="items-center gap-4"> - // this fails typechecking, but it doesn't explode because we will - never + {/* this fails typechecking, but it doesn't explode because we will + never */} <BetRow contract={contract as any} betPanelClassName="scale-75" /> <BinaryResolutionOrChance contract={contract} /> </Row> From 536ef180cef042397b9cccce3b005a83b2699aa9 Mon Sep 17 00:00:00 2001 From: Jack <96740415+jackc271@users.noreply.github.com> Date: Wed, 1 Jun 2022 10:25:37 -0700 Subject: [PATCH 24/24] Add charities: EA Funds and Founders Pledge funds (#382) Co-authored-by: jackc271 <jackc2718@gmail.com> --- common/charity.ts | 79 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 77 insertions(+), 2 deletions(-) diff --git a/common/charity.ts b/common/charity.ts index 491e61aa..bf93cbfd 100644 --- a/common/charity.ts +++ b/common/charity.ts @@ -47,8 +47,10 @@ export const charities: Charity[] = [ website: 'https://funds.effectivealtruism.org/funds/far-future', photo: 'https://i.imgur.com/C2qka9g.png', preview: - 'Positively influence the long-term trajectory of civilization by making grants that address global catastrophic risks.', - description: `The Fund has a broad remit to make grants that promote, implement and advocate for longtermist ideas. Many of our grants aim to address potential risks from advanced artificial intelligence and to build infrastructure and advocate for longtermist projects. However, we welcome applications related to long-term institutional reform or other global catastrophic risks (e.g., pandemics or nuclear conflict). + 'The Long-Term Future Fund aims to improve the long-term trajectory of civilization by making grants that address global catastrophic risks.', + description: `The Long-Term Future Fund aims to positively influence the long-term trajectory of civilization by making grants that address global catastrophic risks, especially potential risks from advanced artificial intelligence and pandemics. In addition, we seek to promote, implement, and advocate for longtermist ideas, and to otherwise increase the likelihood that future generations will flourish. + + The Fund has a broad remit to make grants that promote, implement and advocate for longtermist ideas. Many of our grants aim to address potential risks from advanced artificial intelligence and to build infrastructure and advocate for longtermist projects. However, we welcome applications related to long-term institutional reform or other global catastrophic risks (e.g., pandemics or nuclear conflict). We intend to support: - Projects that directly contribute to reducing existential risks through technical research, policy analysis, advocacy, and/or demonstration projects @@ -56,6 +58,53 @@ export const charities: Charity[] = [ - Promoting long-term thinking`, tags: ['Featured'] as CharityTag[], }, + { + name: 'Global Health and Development Fund', + website: 'https://funds.effectivealtruism.org/funds/global-development', + photo: 'https://i.imgur.com/C2qka9g.png', + preview: + "The Global Health and Development Fund aims to improve people's lives, typically in the poorest regions of the world where the need for healthcare and economic empowerment is greatest.", + description: `The Global Health and Development Fund recommends grants with the aim of improving people's lives, typically in the poorest regions of the world where the need for healthcare and economic empowerment is greatest. This will be achieved primarily by supporting projects that: + + - Directly provide healthcare, or preventive measures that will improve health, well-being, or life expectancy + - Directly provide services that raise incomes or otherwise improve economic conditions + - Provide assistance to governments in the design and implementation of effective policies + + In addition, the Global Health and Development Fund has a broad remit, and may fund other activities whose ultimate purpose is to serve people living in the poorest regions of the world, for example by raising additional funds (e.g. One for the World) or by exploring novel financing arrangements (e.g. Instiglio). + + The Fund manager recommends grants to GiveWell top charities as a baseline, but will recommend higher-risk grants they believe to be more effective (in expectation) than GiveWell top charities. As such, the fund makes grants with a variety of different risk profiles.`, + }, + { + name: 'Animal Welfare Fund', + website: 'https://funds.effectivealtruism.org/funds/animal-welfare', + photo: 'https://i.imgur.com/C2qka9g.png', + preview: + 'The Animal Welfare Fund aims to effectively improve the well-being of nonhuman animals.', + description: `The Animal Welfare Fund aims to effectively improve the well-being of nonhuman animals, by making grants that focus on one or more of the following: + + - Relatively neglected geographic regions or groups of animals + - Promising research into animal advocacy or animal well-being + - Activities that could make it easier to help animals in the future + - Otherwise best-in-class opportunities + + The Fund focuses on projects that primarily address farmed animals, as well as projects that could affect other large populations of nonhuman animals. Some examples of projects that the Fund could support: + + - Supporting farmed animal advocacy in Asia + - Researching ways to improve the welfare of farmed fish + - Promoting alternative proteins in order to reduce demand for animal products + - Advocating against the use of some cruel practice within the industrial agriculture system + - Growing the field of welfare biology in order to improve our understanding of different ways to address wild animal suffering`, + }, + { + name: 'Effective Altruism Infrastructure Fund', + website: 'https://funds.effectivealtruism.org/funds/ea-community', + photo: 'https://i.imgur.com/C2qka9g.png', + preview: + 'The Effective Altruism Infrastructure Fund aims to increase the impact of projects that use the principles of effective altruism.', + description: `The Effective Altruism Infrastructure Fund (EA Infrastructure Fund) recommends grants that aim to improve the work of projects using principles of effective altruism, by increasing their access to talent, capital, and knowledge. + + The EA Infrastructure Fund has historically attempted to make strategic grants to incubate and grow projects that attempt to use reason and evidence to do as much good as possible. These include meta-charities that fundraise for highly effective charities doing direct work on important problems, research organizations that improve our understanding of how to do good more effectively, and projects that promote principles of effective altruism in contexts like academia.`, + }, { name: 'Nonlinear', website: 'https://www.nonlinear.org/', @@ -104,6 +153,32 @@ export const charities: Charity[] = [ - Each charity’s plans for additional funding - The cost-effectiveness of each funding gap`, }, + { + name: "Founder's Pledge Climate Change Fund", + website: 'https://founderspledge.com/funds/climate-change-fund', + photo: 'https://i.imgur.com/ZAhzHu4.png', + preview: + 'The Climate Change Fund aims to sustainably reach net-zero emissions globally, while still allowing growth to free millions from energy poverty.', + description: `The Climate Change Fund aims to sustainably reach net-zero emissions globally. + + Current levels of emissions are contributing to millions of deaths annually from air pollution and causing irrevocable damage to our planet. In addition, millions worldwide do not have access to modern energy technology, severely hampering development goals. + + This Fund is committed to finding and funding sustainable solutions to the emissions crisis that still allow growth, freeing millions from the prison of energy poverty. + + The Fund is a philanthropic co-funding vehicle that does not provide investment returns.`, + }, + { + name: "Founder's Pledge Patient Philanthropy Fund", + website: 'https://founderspledge.com/funds/patient-philanthropy-fund', + photo: 'https://i.imgur.com/ZAhzHu4.png', + preview: + 'The Patient Philanthropy Project aims to safeguard and benefit the long-term future of humanity', + description: `The Patient Philanthropy Project focuses on how we can collectively grow our resources to support the long-term flourishing of humanity. It addresses a crucial gap: as a society, we spend much too little on safeguarding and benefiting future generations. In fact, we spend more money on ice cream each year than we do on preventing our own extinction. However, people in the future - who do not have a voice in their future survival or environment - matter. Lots of them may yet come into existence and we have the ability to positively affect their lives now, if only by making sure we avoid major catastrophes that could destroy our common future. + + Housed within the Project is the Patient Philanthropy Fund, a philanthropic co-funding vehicle which invests to give and ensures capital is at the ready when extraordinary opportunities to safeguard and improve the long-term future arise. + + The Fund’s patient approach means that we aim to identify the point in time when the highest-impact opportunities are available, which may be years, decades, or even centuries ahead.`, + }, { name: 'ARC', website: 'https://alignment.org/',