From 3625dd31315aef1366da08a98bdca250ed576903 Mon Sep 17 00:00:00 2001 From: gschussler Date: Tue, 18 Jul 2023 20:04:16 -0500 Subject: [PATCH 01/29] set up service worker auth with Google API --- package-lock.json | 38 ++++++++++++++++++---------- package.json | 3 ++- server/googleapi_postgres_create.sql | 2 +- server/models/sqlModels.js | 2 +- 4 files changed, 29 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 77b3ee9..23e122c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "1.0.0", "license": "ISC", "dependencies": { + "@googleapis/docs": "^2.0.1", "axios": "^1.4.0", "child_process": "^1.0.2", "dotenv": "^16.3.1", @@ -20,7 +21,7 @@ "pg-format": "^1.0.4", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-router-dom": "^6.14.1" + "react-router-dom": "^6.14.2" }, "devDependencies": { "@babel/core": "^7.22.9", @@ -1912,6 +1913,17 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@googleapis/docs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@googleapis/docs/-/docs-2.0.1.tgz", + "integrity": "sha512-ujJT/9uTwtGsKQ6QVJmDNhc4TYqsekM0ME7uX5tJbqgeeNxCq73SPpDzYsZsMpsWonF5nF0v+DYPrNXHFJ7W8A==", + "dependencies": { + "googleapis-common": "^6.0.3" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", @@ -2054,9 +2066,9 @@ } }, "node_modules/@remix-run/router": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.7.1.tgz", - "integrity": "sha512-bgVQM4ZJ2u2CM8k1ey70o1ePFXsEzYVZoWghh6WjM8p59jQ7HxzbHW4SbnWFG7V9ig9chLawQxDTZ3xzOF8MkQ==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.7.2.tgz", + "integrity": "sha512-7Lcn7IqGMV+vizMPoEl5F0XDshcdDYtMI6uJLQdQz5CfZAwy3vvGKYSUk789qndt5dEC4HfSjviSYlSoHGL2+A==", "engines": { "node": ">=14" } @@ -6297,11 +6309,11 @@ } }, "node_modules/react-router": { - "version": "6.14.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.14.1.tgz", - "integrity": "sha512-U4PfgvG55LdvbQjg5Y9QRWyVxIdO1LlpYT7x+tMAxd9/vmiPuJhIwdxZuIQLN/9e3O4KFDHYfR9gzGeYMasW8g==", + "version": "6.14.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.14.2.tgz", + "integrity": "sha512-09Zss2dE2z+T1D03IheqAFtK4UzQyX8nFPWx6jkwdYzGLXd5ie06A6ezS2fO6zJfEb/SpG6UocN2O1hfD+2urQ==", "dependencies": { - "@remix-run/router": "1.7.1" + "@remix-run/router": "1.7.2" }, "engines": { "node": ">=14" @@ -6311,12 +6323,12 @@ } }, "node_modules/react-router-dom": { - "version": "6.14.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.14.1.tgz", - "integrity": "sha512-ssF6M5UkQjHK70fgukCJyjlda0Dgono2QGwqGvuk7D+EDGHdacEN3Yke2LTMjkrpHuFwBfDFsEjGVXBDmL+bWw==", + "version": "6.14.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.14.2.tgz", + "integrity": "sha512-5pWX0jdKR48XFZBuJqHosX3AAHjRAzygouMTyimnBPOLdY3WjzUSKhus2FVMihUFWzeLebDgr4r8UeQFAct7Bg==", "dependencies": { - "@remix-run/router": "1.7.1", - "react-router": "6.14.1" + "@remix-run/router": "1.7.2", + "react-router": "6.14.2" }, "engines": { "node": ">=14" diff --git a/package.json b/package.json index b654b4c..5e31de6 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "webpack-dev-server": "^4.15.1" }, "dependencies": { + "@googleapis/docs": "^2.0.1", "axios": "^1.4.0", "child_process": "^1.0.2", "dotenv": "^16.3.1", @@ -39,6 +40,6 @@ "pg-format": "^1.0.4", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-router-dom": "^6.14.1" + "react-router-dom": "^6.14.2" } } diff --git a/server/googleapi_postgres_create.sql b/server/googleapi_postgres_create.sql index c37941f..75940c5 100644 --- a/server/googleapi_postgres_create.sql +++ b/server/googleapi_postgres_create.sql @@ -40,7 +40,7 @@ SET row_security = off; -- result.push(record); -- } -- return result; -} +-- } --Spreadsheets diff --git a/server/models/sqlModels.js b/server/models/sqlModels.js index 0ce317d..81d4418 100644 --- a/server/models/sqlModels.js +++ b/server/models/sqlModels.js @@ -4,7 +4,7 @@ const { Pool } = require('pg'); // static model URI for testing // (see sqlController.js for dynamic db creation) -const PG_URI = 'postgres://lqibazmo:7utKiFijQkqYrjLCgbbsDtUrgSZC043n@stampy.db.elephantsql.com/lqibazmo'; +const PG_URI = 'postgres://qveexumj:2o4MNak11B7N78RFhwwC3ozXVyTvWqHQ@mahmud.db.elephantsql.com/qveexumj'; const pool = new Pool({ connectionString: PG_URI From 203185bccd102cd83ccab1128190781fc14e6f79 Mon Sep 17 00:00:00 2001 From: gschussler Date: Tue, 18 Jul 2023 20:18:40 -0500 Subject: [PATCH 02/29] fixed leaked postgres URI lol --- server/models/sqlModels.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/models/sqlModels.js b/server/models/sqlModels.js index 81d4418..78c4dac 100644 --- a/server/models/sqlModels.js +++ b/server/models/sqlModels.js @@ -4,7 +4,7 @@ const { Pool } = require('pg'); // static model URI for testing // (see sqlController.js for dynamic db creation) -const PG_URI = 'postgres://qveexumj:2o4MNak11B7N78RFhwwC3ozXVyTvWqHQ@mahmud.db.elephantsql.com/qveexumj'; +const PG_URI = process.env.POSTGRES_URI; const pool = new Pool({ connectionString: PG_URI From 35bd493b4f3921be4f7c60d372454fb7e8d8e052 Mon Sep 17 00:00:00 2001 From: gschussler Date: Tue, 18 Jul 2023 20:24:46 -0500 Subject: [PATCH 03/29] added to gitignore --- .env | 3 ++- .gitignore | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.env b/.env index 2fc5c92..c6453ba 100644 --- a/.env +++ b/.env @@ -1,2 +1,3 @@ # Path to service account credentials -GOOGLE_APPLICATION_CREDENTIALS="./server/credentials.json" \ No newline at end of file +GOOGLE_APPLICATION_CREDENTIALS="./server/credentials.json" +POSTGRES_URI='postgres://qveexumj:2o4MNak11B7N78RFhwwC3ozXVyTvWqHQ@mahmud.db.elephantsql.com/qveexumj' \ No newline at end of file diff --git a/.gitignore b/.gitignore index 305434d..f9257dc 100644 --- a/.gitignore +++ b/.gitignore @@ -129,3 +129,6 @@ dist .yarn/build-state.yml .yarn/install-state.gz .pnp.* + +# environment variables +.env From 43c396f8d01d20830da2204f42477c75868ad4ab Mon Sep 17 00:00:00 2001 From: gschussler Date: Tue, 18 Jul 2023 20:32:26 -0500 Subject: [PATCH 04/29] cleaned up files to remove env --- .env | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 .env diff --git a/.env b/.env deleted file mode 100644 index c6453ba..0000000 --- a/.env +++ /dev/null @@ -1,3 +0,0 @@ -# Path to service account credentials -GOOGLE_APPLICATION_CREDENTIALS="./server/credentials.json" -POSTGRES_URI='postgres://qveexumj:2o4MNak11B7N78RFhwwC3ozXVyTvWqHQ@mahmud.db.elephantsql.com/qveexumj' \ No newline at end of file From ae63267d130195c2f5e62a6739fdc6f5e9f7d98a Mon Sep 17 00:00:00 2001 From: gschussler Date: Tue, 18 Jul 2023 20:33:15 -0500 Subject: [PATCH 05/29] repaired gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index f9257dc..be43729 100644 --- a/.gitignore +++ b/.gitignore @@ -131,4 +131,4 @@ dist .pnp.* # environment variables -.env +.env \ No newline at end of file From 9212de194ba2678d9bda4af9d6437f46d9850721 Mon Sep 17 00:00:00 2001 From: Alexandra Ashcraft Date: Tue, 18 Jul 2023 19:59:52 -0700 Subject: [PATCH 06/29] tues night --- .env | 7 +- HSDC.png | Bin 0 -> 371091 bytes client/components/AuthContainer.js | 13 + package-lock.json | 468 +++++++++++++++++++++++++++-- package.json | 4 +- server/routes/authRoute.js | 43 +++ 6 files changed, 503 insertions(+), 32 deletions(-) create mode 100644 HSDC.png create mode 100644 client/components/AuthContainer.js create mode 100644 server/routes/authRoute.js diff --git a/.env b/.env index 2fc5c92..0bfee53 100644 --- a/.env +++ b/.env @@ -1,2 +1,7 @@ # Path to service account credentials -GOOGLE_APPLICATION_CREDENTIALS="./server/credentials.json" \ No newline at end of file +GOOGLE_APPLICATION_CREDENTIALS="./server/credentials.json", +GOOGLE_CLIENT_ID= "726458599776-5igokrklbpevk563t8amvd3pcr8cc9b5.apps.googleusercontent.com", +GOOGLE_CLIENT_SECRET="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" + + +{"web":{"client_id":"726458599776-5igokrklbpevk563t8amvd3pcr8cc9b5.apps.googleusercontent.com","project_id":"ctri-17-iteration-hsdc","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"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","redirect_uris":["https://localhost:3000","https://localhost:8080"],"javascript_origins":["https://localhost:3000","https://localhost:8080"]}} \ No newline at end of file diff --git a/HSDC.png b/HSDC.png new file mode 100644 index 0000000000000000000000000000000000000000..6c717667056146fe93035e066fd62ed576fa0af7 GIT binary patch literal 371091 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ℑ=mO{6^ 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 z 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

+ ) + +}; \ No newline at end of file diff --git a/client/components/Signin.js b/client/components/Signin.js new file mode 100644 index 0000000..6abe0bd --- /dev/null +++ b/client/components/Signin.js @@ -0,0 +1,26 @@ +import React, {useEffect, useState} from 'react'; + +export default function Signin(){ + const [url, setUrl] = useState(''); + const [fetched, setFetched] = useState(false); + + //request to server to set a random state and store that state on a cookie. server will generate the correct url for the client to be redirected via the sign-in button + // ! client must go to link themseleves. you cannot make a request to the server to redirect them there otherwise will get cors error + + const redirectUrl = async () => { + try { + + } catch (error) { + + } + } + + if (fetched === false){ + setFetched(true); + } + + useEffect(()=>{ + redirectUrl() + }, [fetched]); + +} diff --git a/server/controllers/authController.js b/server/controllers/authController.js new file mode 100644 index 0000000..4703e64 --- /dev/null +++ b/server/controllers/authController.js @@ -0,0 +1,150 @@ +const express = require('express'); // Express web server framework +const request = require('request'); // "Request" library +const cors = require('cors'); +const querystring = require('querystring'); +const cookieParser = require('cookie-parser'); + + +//from step one, initialize auth which will establish the client id and scope... this is the initial scopes?? +authController.initializeAuth = (req, res, next) => +{ + try { + const state = generateRandomString(16); + // store state on a cookie for spotify oauth communication with server + res.cookie(stateKey, state); + console.log('cookie stateKey: ', state); + + // object sent as res.query to spotify so your application can request authorization + const scope = 'user-read-private user-read-email'; + + //creates the url for the front end to handle + res.locals.reqAuthentication = querystring.stringify({ + response_type: 'code', + client_id: client_id, + scope: scope, + redirect_uri: redirect_uri, + state: state + }) + console.log('initialize auth url complete'); + return next(); + } catch (err) { + return next({ + log: 'error in authController.initializeAuth: ' + err, + message: 'An error occured while redirecting to Spotify' + }) + } + +}; + + +// check spotify's response for state parameter +authController.checkState = (req, res, next) => { + // the state parameter will tell us if the user was authenticated by spotify, if they did not choose to redirect to spotify, or if there was an error + const storedState = req.cookies ? req.cookies[stateKey] : null + + try { + + const state = req.query.state || null; + console.log('state returned from spotify: ', state); + + if (state === null || state !== storedState) { + // user choose not to redirect to spotify or there was an error + + //! spotify's example: + /* + res.redirect('/#' + + querystring.stringify({ + error: 'state_mismatch' + })); + */ + + return next({ + log: 'spotify authentication: state mismatch. No error.', + message: 'Error authenticating user. Please try again.' + }) + + } else { + // spotify authenticated user credentials + return next(); + } + } catch (err) { + return next({ + log: 'error in authController.checkState: ' + err, + message: 'Error authenticating user. Please try again.' + }) + } + +} + +// ! bad practice - making a post request in middleware +// need to update the structure of this middleware and add the post request to router, but just checking if functional for now based off spotify examples +// request access tokens from spotify +authController.getTokens = (req, res, next) => { + const code = req.query.code || null; + console.log('CODE: ', code); + // clear statekey that was stored on cookie as it's no longer needed. Will be using access and refresh token to communicate with spotify api + res.clearCookie(stateKey); + const authOptions = { + url: 'https://accounts.spotify.com/api/token', + form: { + code: code, + redirect_uri: redirect_uri, + grant_type: 'authorization_code' + }, + headers: { + 'Authorization': 'Basic ' + (new Buffer(client_id + ':' + client_secret).toString('base64')) + }, + json: true + }; + + // request refresh and access tokens from spotify + request.post(authOptions, function(error, response, body) { + if (!error && response.statusCode === 200) { + console.log('body: ', body); + // Object.values(body)[0] + // Object.values(body)[3] + res.locals.accessToken = body.access_token; + res.locals.refreshToken = body.refresh_token; + + res.locals.options = { + url: 'https://api.spotify.com/v1/me', + headers: { 'Authorization': 'Bearer ' + res.locals.refreshToken }, + json: true + }; + + // TODO: STORE ACCESS TOKENS IN DATABASE + + return next(); + + // ! spotify example + /* + // use the access token to access the Spotify Web API + request.get(options, function(error, response, body) { + console.log(body); + }); + */ + + // ! spotify example + /* + // we can also pass the token to the browser to make requests from there + res.redirect('/#' + + querystring.stringify({ + access_token: access_token, + refresh_token: refresh_token + })); + */ + } else { + return next({ + log: 'spotify authentication: invalid token' + }); + + } + }); + + + +} + + + +module.exports = authController; \ No newline at end of file diff --git a/server/routes/authRoute.js b/server/routes/authRoute.js index 8e1f5c7..da3839e 100644 --- a/server/routes/authRoute.js +++ b/server/routes/authRoute.js @@ -5,6 +5,36 @@ const dotenv = require('dotenv').config(); const authRouter = express.Router(); + + +//step 1 the initial get request from client to server +// router.get('/', authController.initializeAuth, (req, res) => { +// console.log('reached authentication router.get redirect'); +// //returns the link to the front end with the client id , scope, redirect uri, and state +// return res.status(200).json(res.locals.reqAuthentication); +// }); + + + +// router.get( +// '/callback', +// authController.checkState, +// //callback route which will verify that that state is not null and the continues, +// authController.getTokens, +// //callback route which will verify that that state is not null and the continues, +// (req, res) => { +// console.log('acces token: ', res.locals.accessToken); +// console.log('refresh token: ', res.locals.refreshToken); +// console.log( +// 'options to pass into spotify api requests: ', +// res.locals.options +// ); +// return res.status(200).json(res.locals.accessToken); +// } +// ); + + + const oauth2Client = new google.auth.OAuth2( GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, diff --git a/server/server.js b/server/server.js index 6eb1d62..f94edea 100644 --- a/server/server.js +++ b/server/server.js @@ -9,6 +9,12 @@ const { google } = require('googleapis'); const sheets = google.sheets('v4'); const { GoogleAuth } = require('google-auth-library'); +// initially request user authentication from Spotify +// router.get('/', authController.initializeAuth, (req, res) => { +// console.log('reached authentication router.get redirect'); +// return res.status(200).json(res.locals.reqAuthentication); +// }); + // AUTHORIZATION BLOCK let authCache; // holds auth client after the first time server authenticates @@ -17,28 +23,28 @@ let authCache; // holds auth client after the first time server authenticates // Make sure you place your service account credentials in a credentials.json file // in the /server directory. This file is ignored by git. async function authorize(req, res, next) { - if (authCache) { - console.log('cached authclient in res.locals.auth'); - res.locals.auth = authCache; - return next(); - } - console.log('Starting ADC authorization...'); - try { - console.log('creating auth...'); - const auth = new GoogleAuth({ - scopes: ['https://www.googleapis.com/auth/spreadsheets'], - }); - console.log('auth created. creating auth client...'); - const authClient = await auth.getClient(); - console.log('auth client created. Storing in res.locals.auth'); - res.locals.auth = authClient; - authCache = authClient; - return next(); - } catch (err) { - err.log = - 'Unable to authorize with Application Default Credentials. Check credentials.json, and verify correct permissions in google cloud console.'; - return next(err); - } + if (authCache) { + console.log('cached authclient in res.locals.auth'); + res.locals.auth = authCache; + return next(); + } + console.log('Starting ADC authorization...'); + try { + console.log('creating auth...'); + const auth = new GoogleAuth({ + scopes: ['https://www.googleapis.com/auth/spreadsheets'], + }); + console.log('auth created. creating auth client...'); + const authClient = await auth.getClient(); + console.log('auth client created. Storing in res.locals.auth'); + res.locals.auth = authClient; + authCache = authClient; + return next(); + } catch (err) { + err.log = + 'Unable to authorize with Application Default Credentials. Check credentials.json, and verify correct permissions in google cloud console.'; + return next(err); + } } const PORT = 1111; @@ -56,17 +62,17 @@ app.use('*', (req, res) => res.sendStatus(404)); //global error handler app.use((err, req, res, next) => { - const defaultErr = { - log: 'Express error handler caught unknown middleware error', - status: 500, - message: { err: 'An error occurred' }, - }; - const errorObj = Object.assign({}, defaultErr, err); - console.log(errorObj.log); - return res.status(errorObj.status).json(errorObj.message); + const defaultErr = { + log: 'Express error handler caught unknown middleware error', + status: 500, + message: { err: 'An error occurred' }, + }; + const errorObj = Object.assign({}, defaultErr, err); + console.log(errorObj.log); + return res.status(errorObj.status).json(errorObj.message); }); app.listen(PORT, async () => { - console.log(`Server listening on port: ${PORT}...`); + console.log(`Server listening on port: ${PORT}...`); }); module.exports = app; From 2fae8d006e8b5797995432665bb415088636a586 Mon Sep 17 00:00:00 2001 From: gschussler Date: Wed, 19 Jul 2023 14:55:03 -0500 Subject: [PATCH 12/29] made progress testing endpoints --- __tests__/routes.test.js | 33 +- package-lock.json | 11797 +++++++++++++++++++++++++++++++++++++ package.json | 5 +- server/server.js | 4 +- 4 files changed, 11829 insertions(+), 10 deletions(-) diff --git a/__tests__/routes.test.js b/__tests__/routes.test.js index 0a7f57e..8baf9d6 100644 --- a/__tests__/routes.test.js +++ b/__tests__/routes.test.js @@ -1,8 +1,31 @@ // import routers/endpoints from files throughout the project to test them here -// also need supertest -const supertest = require('supertest'); -const server = require('../server/server.js'); +// supertest will be a required for http request testing +const request = require('supertest'); +const app = require('../server/server'); -describe("server on startup", () => { - +// *** REFER TO `server.js` TO MAKE SURE Application Default Credentials (ADC) ARE AUTHENTICATED *** + +// Google API Authentication is essential to server-side operations in the application, but using Jest to mock that authentication here seemed to be unnecessary and inefficient. Google API docs will be of more help + + +describe("server endpoints", () => { + let server; + + beforeAll(() => { + server = app.listen(5555); //start server at PORT before tests + }) + + afterAll((done) => { + if(server) { + server.close(done) //close server after tests run + } else { + done(); + } + }); + + it('should start and listen at proper port', async () => { + const res = await request(app).get('/'); + expect(res.status).toBe(404); + expect(res.text).toBe('Not Found'); + }) }) \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index e69de29..536ebbb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -0,0 +1,11797 @@ +{ + "name": "iteration-project", + "version": "2.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "iteration-project", + "version": "2.0.0", + "license": "ISC", + "dependencies": { + "@googleapis/docs": "^2.0.1", + "axios": "^1.4.0", + "child_process": "^1.0.2", + "dotenv": "^16.3.1", + "eslint": "^8.45.0", + "express": "^4.18.2", + "gapi-script": "^1.2.0", + "google-auth-library": "^8.9.0", + "googleapis": "^122.0.0", + "pg": "^8.11.1", + "pg-format": "^1.0.4", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router-dom": "^6.14.2" + }, + "devDependencies": { + "@babel/core": "^7.22.9", + "@babel/preset-env": "^7.22.9", + "@babel/preset-react": "^7.22.5", + "@types/jest": "^29.5.3", + "babel-loader": "^9.1.3", + "css-loader": "^6.8.1", + "html-webpack-plugin": "^5.5.3", + "jest": "^29.6.1", + "nodemon": "^3.0.1", + "sass": "^1.63.6", + "sass-loader": "^13.3.2", + "style-loader": "^3.3.3", + "supertest": "^6.3.3", + "webpack": "^5.88.1", + "webpack-cli": "^5.1.4", + "webpack-dev-server": "^4.15.1" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", + "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.9.tgz", + "integrity": "sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.9", + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helpers": "^7.22.6", + "@babel/parser": "^7.22.7", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.8", + "@babel/types": "^7.22.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.9.tgz", + "integrity": "sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz", + "integrity": "sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz", + "integrity": "sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz", + "integrity": "sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz", + "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.1.tgz", + "integrity": "sha512-kX4oXixDxG197yhX+J3Wp+NpL2wuCFjWQAr6yX2jtCnflK9ulMI51ULFGIrWiX1jGfvAxdHp+XQCcP2bZGPs9A==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", + "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", + "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", + "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-wrap-function": "^7.22.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", + "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.9.tgz", + "integrity": "sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz", + "integrity": "sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.6", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", + "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", + "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", + "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", + "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", + "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", + "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.7.tgz", + "integrity": "sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", + "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz", + "integrity": "sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", + "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz", + "integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz", + "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", + "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz", + "integrity": "sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", + "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", + "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz", + "integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", + "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz", + "integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", + "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", + "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz", + "integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", + "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz", + "integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", + "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", + "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", + "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz", + "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", + "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", + "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz", + "integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz", + "integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz", + "integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", + "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz", + "integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.6.tgz", + "integrity": "sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", + "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", + "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz", + "integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", + "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz", + "integrity": "sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz", + "integrity": "sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", + "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", + "dev": true, + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz", + "integrity": "sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz", + "integrity": "sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", + "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", + "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", + "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", + "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", + "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", + "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz", + "integrity": "sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", + "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", + "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", + "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.9.tgz", + "integrity": "sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.9", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@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.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@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-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.7", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.22.5", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.5", + "@babel/plugin-transform-classes": "^7.22.6", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.22.5", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.5", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.5", + "@babel/plugin-transform-for-of": "^7.22.5", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.5", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", + "@babel/plugin-transform-modules-systemjs": "^7.22.5", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", + "@babel/plugin-transform-numeric-separator": "^7.22.5", + "@babel/plugin-transform-object-rest-spread": "^7.22.5", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.6", + "@babel/plugin-transform-parameters": "^7.22.5", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.5", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.5", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.5", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.4", + "babel-plugin-polyfill-corejs3": "^0.8.2", + "babel-plugin-polyfill-regenerator": "^0.5.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "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" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.5.tgz", + "integrity": "sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-transform-react-display-name": "^7.22.5", + "@babel/plugin-transform-react-jsx": "^7.22.5", + "@babel/plugin-transform-react-jsx-development": "^7.22.5", + "@babel/plugin-transform-react-pure-annotations": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz", + "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.22.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.8.tgz", + "integrity": "sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.7", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.7", + "@babel/types": "^7.22.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", + "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", + "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/@eslint/js": { + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", + "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@googleapis/docs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@googleapis/docs/-/docs-2.0.1.tgz", + "integrity": "sha512-ujJT/9uTwtGsKQ6QVJmDNhc4TYqsekM0ME7uX5tJbqgeeNxCq73SPpDzYsZsMpsWonF5nF0v+DYPrNXHFJ7W8A==", + "dependencies": { + "googleapis-common": "^6.0.3" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", + "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.6.1.tgz", + "integrity": "sha512-Aj772AYgwTSr5w8qnyoJ0eDYvN6bMsH3ORH1ivMotrInHLKdUz6BDlaEXHdM6kODaBIkNIyQGzsMvRdOv7VG7Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.6.1", + "jest-util": "^29.6.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.6.1.tgz", + "integrity": "sha512-CcowHypRSm5oYQ1obz1wfvkjZZ2qoQlrKKvlfPwh5jUXVU12TWr2qMeH8chLMuTFzHh5a1g2yaqlqDICbr+ukQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.6.1", + "@jest/reporters": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.5.0", + "jest-config": "^29.6.1", + "jest-haste-map": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.6.1", + "jest-resolve-dependencies": "^29.6.1", + "jest-runner": "^29.6.1", + "jest-runtime": "^29.6.1", + "jest-snapshot": "^29.6.1", + "jest-util": "^29.6.1", + "jest-validate": "^29.6.1", + "jest-watcher": "^29.6.1", + "micromatch": "^4.0.4", + "pretty-format": "^29.6.1", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/pretty-format": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", + "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.6.1.tgz", + "integrity": "sha512-RMMXx4ws+Gbvw3DfLSuo2cfQlK7IwGbpuEWXCqyYDcqYTI+9Ju3a5hDnXaxjNsa6uKh9PQF2v+qg+RLe63tz5A==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "jest-mock": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.6.1.tgz", + "integrity": "sha512-N5xlPrAYaRNyFgVf2s9Uyyvr795jnB6rObuPx4QFvNJz8aAjpZUDfO4bh5G/xuplMID8PrnuF1+SfSyDxhsgYg==", + "dev": true, + "dependencies": { + "expect": "^29.6.1", + "jest-snapshot": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.6.1.tgz", + "integrity": "sha512-o319vIf5pEMx0LmzSxxkYYxo4wrRLKHq9dP1yJU7FoPTB0LfAKSz8SWD6D/6U3v/O52t9cF5t+MeJiRsfk7zMw==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.4.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.6.1.tgz", + "integrity": "sha512-RdgHgbXyosCDMVYmj7lLpUwXA4c69vcNzhrt69dJJdf8azUrpRh3ckFCaTPNjsEeRi27Cig0oKDGxy5j7hOgHg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.1", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.6.1", + "jest-mock": "^29.6.1", + "jest-util": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.6.1.tgz", + "integrity": "sha512-2VjpaGy78JY9n9370H8zGRCFbYVWwjY6RdDMhoJHa1sYfwe6XM/azGN0SjY8kk7BOZApIejQ1BFPyH7FPG0w3A==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.6.1", + "@jest/expect": "^29.6.1", + "@jest/types": "^29.6.1", + "jest-mock": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.6.1.tgz", + "integrity": "sha512-9zuaI9QKr9JnoZtFQlw4GREQbxgmNYXU6QuWtmuODvk5nvPUeBYapVR/VYMyi2WSx3jXTLJTJji8rN6+Cm4+FA==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.6.1", + "jest-util": "^29.6.1", + "jest-worker": "^29.6.1", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/jest-worker": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.1.tgz", + "integrity": "sha512-U+Wrbca7S8ZAxAe9L6nb6g8kPdia5hj32Puu5iOqBCMTMWFHXuK6dOV2IFrpedbTV8fjMFLdWNttQTBL6u2MRA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.6.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.0.tgz", + "integrity": "sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.0.tgz", + "integrity": "sha512-oA+I2SHHQGxDCZpbrsCQSoMLb3Bz547JnM+jUr9qEbuw0vQlWZfpPS7CO9J7XiwKicEz9OFn/IYoLkkiUD7bzA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.6.1.tgz", + "integrity": "sha512-Ynr13ZRcpX6INak0TPUukU8GWRfm/vAytE3JbJNGAvINySWYdfE7dGZMbk36oVuK4CigpbhMn8eg1dixZ7ZJOw==", + "dev": true, + "dependencies": { + "@jest/console": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.6.1.tgz", + "integrity": "sha512-oBkC36PCDf/wb6dWeQIhaviU0l5u6VCsXa119yqdUosYAt7/FbQU2M2UoziO3igj/HBDEgp57ONQ3fm0v9uyyg==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.6.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.6.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.6.1.tgz", + "integrity": "sha512-URnTneIU3ZjRSaf906cvf6Hpox3hIeJXRnz3VDSw5/X93gR8ycdfSIEy19FlVx8NFmpN7fe3Gb1xF+NjXaQLWg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.1", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.6.1", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.6.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", + "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "node_modules/@nicolo-ribaudo/semver-v6": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz", + "integrity": "sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@remix-run/router": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.7.2.tgz", + "integrity": "sha512-7Lcn7IqGMV+vizMPoEl5F0XDshcdDYtMI6uJLQdQz5CfZAwy3vvGKYSUk789qndt5dEC4HfSjviSYlSoHGL2+A==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", + "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz", + "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.0.tgz", + "integrity": "sha512-gsF+c/0XOguWgaOgvFs+xnnRqt9GwgTvIks36WpE6ueeI4KCEHHd8K/CKHqhOqrJKsYH8m27kRzQEvWXAwXUTw==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.35", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", + "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "dev": true + }, + "node_modules/@types/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==", + "dev": true + }, + "node_modules/@types/http-proxy": { + "version": "1.17.11", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz", + "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.3", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.3.tgz", + "integrity": "sha512-1Nq7YrO/vJE/FYnqYyw0FS8LdrjExSgIiHyKg7xPpn+yi8Q4huZryKnkJatN1ZRH89Kw2v33/8ZMB7DuZeSLlA==", + "dev": true, + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/jest/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/pretty-format": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", + "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.4.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.2.tgz", + "integrity": "sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==", + "dev": true + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "node_modules/@types/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", + "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.2.tgz", + "integrity": "sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/ws": { + "version": "8.5.5", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz", + "integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "engines": { + "node": ">=8" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/babel-jest": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.6.1.tgz", + "integrity": "sha512-qu+3bdPEQC6KZSPz+4Fyjbga5OODNcp49j6GKzG1EKbkfyJBxEYGVUmVGpwCSeGouG52R4EgYMLb6p9YeEEQ4A==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.6.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.5.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "dev": true, + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", + "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.4.tgz", + "integrity": "sha512-9WeK9snM1BfxB38goUEv2FLnA6ja07UMfazFHzCXUb3NyDZAwfXvQiURQ6guTTMeHcOsdknULm1PDhs4uWtKyA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.1", + "@nicolo-ribaudo/semver-v6": "^6.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.2.tgz", + "integrity": "sha512-Cid+Jv1BrY9ReW9lIfNlNpsI53N+FN7gE+f73zLAUbr9C52W4gKLWSByx47pfDJsEysojKArqOtOKZSVIIUTuQ==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.1", + "core-js-compat": "^3.31.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.1.tgz", + "integrity": "sha512-L8OyySuI6OSQ5hFy9O+7zFjyr4WhAfRjLIOkhQGYl+emwJkd/S4XXT1JpfrgR1jrQ1NcGiOh+yAdGlF8pnC3Jw==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@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-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", + "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.5.0", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/bonjour-service": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/buffer-writer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", + "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001515", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz", + "integrity": "sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/child_process": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz", + "integrity": "sha512-Wmza/JzL0SiWz7kl6MhIKT5ceIlnFPJX+lwUGj7Clhy5MMldsSoJR0+uvRzOS5Kv45Mq7t1PoE8TsOA9bzvb6g==" + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true + }, + "node_modules/clean-css": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", + "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", + "dev": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/cookiejar": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", + "dev": true + }, + "node_modules/core-js-compat": { + "version": "3.31.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.1.tgz", + "integrity": "sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.9" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-loader": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", + "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.21", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.3", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-loader/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-loader/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dev": true, + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/diff-sequences": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", + "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "node_modules/dns-packet": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", + "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", + "dev": true, + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", + "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/motdotla/dotenv?sponsor=1" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.461", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.461.tgz", + "integrity": "sha512-1JkvV2sgEGTDXjdsaQCeSwYYuhLRphRpc+g6EHTFELJXEiznLt3/0pZ9JuAOQ5p2rI3YxKTbivtvajirIfhrEQ==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/envinfo": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz", + "integrity": "sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", + "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.45.0.tgz", + "integrity": "sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.1.0", + "@eslint/js": "8.44.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.6.0", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.1.tgz", + "integrity": "sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.6.1.tgz", + "integrity": "sha512-XEdDLonERCU1n9uR56/Stx9OqojaLAQtZf9PrCHH9Hl8YXiEIka3H4NXJ3NOIBmQJTg7+j7buh34PMHfJujc8g==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.6.1", + "@types/node": "*", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-util": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "node_modules/fast-text-encoding": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz", + "integrity": "sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==" + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "dev": true, + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formidable": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", + "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", + "dev": true, + "dependencies": { + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0", + "qs": "^6.11.0" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.4.tgz", + "integrity": "sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/gapi-script": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gapi-script/-/gapi-script-1.2.0.tgz", + "integrity": "sha512-NKTVKiIwFdkO1j1EzcrWu/Pz7gsl1GmBmgh+qhuV2Ytls04W/Eg5aiBL91SCiBM9lU0PMu7p1hTVxhh1rPT5Lw==" + }, + "node_modules/gaxios": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.1.3.tgz", + "integrity": "sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==", + "dependencies": { + "extend": "^3.0.2", + "https-proxy-agent": "^5.0.0", + "is-stream": "^2.0.0", + "node-fetch": "^2.6.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/gcp-metadata": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.3.0.tgz", + "integrity": "sha512-FNTkdNEnBdlqF2oatizolQqNANMrcqJt6AAYt99B3y1aLLC8Hc5IOBb+ZnnzllodEEf6xMBp6wRcBbc16fa65w==", + "dependencies": { + "gaxios": "^5.0.0", + "json-bigint": "^1.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/google-auth-library": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-8.9.0.tgz", + "integrity": "sha512-f7aQCJODJFmYWN6PeNKzgvy9LI2tYmXnzpNDHEjG5sDNPgGb2FXQyTBnXeSH+PAtpKESFD+LmHw3Ox3mN7e1Fg==", + "dependencies": { + "arrify": "^2.0.0", + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "fast-text-encoding": "^1.0.0", + "gaxios": "^5.0.0", + "gcp-metadata": "^5.3.0", + "gtoken": "^6.1.0", + "jws": "^4.0.0", + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/google-auth-library/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/google-auth-library/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/google-p12-pem": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-4.0.1.tgz", + "integrity": "sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ==", + "dependencies": { + "node-forge": "^1.3.1" + }, + "bin": { + "gp12-pem": "build/src/bin/gp12-pem.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/googleapis": { + "version": "122.0.0", + "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-122.0.0.tgz", + "integrity": "sha512-n8Gt7j9LzSkhQEGPOrcLBKxllTvW/0v6oILuwszL/zqgelNsGJYXVqPJllgJJ6RM7maJ6T35UBeYqI6GQ/IlJg==", + "dependencies": { + "google-auth-library": "^8.0.2", + "googleapis-common": "^6.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/googleapis-common": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-6.0.4.tgz", + "integrity": "sha512-m4ErxGE8unR1z0VajT6AYk3s6a9gIMM6EkDZfkPnES8joeOlEtFEJeF8IyZkb0tjPXkktUfYrE4b3Li1DNyOwA==", + "dependencies": { + "extend": "^3.0.2", + "gaxios": "^5.0.1", + "google-auth-library": "^8.0.2", + "qs": "^6.7.0", + "url-template": "^2.0.8", + "uuid": "^9.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/googleapis-common/node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + }, + "node_modules/gtoken": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-6.1.2.tgz", + "integrity": "sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==", + "dependencies": { + "gaxios": "^5.0.1", + "google-p12-pem": "^4.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", + "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dev": true, + "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" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz", + "integrity": "sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==", + "dev": true, + "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" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "webpack": "^5.20.0" + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "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" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true + }, + "node_modules/immutable": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.1.tgz", + "integrity": "sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/ipaddr.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.6.1.tgz", + "integrity": "sha512-Nirw5B4nn69rVUZtemCQhwxOBhm0nsp3hmtF4rzCeWD7BkjAXRIji7xWQfnTNbz9g0aVsBX6aZK3n+23LM6uDw==", + "dev": true, + "dependencies": { + "@jest/core": "^29.6.1", + "@jest/types": "^29.6.1", + "import-local": "^3.0.2", + "jest-cli": "^29.6.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", + "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-changed-files/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-changed-files/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-circus": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.6.1.tgz", + "integrity": "sha512-tPbYLEiBU4MYAL2XoZme/bgfUeotpDBd81lgHLCbDZZFaGmECk0b+/xejPFtmiBP87GgP/y4jplcRpbH+fgCzQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.6.1", + "@jest/expect": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.6.1", + "jest-matcher-utils": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-runtime": "^29.6.1", + "jest-snapshot": "^29.6.1", + "jest-util": "^29.6.1", + "p-limit": "^3.1.0", + "pretty-format": "^29.6.1", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-circus/node_modules/pretty-format": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", + "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-cli": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.6.1.tgz", + "integrity": "sha512-607dSgTA4ODIN6go9w6xY3EYkyPFGicx51a69H7yfvt7lN53xNswEVLovq+E77VsTRi5fWprLH0yl4DJgE8Ing==", + "dev": true, + "dependencies": { + "@jest/core": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/types": "^29.6.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^29.6.1", + "jest-util": "^29.6.1", + "jest-validate": "^29.6.1", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.6.1.tgz", + "integrity": "sha512-XdjYV2fy2xYixUiV2Wc54t3Z4oxYPAELUzWnV6+mcbq0rh742X2p52pii5A3oeRzYjLnQxCsZmp0qpI6klE2cQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.6.1", + "@jest/types": "^29.6.1", + "babel-jest": "^29.6.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.6.1", + "jest-environment-node": "^29.6.1", + "jest-get-type": "^29.4.3", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.6.1", + "jest-runner": "^29.6.1", + "jest-util": "^29.6.1", + "jest-validate": "^29.6.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.6.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/pretty-format": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", + "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-config/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.6.1.tgz", + "integrity": "sha512-FsNCvinvl8oVxpNLttNQX7FAq7vR+gMDGj90tiP7siWw1UdakWUGqrylpsYrpvj908IYckm5Y0Q7azNAozU1Kg==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/pretty-format": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", + "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-diff/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", + "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.6.1.tgz", + "integrity": "sha512-n5eoj5eiTHpKQCAVcNTT7DRqeUmJ01hsAL0Q1SMiBHcBcvTKDELixQOGMCpqhbIuTcfC4kMfSnpmDqRgRJcLNQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.1", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "jest-util": "^29.6.1", + "pretty-format": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/pretty-format": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", + "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-node": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.6.1.tgz", + "integrity": "sha512-ZNIfAiE+foBog24W+2caIldl4Irh8Lx1PUhg/GZ0odM1d/h2qORAsejiFc7zb+SEmYPn1yDZzEDSU5PmDkmVLQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.6.1", + "@jest/fake-timers": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "jest-mock": "^29.6.1", + "jest-util": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", + "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.6.1.tgz", + "integrity": "sha512-0m7f9PZXxOCk1gRACiVgX85knUKPKLPg4oRCjLoqIm9brTHXaorMA0JpmtmVkQiT8nmXyIVoZd/nnH1cfC33ig==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.1", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.6.1", + "jest-worker": "^29.6.1", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-haste-map/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-haste-map/node_modules/jest-worker": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.1.tgz", + "integrity": "sha512-U+Wrbca7S8ZAxAe9L6nb6g8kPdia5hj32Puu5iOqBCMTMWFHXuK6dOV2IFrpedbTV8fjMFLdWNttQTBL6u2MRA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.6.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.6.1.tgz", + "integrity": "sha512-OrxMNyZirpOEwkF3UHnIkAiZbtkBWiye+hhBweCHkVbCgyEy71Mwbb5zgeTNYWJBi1qgDVfPC1IwO9dVEeTLwQ==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.4.3", + "pretty-format": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-leak-detector/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-leak-detector/node_modules/pretty-format": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", + "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.6.1.tgz", + "integrity": "sha512-SLaztw9d2mfQQKHmJXKM0HCbl2PPVld/t9Xa6P9sgiExijviSp7TnZZpw2Fpt+OI3nwUO/slJbOfzfUMKKC5QA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.6.1", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/pretty-format": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", + "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.6.1.tgz", + "integrity": "sha512-KoAW2zAmNSd3Gk88uJ56qXUWbFk787QKmjjJVOjtGFmmGSZgDBrlIL4AfQw1xyMYPNVD7dNInfIbur9B2rd/wQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.6.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/pretty-format": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", + "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.6.1.tgz", + "integrity": "sha512-brovyV9HBkjXAEdRooaTQK42n8usKoSRR3gihzUpYeV/vwqgSoNfrksO7UfSACnPmxasO/8TmHM3w9Hp3G1dgw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.1", + "@types/node": "*", + "jest-util": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", + "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.6.1.tgz", + "integrity": "sha512-AeRkyS8g37UyJiP9w3mmI/VXU/q8l/IH52vj/cDAyScDcemRbSBhfX/NMYIGilQgSVwsjxrCHf3XJu4f+lxCMg==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.6.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.6.1", + "jest-validate": "^29.6.1", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.1.tgz", + "integrity": "sha512-BbFvxLXtcldaFOhNMXmHRWx1nXQO5LoXiKSGQcA1LxxirYceZT6ch8KTE1bK3X31TNG/JbkI7OkS/ABexVahiw==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.4.3", + "jest-snapshot": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.6.1.tgz", + "integrity": "sha512-tw0wb2Q9yhjAQ2w8rHRDxteryyIck7gIzQE4Reu3JuOBpGp96xWgF0nY8MDdejzrLCZKDcp8JlZrBN/EtkQvPQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.6.1", + "@jest/environment": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.4.3", + "jest-environment-node": "^29.6.1", + "jest-haste-map": "^29.6.1", + "jest-leak-detector": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-resolve": "^29.6.1", + "jest-runtime": "^29.6.1", + "jest-util": "^29.6.1", + "jest-watcher": "^29.6.1", + "jest-worker": "^29.6.1", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/jest-worker": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.1.tgz", + "integrity": "sha512-U+Wrbca7S8ZAxAe9L6nb6g8kPdia5hj32Puu5iOqBCMTMWFHXuK6dOV2IFrpedbTV8fjMFLdWNttQTBL6u2MRA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.6.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner/node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-runner/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-runtime": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.6.1.tgz", + "integrity": "sha512-D6/AYOA+Lhs5e5il8+5pSLemjtJezUr+8zx+Sn8xlmOux3XOqx4d8l/2udBea8CRPqqrzhsKUsN/gBDE/IcaPQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.6.1", + "@jest/fake-timers": "^29.6.1", + "@jest/globals": "^29.6.1", + "@jest/source-map": "^29.6.0", + "@jest/test-result": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-mock": "^29.6.1", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.6.1", + "jest-snapshot": "^29.6.1", + "jest-util": "^29.6.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.6.1.tgz", + "integrity": "sha512-G4UQE1QQ6OaCgfY+A0uR1W2AY0tGXUPQpoUClhWHq1Xdnx1H6JOrC2nH5lqnOEqaDgbHFgIwZ7bNq24HpB180A==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.6.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.6.1", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-util": "^29.6.1", + "natural-compare": "^1.4.0", + "pretty-format": "^29.6.1", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/pretty-format": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", + "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/jest-util": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.6.1.tgz", + "integrity": "sha512-NRFCcjc+/uO3ijUVyNOQJluf8PtGCe/W6cix36+M3cTFgiYqFOOW5MgN4JOOcvbUhcKTYVd1CvHz/LWi8d16Mg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.6.1.tgz", + "integrity": "sha512-r3Ds69/0KCN4vx4sYAbGL1EVpZ7MSS0vLmd3gV78O+NAx3PDQQukRU5hNHPXlyqCgFY8XUk7EuTMLugh0KzahA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "leven": "^3.1.0", + "pretty-format": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/pretty-format": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", + "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.6.1.tgz", + "integrity": "sha512-d4wpjWTS7HEZPaaj8m36QiaP856JthRZkrgcIY/7ISoUWPIillrXM23WPboZVLbiwZBt4/qn2Jke84Sla6JhFA==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.6.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "dependencies": { + "bignumber.js": "^9.0.0" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "dependencies": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/launch-editor": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", + "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.7.3" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dev": true, + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-fetch": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "node_modules/nodemon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.0.1.tgz", + "integrity": "sha512-g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/nodemon/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nodemon/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/packet-reader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", + "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/pg": { + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.1.tgz", + "integrity": "sha512-utdq2obft07MxaDg0zBJI+l/M3mBRfIpEN3iSemsz0G5F2/VXx+XzqF4oxrbIZXQxt2AZzIUzyVg/YM6xOP/WQ==", + "dependencies": { + "buffer-writer": "2.0.0", + "packet-reader": "1.0.0", + "pg-connection-string": "^2.6.1", + "pg-pool": "^3.6.1", + "pg-protocol": "^1.6.0", + "pg-types": "^2.1.0", + "pgpass": "1.x" + }, + "engines": { + "node": ">= 8.0.0" + }, + "optionalDependencies": { + "pg-cloudflare": "^1.1.1" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, + "node_modules/pg-cloudflare": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", + "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", + "optional": true + }, + "node_modules/pg-connection-string": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.1.tgz", + "integrity": "sha512-w6ZzNu6oMmIzEAYVw+RLK0+nqHPt8K3ZnknKi+g48Ak2pr3dtljJW3o+D/n2zzCG07Zoe9VOX3aiKpj+BN0pjg==" + }, + "node_modules/pg-format": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pg-format/-/pg-format-1.0.4.tgz", + "integrity": "sha512-YyKEF78pEA6wwTAqOUaHIN/rWpfzzIuMh9KdAhc3rSLQ/7zkRFcCgYBAEGatDstLyZw4g0s9SNICmaTGnBVeyw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-pool": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", + "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", + "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pgpass": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "dependencies": { + "split2": "^4.1.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/postcss": { + "version": "8.4.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.26.tgz", + "integrity": "sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", + "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dev": true, + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz", + "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/react-router": { + "version": "6.14.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.14.2.tgz", + "integrity": "sha512-09Zss2dE2z+T1D03IheqAFtK4UzQyX8nFPWx6jkwdYzGLXd5ie06A6ezS2fO6zJfEb/SpG6UocN2O1hfD+2urQ==", + "dependencies": { + "@remix-run/router": "1.7.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.14.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.14.2.tgz", + "integrity": "sha512-5pWX0jdKR48XFZBuJqHosX3AAHjRAzygouMTyimnBPOLdY3WjzUSKhus2FVMihUFWzeLebDgr4r8UeQFAct7Bg==", + "dependencies": { + "@remix-run/router": "1.7.2", + "react-router": "6.14.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dev": true, + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sass": { + "version": "1.63.6", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.63.6.tgz", + "integrity": "sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-loader": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.2.tgz", + "integrity": "sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg==", + "dev": true, + "dependencies": { + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "node_modules/selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "dev": true, + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "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" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "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" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-loader": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz", + "integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/superagent": { + "version": "8.0.9", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.9.tgz", + "integrity": "sha512-4C7Bh5pyHTvU33KpZgwrNKh/VQnvgtCSqPRfJAUdmrtSYePVzVg4E4OzsrbkhJj9O7SO6Bnv75K/F8XVZT8YHA==", + "dev": true, + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.4", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.1.2", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=6.4.0 <13 || >=14" + } + }, + "node_modules/superagent/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/superagent/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/superagent/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/superagent/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/supertest": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.3.tgz", + "integrity": "sha512-EMCG6G8gDu5qEqRQ3JjjPs6+FYT1a7Hv5ApHvtSghmOFJYtsU5S+pSb6Y2EUeCEY3CmEL3mmQ8YWlPOzQomabA==", + "dev": true, + "dependencies": { + "methods": "^1.1.2", + "superagent": "^8.0.5" + }, + "engines": { + "node": ">=6.4.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.0.tgz", + "integrity": "sha512-JpcpGOQLOXm2jsomozdMDpd5f8ZHh1rR48OFgWUH3QsyZcfPgv2qDCYbcDEAYNd4OZRj2bWYKpwdll/udZCk/Q==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/tslib": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", + "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-template": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", + "integrity": "sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/webpack": { + "version": "5.88.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.1.tgz", + "integrity": "sha512-FROX3TxQnC/ox4N+3xQoWZzvGXSuscxR32rbzjpXgEzWudJFEJBpdlkkob2ylrv5yzzufD1zph1OoFsLtm6stQ==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "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.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", + "colorette": "^2.0.14", + "commander": "^10.0.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", + "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", + "dev": true, + "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/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "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": "^2.0.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", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.9.0.tgz", + "integrity": "sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json index a9fd054..d2a33e0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "scratch-project", - "version": "1.0.0", + "name": "iteration-project", + "version": "2.0.0", "description": "Welcome to the Google Sheets to SQL app.", "main": "index.js", "scripts": { @@ -41,7 +41,6 @@ "gapi-script": "^1.2.0", "google-auth-library": "^8.9.0", "googleapis": "^122.0.0", - "next-auth": "^4.22.3", "pg": "^8.11.1", "pg-format": "^1.0.4", "react": "^18.2.0", diff --git a/server/server.js b/server/server.js index 6eb1d62..f411068 100644 --- a/server/server.js +++ b/server/server.js @@ -12,8 +12,8 @@ const { GoogleAuth } = require('google-auth-library'); // AUTHORIZATION BLOCK let authCache; // holds auth client after the first time server authenticates -// We authenticate using Application Default Credentials -// See README for details about setting up your server for ADC +// We authenticate using Application Default Credentials (ADC) +// *** See README for details about setting up your server for ADC *** // Make sure you place your service account credentials in a credentials.json file // in the /server directory. This file is ignored by git. async function authorize(req, res, next) { From 9c6eb3bff3991ab045b94d25de02b3329479c3dc Mon Sep 17 00:00:00 2001 From: Alexandra Ashcraft Date: Wed, 19 Jul 2023 17:26:27 -0700 Subject: [PATCH 13/29] broken generate auth url --- client/App.jsx | 6 +- client/components/AuthContainer.js | 13 - client/components/Callback.js | 117 +- client/components/Footer.js | 29 +- client/components/Form.js | 2 +- client/components/Signin.js | 38 +- package-lock.json | 16439 ++++++++-------- package.json | 88 +- server/controllers/authController.js | 334 +- server/controllers/googleController.js | 38 + server/controllers/mainAppController.js | 152 - server/controllers/userController.js | 176 + server/routes/authRoute.js | 73 - server/routes/authRouter.js | 59 + .../{gSheetsRoutes.js => gSheetsRouter.js} | 16 +- server/server.js | 33 +- 16 files changed, 8862 insertions(+), 8751 deletions(-) delete mode 100644 client/components/AuthContainer.js create mode 100644 server/controllers/googleController.js delete mode 100644 server/controllers/mainAppController.js create mode 100644 server/controllers/userController.js delete mode 100644 server/routes/authRoute.js create mode 100644 server/routes/authRouter.js rename server/routes/{gSheetsRoutes.js => gSheetsRouter.js} (57%) diff --git a/client/App.jsx b/client/App.jsx index 6bd1722..22e3806 100644 --- a/client/App.jsx +++ b/client/App.jsx @@ -2,6 +2,8 @@ import React from 'react' import { BrowserRouter as Router, Routes, Route } from "react-router-dom" import Footer from './components/Footer.js' import About from './components/About.js' +import Signin from './components/Signin.js' +import Callback from './components/Callback.js' import ReadMe from './components/ReadMe.js' import Output from './components/Output.js' import Form from './components/Form.js' @@ -14,7 +16,9 @@ const App = () => {
- }/> + } /> + } /> + }/> }/> }/> }/> diff --git a/client/components/AuthContainer.js b/client/components/AuthContainer.js deleted file mode 100644 index 282857b..0000000 --- a/client/components/AuthContainer.js +++ /dev/null @@ -1,13 +0,0 @@ -// import NextAuth from "next-auth/next"; -// import GoogleProvider from "next-auth/providers/google"; -// import { configDotenv } from "dotenv"; - - -// export default NextAuth({ -// providers: [ -// GoogleProvider({ -// clientId: -// clientSecret: -// }) -// ] -// }) \ No newline at end of file diff --git a/client/components/Callback.js b/client/components/Callback.js index fc41340..759338c 100644 --- a/client/components/Callback.js +++ b/client/components/Callback.js @@ -1,54 +1,63 @@ -import React, {useEffect, useState} from 'react'; -import { useNavigate } from 'react-router-dom'; - -//user is redirected to '/callback' from Google after entering their credentials -//if the user's credentials were authenticated by Google, will make a GET request here to obtain the access token and refresh token(used as cookie) from Google - -export default function Callback(){ - const [email, setEmail] = useState(''); - const [fetched, setFetched] = useState(false); - const navigate = useNavigate(); - - //get the redirect URL path (including the code query (authentication code) required to send to retrieve user specific tokens) - const href = window.location.href; - const index = href.indexOf('callback'); - const path = '/api/authentication/' + href.slice(index); - console.log('path: ', path); - - //use authentication code in request query to get access/refresh tokens from Google - const getTokens = async() => { - try { - - } catch (error) { - - } - } - - - //get user email from Google and check our SQL database to see if user exists on our application. redirect user to sign up page or home page based on user status - const checkUserType = async(accessToken) => { - try { - - } catch (error) { - - } - } - - if (fetched === false) { - setFetched(true); - } - - useEffect(()=>{ - getTokens(); - }, [fetched]); - - return ( -
-
-

Confirming Google Account

-

Please wait..

-
-
- ) - -}; \ No newline at end of file +import React, { useEffect, useState } from 'react'; +import { redirect } from 'react-router-dom'; + +//once a user has given permissions on the consent page, if the user's credentials were authenticated by Google, Google redirects the user to the redirect URL we provided ('/callback') along with an authorization code query parameter on the URL +//GET /oauthcallback?code={authorizationCode} + +// using that auth code, we will now make a GET request to the server, which will make a GET request here to obtain the access token and refresh token(used as cookie) from Google's API + +export default function Callback() { + const [fetched, setFetched] = useState(false); + //const navigate = useNavigate(); + + //get the redirect URL path (including the code query (authentication code) required to send to retrieve user specific tokens) + //href, the entire redirect URL appended with the authorization code + const href = window.location.href; + + const index = href.indexOf('callback'); + //append authorization code to the path for the GET request for user's access/refresh tokens + const path = '/api/authentication/' + href.slice(index); + console.log('path: ', path); + + //use authentication code in request query to get access/refresh tokens from Google + const getTokens = async () => { + try { + const response = await fetch(path, { + method: 'GET', + headers: { + 'Content-Type': 'Application/JSON', + }, + }); + + console.log('getTokens fetch response: ', response); + const accessToken = await response.json(); + + console.log('Access Token: ', accessToken); + console.log(typeof accessToken); + + return redirect('/form'); + } catch (error) { + console.log( + 'Error when making fetch request to URL for access token and refresh token', + error + ); + } + }; + + if (fetched === false) { + setFetched(true); + } + + useEffect(() => { + getTokens(); + }, [fetched]); + + return ( +
+
+

Confirming Google Account

+

Please wait..

+
+
+ ); +} diff --git a/client/components/Footer.js b/client/components/Footer.js index 1780683..9248011 100644 --- a/client/components/Footer.js +++ b/client/components/Footer.js @@ -1,14 +1,21 @@ -import React from 'react' -import { Link } from "react-router-dom"; +import React from 'react'; +import { Link } from 'react-router-dom'; const Footer = () => { - return ( -
- HOME - READ ME - ABOUT US -
- ) -} + return ( +
+ {/* //! ensure that this route is consistent with the user's logged in status */} + + HOME + + + READ ME + + + ABOUT US + +
+ ); +}; -export default Footer \ No newline at end of file +export default Footer; diff --git a/client/components/Form.js b/client/components/Form.js index 8ba2323..dc934d6 100644 --- a/client/components/Form.js +++ b/client/components/Form.js @@ -56,7 +56,7 @@ const Form = props => { } const handleClick = e => { - const url = '/api' + const url = '/api/sheets' fetch(url, { method: 'POST', body: JSON.stringify({ diff --git a/client/components/Signin.js b/client/components/Signin.js index 6abe0bd..013b3e7 100644 --- a/client/components/Signin.js +++ b/client/components/Signin.js @@ -4,14 +4,26 @@ export default function Signin(){ const [url, setUrl] = useState(''); const [fetched, setFetched] = useState(false); - //request to server to set a random state and store that state on a cookie. server will generate the correct url for the client to be redirected via the sign-in button + //request to server authentication route to set a random state and store that state on a cookie. server will generate the correct url for the client to be redirected via the sign-in button + + // + // ! client must go to link themseleves. you cannot make a request to the server to redirect them there otherwise will get cors error - const redirectUrl = async () => { + const getRedirectUrl = async () => { try { + const response = await fetch('api/authentication', { + method: 'GET', + headers: { + 'Content-Type': 'Application/JSON' + } + }); + const url = await response.json(); + + setUrl(url); } catch (error) { - + console.log('error in signing in: ', err); } } @@ -20,7 +32,25 @@ export default function Signin(){ } useEffect(()=>{ - redirectUrl() + getRedirectUrl() }, [fetched]); + //redirect user to google with the supplied Url + const handleRedirect = () => { + window.location.replace(url) + } + + return ( +
+
+

Welcome to Sheets SQLifier

+
+

+ Please + + with Google to verify your account +

+
+ ) + } diff --git a/package-lock.json b/package-lock.json index f02a476..80bceaf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8250 +1,8193 @@ { - "name": "scratch-project", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "scratch-project", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "axios": "^1.4.0", - "child_process": "^1.0.2", - "dotenv": "^16.3.1", - "eslint": "^8.45.0", - "express": "^4.18.2", - "gapi-script": "^1.2.0", - "google-auth-library": "^8.9.0", - "googleapis": "^122.0.0", - "next-auth": "^4.22.3", - "pg": "^8.11.1", - "pg-format": "^1.0.4", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-router-dom": "^6.14.1" - }, - "devDependencies": { - "@babel/core": "^7.22.9", - "@babel/preset-env": "^7.22.9", - "@babel/preset-react": "^7.22.5", - "babel-loader": "^9.1.3", - "css-loader": "^6.8.1", - "html-webpack-plugin": "^5.5.3", - "nodemon": "^3.0.1", - "sass": "^1.63.6", - "sass-loader": "^13.3.2", - "style-loader": "^3.3.3", - "webpack": "^5.88.1", - "webpack-cli": "^5.1.4", - "webpack-dev-server": "^4.15.1" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", - "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.9.tgz", - "integrity": "sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.9", - "@babel/helper-module-transforms": "^7.22.9", - "@babel/helpers": "^7.22.6", - "@babel/parser": "^7.22.7", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.8", - "@babel/types": "^7.22.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.9.tgz", - "integrity": "sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz", - "integrity": "sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz", - "integrity": "sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.5", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz", - "integrity": "sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz", - "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.1.tgz", - "integrity": "sha512-kX4oXixDxG197yhX+J3Wp+NpL2wuCFjWQAr6yX2jtCnflK9ulMI51ULFGIrWiX1jGfvAxdHp+XQCcP2bZGPs9A==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", - "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", - "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", - "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", - "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-wrap-function": "^7.22.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", - "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", - "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.9.tgz", - "integrity": "sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz", - "integrity": "sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.6", - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.22.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", - "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", - "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", - "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", - "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", - "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", - "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.22.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.7.tgz", - "integrity": "sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", - "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", - "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz", - "integrity": "sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", - "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz", - "integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz", - "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", - "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz", - "integrity": "sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", - "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", - "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz", - "integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", - "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz", - "integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", - "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", - "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz", - "integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", - "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz", - "integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", - "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", - "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", - "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz", - "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", - "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", - "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz", - "integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz", - "integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz", - "integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", - "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz", - "integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.6.tgz", - "integrity": "sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", - "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", - "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz", - "integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", - "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz", - "integrity": "sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz", - "integrity": "sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", - "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", - "dev": true, - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz", - "integrity": "sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz", - "integrity": "sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", - "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", - "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", - "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", - "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", - "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", - "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz", - "integrity": "sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", - "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", - "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", - "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.9.tgz", - "integrity": "sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.9", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@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.22.5", - "@babel/plugin-syntax-import-attributes": "^7.22.5", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@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-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.22.7", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.22.5", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.5", - "@babel/plugin-transform-classes": "^7.22.6", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.22.5", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.5", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.5", - "@babel/plugin-transform-for-of": "^7.22.5", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.5", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.5", - "@babel/plugin-transform-modules-systemjs": "^7.22.5", - "@babel/plugin-transform-modules-umd": "^7.22.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", - "@babel/plugin-transform-numeric-separator": "^7.22.5", - "@babel/plugin-transform-object-rest-spread": "^7.22.5", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.6", - "@babel/plugin-transform-parameters": "^7.22.5", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.5", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.5", - "@babel/plugin-transform-reserved-words": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/plugin-transform-spread": "^7.22.5", - "@babel/plugin-transform-sticky-regex": "^7.22.5", - "@babel/plugin-transform-template-literals": "^7.22.5", - "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.5", - "@babel/plugin-transform-unicode-property-regex": "^7.22.5", - "@babel/plugin-transform-unicode-regex": "^7.22.5", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.4", - "babel-plugin-polyfill-corejs3": "^0.8.2", - "babel-plugin-polyfill-regenerator": "^0.5.1", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "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" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.5.tgz", - "integrity": "sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-transform-react-display-name": "^7.22.5", - "@babel/plugin-transform-react-jsx": "^7.22.5", - "@babel/plugin-transform-react-jsx-development": "^7.22.5", - "@babel/plugin-transform-react-pure-annotations": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, - "node_modules/@babel/runtime": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz", - "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==", - "dependencies": { - "regenerator-runtime": "^0.13.11" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", - "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.22.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.8.tgz", - "integrity": "sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.7", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.7", - "@babel/types": "^7.22.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", - "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", - "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/@eslint/js": { - "version": "8.44.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", - "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", - "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", - "dev": true - }, - "node_modules/@next/env": { - "version": "13.4.10", - "resolved": "https://registry.npmjs.org/@next/env/-/env-13.4.10.tgz", - "integrity": "sha512-3G1yD/XKTSLdihyDSa8JEsaWOELY+OWe08o0LUYzfuHp1zHDA8SObQlzKt+v+wrkkPcnPweoLH1ImZeUa0A1NQ==", - "peer": true - }, - "node_modules/@next/swc-darwin-arm64": { - "version": "13.4.10", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.10.tgz", - "integrity": "sha512-4bsdfKmmg7mgFGph0UorD1xWfZ5jZEw4kKRHYEeTK9bT1QnMbPVPlVXQRIiFPrhoDQnZUoa6duuPUJIEGLV1Jg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-darwin-x64": { - "version": "13.4.10", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.10.tgz", - "integrity": "sha512-ngXhUBbcZIWZWqNbQSNxQrB9T1V+wgfCzAor2olYuo/YpaL6mUYNUEgeBMhr8qwV0ARSgKaOp35lRvB7EmCRBg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-gnu": { - "version": "13.4.10", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.10.tgz", - "integrity": "sha512-SjCZZCOmHD4uyM75MVArSAmF5Y+IJSGroPRj2v9/jnBT36SYFTORN8Ag/lhw81W9EeexKY/CUg2e9mdebZOwsg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-musl": { - "version": "13.4.10", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.10.tgz", - "integrity": "sha512-F+VlcWijX5qteoYIOxNiBbNE8ruaWuRlcYyIRK10CugqI/BIeCDzEDyrHIHY8AWwbkTwe6GRHabMdE688Rqq4Q==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "13.4.10", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.10.tgz", - "integrity": "sha512-WDv1YtAV07nhfy3i1visr5p/tjiH6CeXp4wX78lzP1jI07t4PnHHG1WEDFOduXh3WT4hG6yN82EQBQHDi7hBrQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-musl": { - "version": "13.4.10", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.10.tgz", - "integrity": "sha512-zFkzqc737xr6qoBgDa3AwC7jPQzGLjDlkNmt/ljvQJ/Veri5ECdHjZCUuiTUfVjshNIIpki6FuP0RaQYK9iCRg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-arm64-msvc": { - "version": "13.4.10", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.10.tgz", - "integrity": "sha512-IboRS8IWz5mWfnjAdCekkl8s0B7ijpWeDwK2O8CdgZkoCDY0ZQHBSGiJ2KViAG6+BJVfLvcP+a2fh6cdyBr9QQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-ia32-msvc": { - "version": "13.4.10", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.10.tgz", - "integrity": "sha512-bSA+4j8jY4EEiwD/M2bol4uVEu1lBlgsGdvM+mmBm/BbqofNBfaZ2qwSbwE2OwbAmzNdVJRFRXQZ0dkjopTRaQ==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "13.4.10", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.10.tgz", - "integrity": "sha512-g2+tU63yTWmcVQKDGY0MV1PjjqgZtwM4rB1oVVi/v0brdZAcrcTV+04agKzWtvWroyFz6IqtT0MoZJA7PNyLVw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nicolo-ribaudo/semver-v6": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz", - "integrity": "sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@panva/hkdf": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.1.1.tgz", - "integrity": "sha512-dhPeilub1NuIG0X5Kvhh9lH4iW3ZsHlnzwgwbOlgwQ2wG1IqFzsgHqmKPk3WzsdWAeaxKJxgM0+W433RmN45GA==", - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, - "node_modules/@remix-run/router": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.7.1.tgz", - "integrity": "sha512-bgVQM4ZJ2u2CM8k1ey70o1ePFXsEzYVZoWghh6WjM8p59jQ7HxzbHW4SbnWFG7V9ig9chLawQxDTZ3xzOF8MkQ==", - "engines": { - "node": ">=14" - } - }, - "node_modules/@swc/helpers": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.1.tgz", - "integrity": "sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==", - "peer": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", - "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", - "dev": true, - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/eslint": { - "version": "8.44.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.0.tgz", - "integrity": "sha512-gsF+c/0XOguWgaOgvFs+xnnRqt9GwgTvIks36WpE6ueeI4KCEHHd8K/CKHqhOqrJKsYH8m27kRzQEvWXAwXUTw==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", - "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", - "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", - "dev": true - }, - "node_modules/@types/express": { - "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.35", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", - "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", - "dev": true - }, - "node_modules/@types/http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==", - "dev": true - }, - "node_modules/@types/http-proxy": { - "version": "1.17.11", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz", - "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.12", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", - "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", - "dev": true - }, - "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.4.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.2.tgz", - "integrity": "sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==", - "dev": true - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "dev": true - }, - "node_modules/@types/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", - "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", - "dev": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", - "dev": true, - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.2.tgz", - "integrity": "sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==", - "dev": true, - "dependencies": { - "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.33", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/ws": { - "version": "8.5.5", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz", - "integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", - "dev": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dev": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webpack-cli/configtest": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", - "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", - "dev": true, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - } - }, - "node_modules/@webpack-cli/info": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", - "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", - "dev": true, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - } - }, - "node_modules/@webpack-cli/serve": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", - "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", - "dev": true, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - }, - "peerDependenciesMeta": { - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "dev": true, - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "devOptional": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, - "node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "engines": { - "node": ">=8" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/axios": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/babel-loader": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", - "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", - "dev": true, - "dependencies": { - "find-cache-dir": "^4.0.0", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0", - "webpack": ">=5" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.4.tgz", - "integrity": "sha512-9WeK9snM1BfxB38goUEv2FLnA6ja07UMfazFHzCXUb3NyDZAwfXvQiURQ6guTTMeHcOsdknULm1PDhs4uWtKyA==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.1", - "@nicolo-ribaudo/semver-v6": "^6.3.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.2.tgz", - "integrity": "sha512-Cid+Jv1BrY9ReW9lIfNlNpsI53N+FN7gE+f73zLAUbr9C52W4gKLWSByx47pfDJsEysojKArqOtOKZSVIIUTuQ==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.1", - "core-js-compat": "^3.31.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.1.tgz", - "integrity": "sha512-L8OyySuI6OSQ5hFy9O+7zFjyr4WhAfRjLIOkhQGYl+emwJkd/S4XXT1JpfrgR1jrQ1NcGiOh+yAdGlF8pnC3Jw==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "dev": true - }, - "node_modules/bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "devOptional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/bonjour-service": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", - "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", - "dev": true, - "dependencies": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "devOptional": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "peer": true, - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dev": true, - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001515", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz", - "integrity": "sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/child_process": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz", - "integrity": "sha512-Wmza/JzL0SiWz7kl6MhIKT5ceIlnFPJX+lwUGj7Clhy5MMldsSoJR0+uvRzOS5Kv45Mq7t1PoE8TsOA9bzvb6g==" - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "devOptional": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/clean-css": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", - "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", - "dev": true, - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, - "node_modules/client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", - "peer": true - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "dev": true - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "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" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/core-js-compat": { - "version": "3.31.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.1.tgz", - "integrity": "sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.9" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-loader": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", - "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", - "dev": true, - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.21", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.3", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/css-loader/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/css-loader/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/css-loader/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dev": true, - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true - }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", - "dev": true - }, - "node_modules/dns-packet": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", - "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", - "dev": true, - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dev": true, - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dev": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dotenv": { - "version": "16.3.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", - "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" - } - }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.461", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.461.tgz", - "integrity": "sha512-1JkvV2sgEGTDXjdsaQCeSwYYuhLRphRpc+g6EHTFELJXEiznLt3/0pZ9JuAOQ5p2rI3YxKTbivtvajirIfhrEQ==", - "dev": true - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/envinfo": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz", - "integrity": "sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==", - "dev": true, - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/es-module-lexer": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", - "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", - "dev": true - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.45.0.tgz", - "integrity": "sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.1.0", - "@eslint/js": "8.44.0", - "@humanwhocodes/config-array": "^0.11.10", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.6.0", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.1.tgz", - "integrity": "sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "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" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" - }, - "node_modules/fast-text-encoding": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz", - "integrity": "sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==" - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true, - "engines": { - "node": ">= 4.9.1" - } - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "devOptional": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/find-cache-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", - "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", - "dev": true, - "dependencies": { - "common-path-prefix": "^3.0.0", - "pkg-dir": "^7.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "dev": true, - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.4.tgz", - "integrity": "sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ==", - "dev": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/gapi-script": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gapi-script/-/gapi-script-1.2.0.tgz", - "integrity": "sha512-NKTVKiIwFdkO1j1EzcrWu/Pz7gsl1GmBmgh+qhuV2Ytls04W/Eg5aiBL91SCiBM9lU0PMu7p1hTVxhh1rPT5Lw==" - }, - "node_modules/gaxios": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.1.3.tgz", - "integrity": "sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==", - "dependencies": { - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.6.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/gcp-metadata": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.3.0.tgz", - "integrity": "sha512-FNTkdNEnBdlqF2oatizolQqNANMrcqJt6AAYt99B3y1aLLC8Hc5IOBb+ZnnzllodEEf6xMBp6wRcBbc16fa65w==", - "dependencies": { - "gaxios": "^5.0.0", - "json-bigint": "^1.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "devOptional": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/google-auth-library": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-8.9.0.tgz", - "integrity": "sha512-f7aQCJODJFmYWN6PeNKzgvy9LI2tYmXnzpNDHEjG5sDNPgGb2FXQyTBnXeSH+PAtpKESFD+LmHw3Ox3mN7e1Fg==", - "dependencies": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^5.0.0", - "gcp-metadata": "^5.3.0", - "gtoken": "^6.1.0", - "jws": "^4.0.0", - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/google-auth-library/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/google-auth-library/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/google-p12-pem": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-4.0.1.tgz", - "integrity": "sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ==", - "dependencies": { - "node-forge": "^1.3.1" - }, - "bin": { - "gp12-pem": "build/src/bin/gp12-pem.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/googleapis": { - "version": "122.0.0", - "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-122.0.0.tgz", - "integrity": "sha512-n8Gt7j9LzSkhQEGPOrcLBKxllTvW/0v6oILuwszL/zqgelNsGJYXVqPJllgJJ6RM7maJ6T35UBeYqI6GQ/IlJg==", - "dependencies": { - "google-auth-library": "^8.0.2", - "googleapis-common": "^6.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/googleapis-common": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-6.0.4.tgz", - "integrity": "sha512-m4ErxGE8unR1z0VajT6AYk3s6a9gIMM6EkDZfkPnES8joeOlEtFEJeF8IyZkb0tjPXkktUfYrE4b3Li1DNyOwA==", - "dependencies": { - "extend": "^3.0.2", - "gaxios": "^5.0.1", - "google-auth-library": "^8.0.2", - "qs": "^6.7.0", - "url-template": "^2.0.8", - "uuid": "^9.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/googleapis-common/node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" - }, - "node_modules/gtoken": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-6.1.2.tgz", - "integrity": "sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==", - "dependencies": { - "gaxios": "^5.0.1", - "google-p12-pem": "^4.0.0", - "jws": "^4.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/html-entities": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", - "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ] - }, - "node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "dev": true, - "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" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/html-minifier-terser/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/html-webpack-plugin": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz", - "integrity": "sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==", - "dev": true, - "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" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/html-webpack-plugin" - }, - "peerDependencies": { - "webpack": "^5.20.0" - } - }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "dev": true - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "dev": true - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", - "dev": true, - "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" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", - "dev": true - }, - "node_modules/immutable": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.1.tgz", - "integrity": "sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A==", - "devOptional": true - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/interpret": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "devOptional": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "devOptional": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jose": { - "version": "4.14.4", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.14.4.tgz", - "integrity": "sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==", - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "dependencies": { - "bignumber.js": "^9.0.0" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jwa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", - "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", - "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", - "dependencies": { - "jwa": "^2.0.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/launch-editor": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", - "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", - "dev": true, - "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.7.3" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true, - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", - "dev": true, - "dependencies": { - "fs-monkey": "^1.0.4" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "dev": true, - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/next": { - "version": "13.4.10", - "resolved": "https://registry.npmjs.org/next/-/next-13.4.10.tgz", - "integrity": "sha512-4ep6aKxVTQ7rkUW2fBLhpBr/5oceCuf4KmlUpvG/aXuDTIf9mexNSpabUD6RWPspu6wiJJvozZREhXhueYO36A==", - "peer": true, - "dependencies": { - "@next/env": "13.4.10", - "@swc/helpers": "0.5.1", - "busboy": "1.6.0", - "caniuse-lite": "^1.0.30001406", - "postcss": "8.4.14", - "styled-jsx": "5.1.1", - "watchpack": "2.4.0", - "zod": "3.21.4" - }, - "bin": { - "next": "dist/bin/next" - }, - "engines": { - "node": ">=16.8.0" - }, - "optionalDependencies": { - "@next/swc-darwin-arm64": "13.4.10", - "@next/swc-darwin-x64": "13.4.10", - "@next/swc-linux-arm64-gnu": "13.4.10", - "@next/swc-linux-arm64-musl": "13.4.10", - "@next/swc-linux-x64-gnu": "13.4.10", - "@next/swc-linux-x64-musl": "13.4.10", - "@next/swc-win32-arm64-msvc": "13.4.10", - "@next/swc-win32-ia32-msvc": "13.4.10", - "@next/swc-win32-x64-msvc": "13.4.10" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.1.0", - "fibers": ">= 3.1.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "sass": "^1.3.0" - }, - "peerDependenciesMeta": { - "@opentelemetry/api": { - "optional": true - }, - "fibers": { - "optional": true - }, - "sass": { - "optional": true - } - } - }, - "node_modules/next-auth": { - "version": "4.22.3", - "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-4.22.3.tgz", - "integrity": "sha512-XAgy9xV3J2eJOXrQhmxdjV6MLM29ibm6WtMXc3KY6IPZeApf+SuBuPvlqCUfbu5YsAzlg9WSw6u01dChTfeZOA==", - "dependencies": { - "@babel/runtime": "^7.20.13", - "@panva/hkdf": "^1.0.2", - "cookie": "^0.5.0", - "jose": "^4.11.4", - "oauth": "^0.9.15", - "openid-client": "^5.4.0", - "preact": "^10.6.3", - "preact-render-to-string": "^5.1.19", - "uuid": "^8.3.2" - }, - "peerDependencies": { - "next": "^12.2.5 || ^13", - "nodemailer": "^6.6.5", - "react": "^17.0.2 || ^18", - "react-dom": "^17.0.2 || ^18" - }, - "peerDependenciesMeta": { - "nodemailer": { - "optional": true - } - } - }, - "node_modules/next/node_modules/postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "peer": true, - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-fetch": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", - "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", - "dev": true - }, - "node_modules/nodemon": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.0.1.tgz", - "integrity": "sha512-g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw==", - "dev": true, - "dependencies": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^7.5.3", - "simple-update-notifier": "^2.0.0", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" - }, - "bin": { - "nodemon": "bin/nodemon.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" - } - }, - "node_modules/nodemon/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/nodemon/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/nodemon/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/nodemon/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/oauth": { - "version": "0.9.15", - "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", - "integrity": "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==" - }, - "node_modules/object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "node_modules/oidc-token-hash": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.0.3.tgz", - "integrity": "sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==", - "engines": { - "node": "^10.13.0 || >=12.0.0" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "dev": true, - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/openid-client": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.4.3.tgz", - "integrity": "sha512-sVQOvjsT/sbSfYsQI/9liWQGVZH/Pp3rrtlGEwgk/bbHfrUDZ24DN57lAagIwFtuEu+FM9Ev7r85s8S/yPjimQ==", - "dependencies": { - "jose": "^4.14.4", - "lru-cache": "^6.0.0", - "object-hash": "^2.2.0", - "oidc-token-hash": "^5.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, - "node_modules/openid-client/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/openid-client/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "dev": true, - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dev": true, - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dev": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "node_modules/pg": { - "version": "8.11.1", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.1.tgz", - "integrity": "sha512-utdq2obft07MxaDg0zBJI+l/M3mBRfIpEN3iSemsz0G5F2/VXx+XzqF4oxrbIZXQxt2AZzIUzyVg/YM6xOP/WQ==", - "dependencies": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.6.1", - "pg-pool": "^3.6.1", - "pg-protocol": "^1.6.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" - }, - "engines": { - "node": ">= 8.0.0" - }, - "optionalDependencies": { - "pg-cloudflare": "^1.1.1" - }, - "peerDependencies": { - "pg-native": ">=3.0.1" - }, - "peerDependenciesMeta": { - "pg-native": { - "optional": true - } - } - }, - "node_modules/pg-cloudflare": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", - "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", - "optional": true - }, - "node_modules/pg-connection-string": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.1.tgz", - "integrity": "sha512-w6ZzNu6oMmIzEAYVw+RLK0+nqHPt8K3ZnknKi+g48Ak2pr3dtljJW3o+D/n2zzCG07Zoe9VOX3aiKpj+BN0pjg==" - }, - "node_modules/pg-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pg-format/-/pg-format-1.0.4.tgz", - "integrity": "sha512-YyKEF78pEA6wwTAqOUaHIN/rWpfzzIuMh9KdAhc3rSLQ/7zkRFcCgYBAEGatDstLyZw4g0s9SNICmaTGnBVeyw==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/pg-int8": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/pg-pool": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", - "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", - "peerDependencies": { - "pg": ">=8.0" - } - }, - "node_modules/pg-protocol": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", - "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==" - }, - "node_modules/pg-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "dependencies": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pgpass": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", - "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", - "dependencies": { - "split2": "^4.1.0" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "devOptional": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", - "dev": true, - "dependencies": { - "find-up": "^6.3.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/postcss": { - "version": "8.4.26", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.26.tgz", - "integrity": "sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", - "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", - "dev": true, - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/postgres-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/postgres-bytea": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-date": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-interval": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "dependencies": { - "xtend": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/preact": { - "version": "10.16.0", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.16.0.tgz", - "integrity": "sha512-XTSj3dJ4roKIC93pald6rWuB2qQJO9gO2iLLyTe87MrjQN+HklueLsmskbywEWqCHlclgz3/M4YLL2iBr9UmMA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/preact" - } - }, - "node_modules/preact-render-to-string": { - "version": "5.2.6", - "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.2.6.tgz", - "integrity": "sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==", - "dependencies": { - "pretty-format": "^3.8.0" - }, - "peerDependencies": { - "preact": ">=10" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "dev": true, - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "node_modules/pretty-format": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz", - "integrity": "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==" - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" - }, - "peerDependencies": { - "react": "^18.2.0" - } - }, - "node_modules/react-router": { - "version": "6.14.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.14.1.tgz", - "integrity": "sha512-U4PfgvG55LdvbQjg5Y9QRWyVxIdO1LlpYT7x+tMAxd9/vmiPuJhIwdxZuIQLN/9e3O4KFDHYfR9gzGeYMasW8g==", - "dependencies": { - "@remix-run/router": "1.7.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/react-router-dom": { - "version": "6.14.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.14.1.tgz", - "integrity": "sha512-ssF6M5UkQjHK70fgukCJyjlda0Dgono2QGwqGvuk7D+EDGHdacEN3Yke2LTMjkrpHuFwBfDFsEjGVXBDmL+bWw==", - "dependencies": { - "@remix-run/router": "1.7.1", - "react-router": "6.14.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "devOptional": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", - "dev": true, - "dependencies": { - "resolve": "^1.20.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" - }, - "node_modules/regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "dev": true, - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true - }, - "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "dev": true, - "dependencies": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sass": { - "version": "1.63.6", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.63.6.tgz", - "integrity": "sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw==", - "devOptional": true, - "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-loader": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.2.tgz", - "integrity": "sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg==", - "dev": true, - "dependencies": { - "neo-async": "^2.6.2" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - } - } - }, - "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "dev": true - }, - "node_modules/selfsigned": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", - "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", - "dev": true, - "dependencies": { - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", - "dev": true, - "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" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/simple-update-notifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", - "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", - "dev": true, - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/simple-update-notifier/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/simple-update-notifier/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/simple-update-notifier/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dev": true, - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "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" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "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" - } - }, - "node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "peer": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-loader": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz", - "integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==", - "dev": true, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/styled-jsx": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", - "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", - "peer": true, - "dependencies": { - "client-only": "0.0.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.0.tgz", - "integrity": "sha512-JpcpGOQLOXm2jsomozdMDpd5f8ZHh1rR48OFgWUH3QsyZcfPgv2qDCYbcDEAYNd4OZRj2bWYKpwdll/udZCk/Q==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.9", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", - "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "devOptional": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dev": true, - "dependencies": { - "nopt": "~1.0.10" - }, - "bin": { - "nodetouch": "bin/nodetouch.js" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/tslib": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", - "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-template": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", - "integrity": "sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==" - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/webpack": { - "version": "5.88.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.1.tgz", - "integrity": "sha512-FROX3TxQnC/ox4N+3xQoWZzvGXSuscxR32rbzjpXgEzWudJFEJBpdlkkob2ylrv5yzzufD1zph1OoFsLtm6stQ==", - "dev": true, - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", - "es-module-lexer": "^1.2.1", - "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.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-cli": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", - "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", - "dev": true, - "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^2.1.1", - "@webpack-cli/info": "^2.0.2", - "@webpack-cli/serve": "^2.0.5", - "colorette": "^2.0.14", - "commander": "^10.0.1", - "cross-spawn": "^7.0.3", - "envinfo": "^7.7.3", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^3.1.1", - "rechoir": "^0.8.0", - "webpack-merge": "^5.7.3" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "5.x.x" - }, - "peerDependenciesMeta": { - "@webpack-cli/generators": { - "optional": true - }, - "webpack-bundle-analyzer": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/webpack-cli/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", - "dev": true, - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", - "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", - "dev": true, - "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/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", - "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": "^2.0.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", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.13.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-merge": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.9.0.tgz", - "integrity": "sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zod": { - "version": "3.21.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz", - "integrity": "sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==", - "peer": true, - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - } - } + "name": "scratch-project", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "scratch-project", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "axios": "^1.4.0", + "child_process": "^1.0.2", + "cookie-parser": "^1.4.6", + "dotenv": "^16.3.1", + "eslint": "^8.45.0", + "express": "^4.18.2", + "google-auth-library": "^8.9.0", + "googleapis": "^122.0.0", + "pg": "^8.11.1", + "pg-format": "^1.0.4", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router-dom": "^6.14.1", + "request": "^2.88.2" + }, + "devDependencies": { + "@babel/core": "^7.22.9", + "@babel/preset-env": "^7.22.9", + "@babel/preset-react": "^7.22.5", + "babel-loader": "^9.1.3", + "css-loader": "^6.8.1", + "html-webpack-plugin": "^5.5.3", + "nodemon": "^3.0.1", + "sass": "^1.63.6", + "sass-loader": "^13.3.2", + "style-loader": "^3.3.3", + "webpack": "^5.88.1", + "webpack-cli": "^5.1.4", + "webpack-dev-server": "^4.15.1" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", + "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.9.tgz", + "integrity": "sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.9", + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helpers": "^7.22.6", + "@babel/parser": "^7.22.7", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.8", + "@babel/types": "^7.22.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.9.tgz", + "integrity": "sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz", + "integrity": "sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz", + "integrity": "sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz", + "integrity": "sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz", + "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.1.tgz", + "integrity": "sha512-kX4oXixDxG197yhX+J3Wp+NpL2wuCFjWQAr6yX2jtCnflK9ulMI51ULFGIrWiX1jGfvAxdHp+XQCcP2bZGPs9A==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", + "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", + "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", + "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-wrap-function": "^7.22.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", + "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.9.tgz", + "integrity": "sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz", + "integrity": "sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.6", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", + "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", + "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", + "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", + "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", + "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", + "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.7.tgz", + "integrity": "sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", + "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz", + "integrity": "sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", + "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz", + "integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz", + "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", + "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz", + "integrity": "sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", + "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", + "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz", + "integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", + "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz", + "integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", + "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", + "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz", + "integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", + "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz", + "integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", + "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", + "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", + "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz", + "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", + "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", + "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz", + "integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz", + "integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz", + "integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", + "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz", + "integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.6.tgz", + "integrity": "sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", + "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", + "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz", + "integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", + "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz", + "integrity": "sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz", + "integrity": "sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", + "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", + "dev": true, + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz", + "integrity": "sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz", + "integrity": "sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", + "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", + "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", + "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", + "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", + "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", + "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz", + "integrity": "sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", + "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", + "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", + "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.9.tgz", + "integrity": "sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.9", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@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.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@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-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.7", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.22.5", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.5", + "@babel/plugin-transform-classes": "^7.22.6", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.22.5", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.5", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.5", + "@babel/plugin-transform-for-of": "^7.22.5", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.5", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", + "@babel/plugin-transform-modules-systemjs": "^7.22.5", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", + "@babel/plugin-transform-numeric-separator": "^7.22.5", + "@babel/plugin-transform-object-rest-spread": "^7.22.5", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.6", + "@babel/plugin-transform-parameters": "^7.22.5", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.5", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.5", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.5", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.4", + "babel-plugin-polyfill-corejs3": "^0.8.2", + "babel-plugin-polyfill-regenerator": "^0.5.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "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" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.5.tgz", + "integrity": "sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-transform-react-display-name": "^7.22.5", + "@babel/plugin-transform-react-jsx": "^7.22.5", + "@babel/plugin-transform-react-jsx-development": "^7.22.5", + "@babel/plugin-transform-react-pure-annotations": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz", + "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.22.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.8.tgz", + "integrity": "sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.7", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.7", + "@babel/types": "^7.22.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", + "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", + "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/@eslint/js": { + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", + "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", + "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "node_modules/@nicolo-ribaudo/semver-v6": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz", + "integrity": "sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@remix-run/router": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.7.1.tgz", + "integrity": "sha512-bgVQM4ZJ2u2CM8k1ey70o1ePFXsEzYVZoWghh6WjM8p59jQ7HxzbHW4SbnWFG7V9ig9chLawQxDTZ3xzOF8MkQ==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.0.tgz", + "integrity": "sha512-gsF+c/0XOguWgaOgvFs+xnnRqt9GwgTvIks36WpE6ueeI4KCEHHd8K/CKHqhOqrJKsYH8m27kRzQEvWXAwXUTw==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.35", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", + "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "dev": true + }, + "node_modules/@types/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==", + "dev": true + }, + "node_modules/@types/http-proxy": { + "version": "1.17.11", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz", + "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.4.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.2.tgz", + "integrity": "sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "node_modules/@types/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", + "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.2.tgz", + "integrity": "sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ws": { + "version": "8.5.5", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz", + "integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "engines": { + "node": ">=8" + } + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" + }, + "node_modules/axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/babel-loader": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "dev": true, + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.4.tgz", + "integrity": "sha512-9WeK9snM1BfxB38goUEv2FLnA6ja07UMfazFHzCXUb3NyDZAwfXvQiURQ6guTTMeHcOsdknULm1PDhs4uWtKyA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.1", + "@nicolo-ribaudo/semver-v6": "^6.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.2.tgz", + "integrity": "sha512-Cid+Jv1BrY9ReW9lIfNlNpsI53N+FN7gE+f73zLAUbr9C52W4gKLWSByx47pfDJsEysojKArqOtOKZSVIIUTuQ==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.1", + "core-js-compat": "^3.31.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.1.tgz", + "integrity": "sha512-L8OyySuI6OSQ5hFy9O+7zFjyr4WhAfRjLIOkhQGYl+emwJkd/S4XXT1JpfrgR1jrQ1NcGiOh+yAdGlF8pnC3Jw==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/bonjour-service": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/buffer-writer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", + "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001515", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz", + "integrity": "sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/child_process": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz", + "integrity": "sha512-Wmza/JzL0SiWz7kl6MhIKT5ceIlnFPJX+lwUGj7Clhy5MMldsSoJR0+uvRzOS5Kv45Mq7t1PoE8TsOA9bzvb6g==" + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clean-css": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", + "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", + "dev": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-parser": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", + "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", + "dependencies": { + "cookie": "0.4.1", + "cookie-signature": "1.0.6" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/cookie-parser/node_modules/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-js-compat": { + "version": "3.31.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.1.tgz", + "integrity": "sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.9" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-loader": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", + "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.21", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.3", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-loader/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-loader/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "node_modules/dns-packet": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", + "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", + "dev": true, + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", + "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/motdotla/dotenv?sponsor=1" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.461", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.461.tgz", + "integrity": "sha512-1JkvV2sgEGTDXjdsaQCeSwYYuhLRphRpc+g6EHTFELJXEiznLt3/0pZ9JuAOQ5p2rI3YxKTbivtvajirIfhrEQ==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/envinfo": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz", + "integrity": "sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", + "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.45.0.tgz", + "integrity": "sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.1.0", + "@eslint/js": "8.44.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.6.0", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.1.tgz", + "integrity": "sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "node_modules/fast-text-encoding": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz", + "integrity": "sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==" + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "dev": true, + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.4.tgz", + "integrity": "sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/gaxios": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.1.3.tgz", + "integrity": "sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==", + "dependencies": { + "extend": "^3.0.2", + "https-proxy-agent": "^5.0.0", + "is-stream": "^2.0.0", + "node-fetch": "^2.6.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/gcp-metadata": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.3.0.tgz", + "integrity": "sha512-FNTkdNEnBdlqF2oatizolQqNANMrcqJt6AAYt99B3y1aLLC8Hc5IOBb+ZnnzllodEEf6xMBp6wRcBbc16fa65w==", + "dependencies": { + "gaxios": "^5.0.0", + "json-bigint": "^1.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/google-auth-library": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-8.9.0.tgz", + "integrity": "sha512-f7aQCJODJFmYWN6PeNKzgvy9LI2tYmXnzpNDHEjG5sDNPgGb2FXQyTBnXeSH+PAtpKESFD+LmHw3Ox3mN7e1Fg==", + "dependencies": { + "arrify": "^2.0.0", + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "fast-text-encoding": "^1.0.0", + "gaxios": "^5.0.0", + "gcp-metadata": "^5.3.0", + "gtoken": "^6.1.0", + "jws": "^4.0.0", + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/google-auth-library/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/google-auth-library/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/google-p12-pem": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-4.0.1.tgz", + "integrity": "sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ==", + "dependencies": { + "node-forge": "^1.3.1" + }, + "bin": { + "gp12-pem": "build/src/bin/gp12-pem.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/googleapis": { + "version": "122.0.0", + "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-122.0.0.tgz", + "integrity": "sha512-n8Gt7j9LzSkhQEGPOrcLBKxllTvW/0v6oILuwszL/zqgelNsGJYXVqPJllgJJ6RM7maJ6T35UBeYqI6GQ/IlJg==", + "dependencies": { + "google-auth-library": "^8.0.2", + "googleapis-common": "^6.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/googleapis-common": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-6.0.4.tgz", + "integrity": "sha512-m4ErxGE8unR1z0VajT6AYk3s6a9gIMM6EkDZfkPnES8joeOlEtFEJeF8IyZkb0tjPXkktUfYrE4b3Li1DNyOwA==", + "dependencies": { + "extend": "^3.0.2", + "gaxios": "^5.0.1", + "google-auth-library": "^8.0.2", + "qs": "^6.7.0", + "url-template": "^2.0.8", + "uuid": "^9.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/googleapis-common/node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + }, + "node_modules/gtoken": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-6.1.2.tgz", + "integrity": "sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==", + "dependencies": { + "gaxios": "^5.0.1", + "google-p12-pem": "^4.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/har-validator/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/har-validator/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", + "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dev": true, + "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" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz", + "integrity": "sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==", + "dev": true, + "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" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "webpack": "^5.20.0" + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "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" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true + }, + "node_modules/immutable": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.1.tgz", + "integrity": "sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/ipaddr.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "dependencies": { + "bignumber.js": "^9.0.0" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "dependencies": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/launch-editor": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", + "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.7.3" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dev": true, + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-fetch": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "node_modules/nodemon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.0.1.tgz", + "integrity": "sha512-g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/nodemon/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nodemon/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "engines": { + "node": "*" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/packet-reader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", + "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "node_modules/pg": { + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.1.tgz", + "integrity": "sha512-utdq2obft07MxaDg0zBJI+l/M3mBRfIpEN3iSemsz0G5F2/VXx+XzqF4oxrbIZXQxt2AZzIUzyVg/YM6xOP/WQ==", + "dependencies": { + "buffer-writer": "2.0.0", + "packet-reader": "1.0.0", + "pg-connection-string": "^2.6.1", + "pg-pool": "^3.6.1", + "pg-protocol": "^1.6.0", + "pg-types": "^2.1.0", + "pgpass": "1.x" + }, + "engines": { + "node": ">= 8.0.0" + }, + "optionalDependencies": { + "pg-cloudflare": "^1.1.1" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, + "node_modules/pg-cloudflare": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", + "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", + "optional": true + }, + "node_modules/pg-connection-string": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.1.tgz", + "integrity": "sha512-w6ZzNu6oMmIzEAYVw+RLK0+nqHPt8K3ZnknKi+g48Ak2pr3dtljJW3o+D/n2zzCG07Zoe9VOX3aiKpj+BN0pjg==" + }, + "node_modules/pg-format": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pg-format/-/pg-format-1.0.4.tgz", + "integrity": "sha512-YyKEF78pEA6wwTAqOUaHIN/rWpfzzIuMh9KdAhc3rSLQ/7zkRFcCgYBAEGatDstLyZw4g0s9SNICmaTGnBVeyw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-pool": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", + "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", + "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pgpass": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "dependencies": { + "split2": "^4.1.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/postcss": { + "version": "8.4.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.26.tgz", + "integrity": "sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", + "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dev": true, + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-router": { + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.14.1.tgz", + "integrity": "sha512-U4PfgvG55LdvbQjg5Y9QRWyVxIdO1LlpYT7x+tMAxd9/vmiPuJhIwdxZuIQLN/9e3O4KFDHYfR9gzGeYMasW8g==", + "dependencies": { + "@remix-run/router": "1.7.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.14.1.tgz", + "integrity": "sha512-ssF6M5UkQjHK70fgukCJyjlda0Dgono2QGwqGvuk7D+EDGHdacEN3Yke2LTMjkrpHuFwBfDFsEjGVXBDmL+bWw==", + "dependencies": { + "@remix-run/router": "1.7.1", + "react-router": "6.14.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dev": true, + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sass": { + "version": "1.63.6", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.63.6.tgz", + "integrity": "sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-loader": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.2.tgz", + "integrity": "sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg==", + "dev": true, + "dependencies": { + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "node_modules/selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "dev": true, + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "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" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "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" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-loader": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz", + "integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.0.tgz", + "integrity": "sha512-JpcpGOQLOXm2jsomozdMDpd5f8ZHh1rR48OFgWUH3QsyZcfPgv2qDCYbcDEAYNd4OZRj2bWYKpwdll/udZCk/Q==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/tslib": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", + "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==", + "dev": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-template": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", + "integrity": "sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/webpack": { + "version": "5.88.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.1.tgz", + "integrity": "sha512-FROX3TxQnC/ox4N+3xQoWZzvGXSuscxR32rbzjpXgEzWudJFEJBpdlkkob2ylrv5yzzufD1zph1OoFsLtm6stQ==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "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.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", + "colorette": "^2.0.14", + "commander": "^10.0.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", + "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", + "dev": true, + "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/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "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": "^2.0.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", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.9.0.tgz", + "integrity": "sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } } diff --git a/package.json b/package.json index 1ac06ea..4cc5e75 100644 --- a/package.json +++ b/package.json @@ -1,46 +1,46 @@ { - "name": "scratch-project", - "version": "1.0.0", - "description": "Welcome to the Google Sheets to SQL app.", - "main": "index.js", - "scripts": { - "start": "nodemon server/server.js", - "client": "webpack-dev-server --mode development --open --hot", - "build": "webpack --mode production", - "dev": " nodemon ./server/server.js & webpack-dev-server --mode development" - }, - "keywords": [], - "author": "", - "license": "ISC", - "devDependencies": { - "@babel/core": "^7.22.9", - "@babel/preset-env": "^7.22.9", - "@babel/preset-react": "^7.22.5", - "babel-loader": "^9.1.3", - "css-loader": "^6.8.1", - "html-webpack-plugin": "^5.5.3", - "nodemon": "^3.0.1", - "sass": "^1.63.6", - "sass-loader": "^13.3.2", - "style-loader": "^3.3.3", - "webpack": "^5.88.1", - "webpack-cli": "^5.1.4", - "webpack-dev-server": "^4.15.1" - }, - "dependencies": { - "axios": "^1.4.0", - "child_process": "^1.0.2", - "dotenv": "^16.3.1", - "eslint": "^8.45.0", - "express": "^4.18.2", - "gapi-script": "^1.2.0", - "google-auth-library": "^8.9.0", - "googleapis": "^122.0.0", - "next-auth": "^4.22.3", - "pg": "^8.11.1", - "pg-format": "^1.0.4", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-router-dom": "^6.14.1" - } + "name": "scratch-project", + "version": "1.0.0", + "description": "Welcome to the Google Sheets to SQL app.", + "main": "index.js", + "scripts": { + "start": "nodemon server/server.js", + "client": "webpack-dev-server --mode development --open --hot", + "build": "webpack --mode production", + "dev": " nodemon ./server/server.js & webpack-dev-server --mode development" + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "@babel/core": "^7.22.9", + "@babel/preset-env": "^7.22.9", + "@babel/preset-react": "^7.22.5", + "babel-loader": "^9.1.3", + "css-loader": "^6.8.1", + "html-webpack-plugin": "^5.5.3", + "nodemon": "^3.0.1", + "sass": "^1.63.6", + "sass-loader": "^13.3.2", + "style-loader": "^3.3.3", + "webpack": "^5.88.1", + "webpack-cli": "^5.1.4", + "webpack-dev-server": "^4.15.1" + }, + "dependencies": { + "axios": "^1.4.0", + "child_process": "^1.0.2", + "cookie-parser": "^1.4.6", + "dotenv": "^16.3.1", + "eslint": "^8.45.0", + "express": "^4.18.2", + "google-auth-library": "^8.9.0", + "googleapis": "^122.0.0", + "pg": "^8.11.1", + "pg-format": "^1.0.4", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router-dom": "^6.14.1", + "request": "^2.88.2" + } } diff --git a/server/controllers/authController.js b/server/controllers/authController.js index 4703e64..d65f984 100644 --- a/server/controllers/authController.js +++ b/server/controllers/authController.js @@ -1,131 +1,219 @@ const express = require('express'); // Express web server framework -const request = require('request'); // "Request" library -const cors = require('cors'); -const querystring = require('querystring'); +//const request = require('request'); // "Request" library +//const cors = require('cors'); +//const querystring = require('querystring'); const cookieParser = require('cookie-parser'); - - -//from step one, initialize auth which will establish the client id and scope... this is the initial scopes?? -authController.initializeAuth = (req, res, next) => -{ - try { - const state = generateRandomString(16); - // store state on a cookie for spotify oauth communication with server - res.cookie(stateKey, state); - console.log('cookie stateKey: ', state); - - // object sent as res.query to spotify so your application can request authorization - const scope = 'user-read-private user-read-email'; - - //creates the url for the front end to handle - res.locals.reqAuthentication = querystring.stringify({ - response_type: 'code', - client_id: client_id, - scope: scope, - redirect_uri: redirect_uri, - state: state - }) - console.log('initialize auth url complete'); - return next(); - } catch (err) { - return next({ - log: 'error in authController.initializeAuth: ' + err, - message: 'An error occured while redirecting to Spotify' - }) - } - +const { google } = require('googleapis'); +const { OAuth2Client } = require('google-auth-library'); +require('dotenv').config(); + +//We are requesting authorization from the user so our app can access their Google Sheets. Our app must build and send a GET request to the /authorize endpoint with the following parameters: +// -client_id: REQUIRED: The client_id generated by the Google API after registering your application response_type. +// -redirect_uri: REQUIRED: This is the URI to redirect to after the user grants or denies permission. This URI needs to have been entered in teh Redirect URI allowlist that you specified when registering your application. The value of your redirect_uri in the router must exactly match the value entered when you registered your application, including upper or lowercase, terminating slashes, and such.) +// -state: OPTIONAL, but STRONGLY recommended: An opaque value used by the client to maintain state between the request and the callback. The authorization server inclues this value when redirecting the user back to the client. This provides protection against attacks such as cross-site request forgery (an attack against the client's redirection URI that allows an attack to inject its own authorization code/access token ). See RFC-6749. +// -scope: OPTIONAL: A space-separated list of scopes.If no scopes are specified, authorization will be granted only to access publicly available information: that is, only information normally visible in the Google desktop, web, and mobile sites.) +// -show_dialog: OPTIONAL: Whether or not to force the user to approve the app again if they’ve already done so. If false (default), a user who has already approved the application may be automatically redirected to the URI specified by redirect_uri. If true, the user will not be automatically redirected and will have to approve the app again. + +//PKCE: Proof Key for Code Exchange: In AuthCode flow typically, the first call (authorization request) is made through a browser(or, user-agent) to obtain the authorization code. this makes the auth code susceptible to an 'Authorization Code Interception Attack'. This can happen in a few ways, like having an attacker register a custom URI scheme that matches the response of the auth code request, or gaining access to HTTP req/res logs. +//Idea behind PKCE: Proof of Possession. Client app gives proof to the auth server that the auth code belongs in the client app in order for the auth server to issue an access token for client app. +// -Code verifier: REQUIRED: 'high-entropy cryptographic random string' which meets a certain requirement (min 43 chars, max 128 chars, etc) +// -Code challenge: REQUIRED: created by hashing the code_verifier and base64URL encoding the resulting hash +// -code_challenge_method: REQUIRED: 'S256' (reference to how it is hashed) +//Basic flow: 1) Client sends auth request along with code_challenge and code_challenge_method to authorization endpoint (URL). 2) The auth server notes the code_challenge and the code_challenge_method and issues the auth code. 3) The client will send an access token request to the auth endpoint/URL along with the code_verifier. 4) the auth server validates the code_verifier with the already received code_challenge and the code_challenge_method and issues the access token if the validation is successful. +//every time an auth request is made, a new code challenge is sent. + +// ! SET REDIRECT URL TO 8080 TO RUN IN DEV MODE. CHANGE TO 3000 IF IN PRODUCTION + +// const stateKey = 'google_auth_state'; + +/** + * Generates a random string containing numbers and letters + * @param {number} length The length of the string + * @return {string} The generated string + */ + +//function to create a random string to be stored as a state variable for added security +const generateRandomString = function (length) { + let text = ''; + const possible = + 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + + for (let i = 0; i < length; i++) { + text += possible.charAt(Math.floor(Math.random() * possible.length)); + } + return text; }; +const authController = {}; + +//this middleware function creates the oauth2 client as well as the url that will be used for the consent dialog + +authController.initializeAuth = async (req, res, next) => { + console.log('in authController createAuthUrl'); + + try { + //creates a new instance of a OAuth2 client + const oauth2Client = new google.auth.OAuth2( + process.env.GOOGLE_CLIENT_ID, + process.env.GOOGLE_CLIENT_SECRET, + 'http://localhost:8080/callback' + ); + + console.log(oauth2Client); + const scopes = 'https://www.googleapis.com/auth/spreadsheets'; + const state = generateRandomString(16); + + //generate a code_verifier and code_challenge + //const codes = await OAuth2Client.generateCodeVerifierAsync(); + //console.log('the codes are ', codes); + + //passes in an options object to generateAuthUrl + const url = oauth2Client.generateAuthUrl({ + //recommended: indicates whether your app can refresh access tokens when the user is not present at the browser. default is 'online', 'offline' is if your app needs to refresh access tokens when user is not present at browser + access_type: 'offline', //gets a refresh token + //required: identify resources that pp can access on user's behalf + scope: scopes, + state: state, + // response_type: code, + // //when using generateCodeVerifierAsync, make sure to use code_challenge_method 'S256'; + // code_challenge_method: 'S256', + // //pass along the generated code challenge + // code_challenge: codes.codeChallenge, + }); + + console.log('auth url is ', url); + res.locals.authUrl = url; + next(); + } catch (error) { + return next({ + log: 'error in authController.createAuthUrl: ', + message: { + error: 'An error occured while redirecting to Google ', + error, + }, + }); + } +}; -// check spotify's response for state parameter -authController.checkState = (req, res, next) => { - // the state parameter will tell us if the user was authenticated by spotify, if they did not choose to redirect to spotify, or if there was an error - const storedState = req.cookies ? req.cookies[stateKey] : null - - try { - - const state = req.query.state || null; - console.log('state returned from spotify: ', state); - - if (state === null || state !== storedState) { - // user choose not to redirect to spotify or there was an error - - //! spotify's example: - /* - res.redirect('/#' + - querystring.stringify({ - error: 'state_mismatch' - })); - */ - - return next({ - log: 'spotify authentication: state mismatch. No error.', - message: 'Error authenticating user. Please try again.' - }) - - } else { - // spotify authenticated user credentials - return next(); - } - } catch (err) { - return next({ - log: 'error in authController.checkState: ' + err, - message: 'Error authenticating user. Please try again.' - }) - } - -} +authController.handleCallback = () => {}; + +// +// authController.initializeAuth = (req, res, next) => { +// try { +// const state = generateRandomString(16); +// // store created state on a cookie for google oauth communication with server +// res.cookie(stateKey, state); +// console.log('cookie stateKey: ', state); + +// // object sent as res.query to google so your application can request authorization +// const scope = 'user-read-private user-read-email'; +// scopes: ['https://www.googleapis.com/auth/spreadsheets'], +// //creates the url query string for the front end to handle +// (res.locals.reqAuthentication = querystring.stringify({ +// response_type: 'code', +// client_id: GOOGLE_CLIENT_ID, +// scope: scope, +// redirect_uri: redirect_uri, +// state: state, +// })); +// console.log('initialize auth url complete'); +// return next(); +// } catch (err) { +// return next({ +// log: 'error in authController.initializeAuth: ' + err, +// message: 'An error occured while redirecting to Google', +// }); +// } +// }; + +// // check spotify's response for state parameter +// authController.checkState = (req, res, next) => { +// // the state parameter will tell us if the user was authenticated by spotify, if they did not choose to redirect to spotify, or if there was an error +// const storedState = req.cookies ? req.cookies[stateKey] : null; + +// try { +// const state = req.query.state || null; +// console.log('state returned from spotify: ', state); + +// if (state === null || state !== storedState) { +// // user choose not to redirect to spotify or there was an error + +// //! spotify's example: +// /* +// res.redirect('/#' + +// querystring.stringify({ +// error: 'state_mismatch' +// })); +// */ + +// return next({ +// log: 'spotify authentication: state mismatch. No error.', +// message: 'Error authenticating user. Please try again.', +// }); +// } else { +// // spotify authenticated user credentials +// return next(); +// } +// } catch (err) { +// return next({ +// log: 'error in authController.checkState: ' + err, +// message: 'Error authenticating user. Please try again.', +// }); +// } +// }; // ! bad practice - making a post request in middleware // need to update the structure of this middleware and add the post request to router, but just checking if functional for now based off spotify examples // request access tokens from spotify authController.getTokens = (req, res, next) => { - const code = req.query.code || null; - console.log('CODE: ', code); - // clear statekey that was stored on cookie as it's no longer needed. Will be using access and refresh token to communicate with spotify api - res.clearCookie(stateKey); - const authOptions = { - url: 'https://accounts.spotify.com/api/token', - form: { - code: code, - redirect_uri: redirect_uri, - grant_type: 'authorization_code' - }, - headers: { - 'Authorization': 'Basic ' + (new Buffer(client_id + ':' + client_secret).toString('base64')) - }, - json: true - }; - - // request refresh and access tokens from spotify - request.post(authOptions, function(error, response, body) { - if (!error && response.statusCode === 200) { - console.log('body: ', body); - // Object.values(body)[0] - // Object.values(body)[3] - res.locals.accessToken = body.access_token; - res.locals.refreshToken = body.refresh_token; - - res.locals.options = { - url: 'https://api.spotify.com/v1/me', - headers: { 'Authorization': 'Bearer ' + res.locals.refreshToken }, - json: true - }; - - // TODO: STORE ACCESS TOKENS IN DATABASE - - return next(); - - // ! spotify example - /* + const code = req.query.code || null; + console.log('CODE: ', code); + // clear statekey that was stored on cookie as it's no longer needed. Will be using access and refresh token to communicate with spotify api + res.clearCookie(stateKey); + const authOptions = { + url: 'https://accounts.spotify.com/api/token', + form: { + code: code, + redirect_uri: redirect_uri, + grant_type: 'authorization_code', + }, + headers: { + Authorization: + 'Basic ' + + new Buffer(client_id + ':' + client_secret).toString('base64'), + }, + json: true, + }; + + // request refresh and access tokens from spotify + request.post(authOptions, function (error, response, body) { + if (!error && response.statusCode === 200) { + console.log('body: ', body); + // Object.values(body)[0] + // Object.values(body)[3] + res.locals.accessToken = body.access_token; + res.locals.refreshToken = body.refresh_token; + + res.locals.options = { + url: 'https://api.spotify.com/v1/me', + headers: { Authorization: 'Bearer ' + res.locals.refreshToken }, + json: true, + }; + + // TODO: STORE ACCESS TOKENS IN DATABASE + + return next(); + + // ! spotify example + /* // use the access token to access the Spotify Web API request.get(options, function(error, response, body) { console.log(body); }); */ - // ! spotify example - /* + // ! spotify example + /* // we can also pass the token to the browser to make requests from there res.redirect('/#' + querystring.stringify({ @@ -133,18 +221,12 @@ authController.getTokens = (req, res, next) => { refresh_token: refresh_token })); */ - } else { - return next({ - log: 'spotify authentication: invalid token' - }); - - } - }); - - - -} - - + } else { + return next({ + log: 'spotify authentication: invalid token', + }); + } + }); +}; -module.exports = authController; \ No newline at end of file +module.exports = authController; diff --git a/server/controllers/googleController.js b/server/controllers/googleController.js new file mode 100644 index 0000000..455ecbf --- /dev/null +++ b/server/controllers/googleController.js @@ -0,0 +1,38 @@ +const googleController = {}; + +spotifyController.getAccountInfo = async (req, res, next) => { + + try { + console.log('entered getAccountInfo'); + console.log('body', req.body); + const accessToken = req.body.accessToken; + console.log('accessToken', accessToken); + + const searchParams = { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer ' + accessToken, + }, + }; + const response = await fetch('https://api.spotify.com/v1/me', searchParams); + const data = await response.json(); + console.log('data', data); + const { email, display_name } = data; + console.log('email', email, 'dispaly name', display_name); + res.locals.email = email; + res.locals.username = display_name; + console.log('leaving getAccountInfo'); + return next(); + } catch (err) { + return next({ + log: `spotifyController.getAccountInfo ERROR: trouble fetching spoitfy email`, + message: { + err: `spotifyController.getAccountInfo: ERROR: ${err}`, + }, + }); + } + }; + + module.exports = spotifyController; + \ No newline at end of file diff --git a/server/controllers/mainAppController.js b/server/controllers/mainAppController.js deleted file mode 100644 index f42b0c3..0000000 --- a/server/controllers/mainAppController.js +++ /dev/null @@ -1,152 +0,0 @@ -// const axios = require('axios'); -// const db = require('../models/sqlModels'); -// const format = require('pg-format'); -// const exec = require('child_process').exec; -// const sqlController = {}; -// const fsCallback = require('fs'); -// const path = require('path'); - -// const tableName = 'peopleInAfrica'; -// let colNames = []; -// // primaryKey = 'id'; - -// sqlController.createTable = async (req, res, next) => { -// const {primaryKey} = req.body - -// //get item from each row in that position -// // const matrixTranspose = (matrix) => { -// // const transposed = []; - -// // for (let i = 0; i < matrix[0].length; i++) { -// // const row = []; -// // for (let j = 0; j < matrix.length; j++) { -// // row.push(matrix[i][j]); -// // } -// // transposed.push(row); -// // } -// // return transposed; -// // }; -// // [ -// // ["id", "name"], -// // ["1", "q"], -// // ["2", "w"] -// // ] -// // fsCallback.readFile( -// // path.resolve(__dirname, '../models/data.json'), -// // 'UTF-8', -// // (err, data) => { -// // if (err) { -// // console.log(err); -// // return; -// // } - -// // return next(createErr({ -// // method: 'getCharacters', -// // type: 'reading file', -// // err, -// // })); -// //console.log(data) -// const sheet = res.locals.data; -// console.log('sheet:', sheet); -// if(!primaryKey) primaryKey = sheets[0][0]; -// //const reversedSheet = matrixTranspose(sheet); -// // [ -// // ["id", "1", "2"], -// // ["name", "q", "w"] -// // -// // ] - -// //console.log('reveredSheet:', sheet); -// //ERROR CHECKER that we don't need anymore as SQL will throw back error for duplicates -// // for (let col = 0; col < reversedSheet.length; col++) { -// // if (reversedSheet[col][0] === primaryKey) { -// // if ( -// // new Set(reversedSheet[col][0].slice(1)).size !== -// // reversedSheet[col][0].slice(1).length -// // ) { -// // console.log('primary key not unique'); -// // return; -// // } -// // } -// // } -// // res.locals.characters = parsedData.results; -// // return next(); - -// //create an empty matrix based on our data.json -// const numOfRows = sheet.length; -// const numOfCols = sheet[0].length; -// // let matrix = new Array(numOfRows); - -// // for (let i = 0; i < numOfRows; i++) { -// // matrix[i] = new Array(numOfCols); -// // } - -// // //assign each cell value into it's respective matrix index -// // sheet.forEach((col, i) => { -// // //colNames.push(col[0]) -// // col.forEach((cell, j) => { -// // matrix[j][i] = cell; -// // }); -// // }); -// // console.log(matrix) -// // transform col array to two array - -// // make $1, $2, $3... our conditional checks if we reached the end, if so we no longer need a comma -// let value = ''; -// for (let i = 0; i < numOfCols; i++) { -// if (i === numOfCols - 1) value += `$${i + 1}`; -// else value += `$${i + 1},`; -// } - -// console.log('value: ', value); - -// //grabs our column names -// colNames = sheet[0]; -// // console.log("colNames: ", colNames) - -// //insert values into respective columns -// const text2 = `INSERT INTO ${tableName} (${colNames.join( -// ',' -// )}) VALUES (${value})`; -// console.log('text2: ', text2); - -// //assigns the type of values (varchar) that can be input into our columns -// let subText = ''; -// for (let i = 0; i < colNames.length; i++) { -// subText += `${colNames[i].replace(/\s/g, '')} varchar,`; -// } -// // console.log('subText:', subText) - -// //our query text if table does not exist yet -// const text1 = `CREATE TABLE IF NOT EXISTS ${tableName} ( -// ${subText} -// PRIMARY KEY (${primaryKey}) -// )`; - -// console.log('text1: ', text1); - -// //using async await, we push our data using a for loop - -// async function queryDB() { -// try { -// const createTable = await db.query(text1); -// //may need to slice out first element to get rid of our column name, leaving it as i+1 for now -// for (let i = 1; i < sheet.length; i++) { -// await db.query(text2, sheet[i]); -// } -// } catch (err) { -// console.log(`invalid entry :${err}`); -// return next({ -// log:`sqlController.createTable: Error: ${err}`, -// message: {err: 'Error in your controller. Check server logs for details'} -// }); -// } -// } -// await queryDB(); -// return next(); -// }; -// // ); -// // }; -// // sqlController.createTable(); - -// module.exports = sqlController; diff --git a/server/controllers/userController.js b/server/controllers/userController.js new file mode 100644 index 0000000..c6cd9d5 --- /dev/null +++ b/server/controllers/userController.js @@ -0,0 +1,176 @@ +const { Users } = require('../models/userModels.js'); + +const userController = {}; + +//fetching user document from 'Users' collection in database +userController.getUserInfo = async (req, res, next) => { + const email = req.query.email; + if (!email) + return next({ + log: `userController.getUserInfo ERROR: email missing from req body`, + message: { + err: 'userController.getUserInfo: ERROR: email missing from req body', + }, + }); + try { + const userInfo = await Users.findOne({ email }); + res.locals.userInfo = userInfo; + /* Expect userInfo to come back as: + { + email: String, + location: { + city: String, + state: String, + } + artists: [Artist1, Artist2, Artist3] + genres: [Genre1, Genre2, Genre3] + } + */ + + return next(); + } catch { + return next({ + log: `userController.getUserInfo ERROR: trouble getting user data from database`, + message: { + err: 'userController.getUserInfo: ERROR: trouble getting user data from database', + }, + }); + } +}; + +userController.createUser = async (req, res, next) => { + const { email, city, state, accessToken, username } = req.body; + if (!email || !city || !state || !username || !accessToken) + return next({ + log: `userController.createUser ERROR: missing email or location on req body`, + message: { + err: 'userController.createUser: ERROR: missing email or location on req body', + }, + }); + try { + const newUser = await Users.create({ + email, + accessToken, + username, + location: { city, state }, + }); + res.locals.newUser = newUser; + return next(); + } catch (err) { + return next({ + log: `userController.createUser ERROR: trouble creating new user`, + message: { + err: `userController.createUser ERROR: ${err}`, + }, + }); + } +}; + +userController.updateUser = async (req, res, next) => { + const email = req.query.email; + const { artists, genres, location } = req.body; + console.log(artists); + console.log(genres); + + if (!artists && !genres && !location) + return next({ + log: `userController.updateUser ERROR: missing artist/genre/location on req body`, + message: { + err: 'userController.updateUser: ERROR: missing artist/genre/location on req body', + }, + }); + + try { + if (location) { + const updatedUser = await Users.findOneAndUpdate( + { email: email }, + { $set: { location: location } }, + { new: true } + ); + } + if (artists) { + const updatedUser = await Users.findOneAndUpdate( + { email: email }, + { $push: { artists: artists } }, + { new: true } + ); + res.locals.updatedUser = updatedUser; + } + if (genres) { + const updatedUser = await Users.findOneAndUpdate( + { email: email }, + { genres: genres }, + { new: true } + ); + res.locals.updatedUser = updatedUser; + } + console.log(res.locals.updatedUser); + + return next(); + } catch (err) { + return next({ + log: `userController.updateUser ERROR: trouble updating user`, + message: { + err: `userController.updateUser ERROR: ${err}`, + }, + }); + } +}; +//initially updates users prefered artists +userController.updateUserSpotify = async (req, res, next) => { + const email = res.locals.email; + const artists = res.locals.spotifyArtists; + if (!artists || !email) + return next({ + log: `userController.updateUserSpotify ERROR: missing artist or email`, + message: { + err: 'userController.updateUserSpotify: ERROR: missing artist or email', + }, + }); + + try { + const updatedUser = await Users.findOneAndUpdate( + { email }, + { artists }, + { new: true } + ); + res.locals.updatedUserSpotify = updatedUserSpotify; + return next(); + } catch (err) { + return next({ + log: `userController.createUserSpotify ERROR: trouble updating user with Spotify info`, + message: { + err: `userController.createUserSpotify ERROR: ${err}`, + }, + }); + } +}; + +//add middleware to send access token to database +userController.addToken = async (req, res, next) => { + console.log('entering addToken'); + const accessToken = req.body.accessToken; + const email = res.locals.userEmail; + const username = res.locals.username; + const exists = false; + try { + const userDoc = await Users.findOneAndUpdate( + { email: email }, + { accessToken, username }, + { new: true } + ); + if (userDoc) exists = true; + res.locals.exists = exists; + console.log('res.locals.exists', res.locals.exists); + console.log('leaving addToken'); + return next(); + } catch (err) { + return next({ + log: `userController.updateUserSpotify ERROR: trouble updating spotify token to database`, + message: { + err: `userController.updateUserSpotify ERROR: ${err}`, + }, + }); + } +}; +module.exports = userController; diff --git a/server/routes/authRoute.js b/server/routes/authRoute.js deleted file mode 100644 index da3839e..0000000 --- a/server/routes/authRoute.js +++ /dev/null @@ -1,73 +0,0 @@ -const express = require('express'); -const fs = require('fs'); -const { google } = require('googleapis'); -const dotenv = require('dotenv').config(); - -const authRouter = express.Router(); - - - -//step 1 the initial get request from client to server -// router.get('/', authController.initializeAuth, (req, res) => { -// console.log('reached authentication router.get redirect'); -// //returns the link to the front end with the client id , scope, redirect uri, and state -// return res.status(200).json(res.locals.reqAuthentication); -// }); - - - -// router.get( -// '/callback', -// authController.checkState, -// //callback route which will verify that that state is not null and the continues, -// authController.getTokens, -// //callback route which will verify that that state is not null and the continues, -// (req, res) => { -// console.log('acces token: ', res.locals.accessToken); -// console.log('refresh token: ', res.locals.refreshToken); -// console.log( -// 'options to pass into spotify api requests: ', -// res.locals.options -// ); -// return res.status(200).json(res.locals.accessToken); -// } -// ); - - - -const oauth2Client = new google.auth.OAuth2( - GOOGLE_CLIENT_ID, - GOOGLE_CLIENT_SECRET, - 'http://localhost1111' -); - -//access the scopes -const scopes = ['https://www.googleapis.com/auth/spreadsheets']; - -//generate URL that asks permissions for google sheets scope -const authorizationUrl = oauth2Client.generateAuthUrl({ - //'online' is default, 'offline' gets refresh token - access_type: 'offline', - scope: scopes, - include_granted_scopes: true, - //you only get a refresh token in the response on the first authorization from the user. subsequent authorizations will not return the refresh_token. when testing, go to your google account permissions page, and under 'third-party apps' menu, remove access to your app and confirm. then the next oauth2 request will include a refresh token -}); - -//configure googleapis to use authentication credentials -google.options({ auth: oauth2Client }); - -async function authenticate(scopes) { - return new Promise((resolve, reject)); -} - -//hey tristan -//got a little sidetracked last night (as anticipated) reading the docs on google. the videos i found for auth.js were a little unclear and confusing, so I dove back into the developers.google page listed below. attached are some oauth code examples provided by google that i mishmashed above before getting tired and calling it a day. i think that the git code examples are useful but i don't think they belong in this router file. would be helpful to pick your brain on the routing for this because i am feeling like it might replace the current authorization function in the server file, but obviously i'm hesitant to play around with that. can't wait to talk about this in the morning! - -//developers.google.com/identity/protocols/oauth2/web-server - -//https://github.com/googleapis/google-api-nodejs-client/blob/main/samples/oauth2.js -//https://github.com/googleapis/google-api-nodejs-client#authentication-and-authorization - -//https://github.com/googleworkspace/node-samples/blob/main/sheets/quickstart/index.js - -https: module.exports = authRouter; diff --git a/server/routes/authRouter.js b/server/routes/authRouter.js new file mode 100644 index 0000000..3cb9a6e --- /dev/null +++ b/server/routes/authRouter.js @@ -0,0 +1,59 @@ +const express = require('express'); + +const fs = require('fs'); +const { google } = require('googleapis'); + +const authController = require('../controllers/authController.js'); + +const authRouter = express.Router(); + +//this request generates the authorization URL, which is returned out on the response body and provided to the front end where the user is redirected to the URL. +authRouter.get('/', authController.initializeAuth, (req, res) => { + console.log('reached authRouter.get to initialize authentication'); + return res.status(200).json(res.locals.authUrl); +}); + +authRouter.use('/callback', authController.handleCallback, (req, res) => { + console.log('reached authRouter.get to handleCallback '); + return res.status(200).json(); +}); + +//step 1 the initial get request from client to server +// router.get('/', authController.initializeAuth, (req, res) => { +// console.log('reached authentication router.get redirect'); +// //returns the link to the front end with the client id , scope, redirect uri, and state +// return res.status(200).json(res.locals.reqAuthentication); +// }); + +// router.get( +// '/callback', +// authController.checkState, +// //callback route which will verify that that state is not null and the continues, +// authController.getTokens, +// //callback route which will verify that that state is not null and the continues, +// (req, res) => { +// console.log('acces token: ', res.locals.accessToken); +// console.log('refresh token: ', res.locals.refreshToken); +// console.log( +// 'options to pass into spotify api requests: ', +// res.locals.options +// ); +// return res.status(200).json(res.locals.accessToken); +// } +// ); + +//configure googleapis to use authentication credentials +// google.options({ auth: oauth2Client }); + +// async function authenticate(scopes) { +// return new Promise((resolve, reject)); +// } + +//developers.google.com/identity/protocols/oauth2/web-server + +//https://github.com/googleapis/google-api-nodejs-client/blob/main/samples/oauth2.js +//https://github.com/googleapis/google-api-nodejs-client#authentication-and-authorization + +//https://github.com/googleworkspace/node-samples/blob/main/sheets/quickstart/index.js + +module.exports = authRouter; diff --git a/server/routes/gSheetsRoutes.js b/server/routes/gSheetsRouter.js similarity index 57% rename from server/routes/gSheetsRoutes.js rename to server/routes/gSheetsRouter.js index a571168..6bb5122 100644 --- a/server/routes/gSheetsRoutes.js +++ b/server/routes/gSheetsRouter.js @@ -4,17 +4,17 @@ const router = express.Router(); //REQUIRE CONTROLLERS const gSheetsController = require('../controllers/gSheetsController.js'); -const sqlController = require('../controllers/sqlController'); +const sqlController = require('../controllers/sqlController.js'); // User submitted form on the front end router.post( - '/', - sqlController.linkDb, - gSheetsController.getData, - sqlController.createTable, - (req, res) => { - res.status(200).json(res.locals.data); - }, + '/', + sqlController.linkDb, + gSheetsController.getData, + sqlController.createTable, + (req, res) => { + res.status(200).json(res.locals.data); + } ); //export router diff --git a/server/server.js b/server/server.js index f94edea..db5a3d7 100644 --- a/server/server.js +++ b/server/server.js @@ -1,21 +1,21 @@ -require('dotenv').config(); +const dotenv = require('dotenv').config(); const path = require('path'); const fs = require('fs'); const express = require('express'); -const app = express(); -const gSheetsRouter = require('./routes/gSheetsRoutes.js'); - +const cookieParser = require('cookie-parser'); const { google } = require('googleapis'); const sheets = google.sheets('v4'); const { GoogleAuth } = require('google-auth-library'); -// initially request user authentication from Spotify -// router.get('/', authController.initializeAuth, (req, res) => { -// console.log('reached authentication router.get redirect'); -// return res.status(200).json(res.locals.reqAuthentication); -// }); +const app = express(); +const PORT = 1111; + +//require in routers +const authRouter = require('./routes/authRouter.js'); +const gSheetsRouter = require('./routes/gSheetsRouter.js'); + +// AUTHORIZATION BLOCK: authorizes the application in Google API -// AUTHORIZATION BLOCK let authCache; // holds auth client after the first time server authenticates // We authenticate using Application Default Credentials @@ -47,15 +47,16 @@ async function authorize(req, res, next) { } } -const PORT = 1111; - -//HANDLE parsing body +//HANDLE parsing incoming requests to JSON app.use(express.json()); app.use(express.urlencoded({ extended: true })); +app.use(cookieParser()); app.use(authorize); -//route handler -app.use('/api', gSheetsRouter); +//establishing route handler +//app.use('/api/authentication/callback', authRouter) +app.use('/api/authentication', authRouter); +app.use('/api/sheets', gSheetsRouter); //route catch app.use('*', (req, res) => res.sendStatus(404)); @@ -64,7 +65,7 @@ app.use('*', (req, res) => res.sendStatus(404)); app.use((err, req, res, next) => { const defaultErr = { log: 'Express error handler caught unknown middleware error', - status: 500, + status: 400, message: { err: 'An error occurred' }, }; const errorObj = Object.assign({}, defaultErr, err); From 781a57ebd2803c050909c3dd092b6dc1033e31e5 Mon Sep 17 00:00:00 2001 From: annni11 Date: Wed, 19 Jul 2023 20:29:51 -0400 Subject: [PATCH 14/29] able to create new sheet --- .env | 7 - .gitignore | 1 + HSDC.png | Bin 371091 -> 0 bytes package-lock.json | 468 ++---------------------- package.json | 2 - server/controllers/gSheetsController.js | 70 +++- server/routes/gSheetsRoutes.js | 13 +- server/server.js | 6 +- server/token.json | 0 9 files changed, 116 insertions(+), 451 deletions(-) delete mode 100644 .env delete mode 100644 HSDC.png delete mode 100644 server/token.json diff --git a/.env b/.env deleted file mode 100644 index 0bfee53..0000000 --- a/.env +++ /dev/null @@ -1,7 +0,0 @@ -# Path to service account credentials -GOOGLE_APPLICATION_CREDENTIALS="./server/credentials.json", -GOOGLE_CLIENT_ID= "726458599776-5igokrklbpevk563t8amvd3pcr8cc9b5.apps.googleusercontent.com", -GOOGLE_CLIENT_SECRET="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" - - -{"web":{"client_id":"726458599776-5igokrklbpevk563t8amvd3pcr8cc9b5.apps.googleusercontent.com","project_id":"ctri-17-iteration-hsdc","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"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","redirect_uris":["https://localhost:3000","https://localhost:8080"],"javascript_origins":["https://localhost:3000","https://localhost:8080"]}} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 305434d..93bfce2 100644 --- a/.gitignore +++ b/.gitignore @@ -79,6 +79,7 @@ web_modules/ .env.test.local .env.production.local .env.local +.env # parcel-bundler cache (https://parceljs.org/) .cache diff --git a/HSDC.png b/HSDC.png deleted file mode 100644 index 6c717667056146fe93035e066fd62ed576fa0af7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 371091 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ℑ=mO{6^ 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 z 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

*K4 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%0D`aR)+mI^@(@w3DZ-K*61j@QZR$5-c z5t}~2;1l^hE#hnq!#SW814|e;i%fRE4I=%%3q?s2fr_ISLmwZ&pg@Ay1nC6W49G zg65a#Cga%zewJJANMJglB5wCX3g5Sx_KOv5RiaYIVpqS4Wpx`kvsI%fCfLxk76l_N z*mVOf&)ny)29F+!LF(NX-euhwYAs?0x#qdwV9@?{X|<&=m|kvrrlI40G+kBTQ#9SBsEj<0rb>lO7tFV=VpG3`b!JuJnb}LKL(#cdc2Rv zO-BnRusYiAC2BXu)SdgzY&@hmZkY_4`sUD+&dew+s^b5-e<)Y@5D}RMh2hEI*%dy0*2IULEo-@z=fKJqr)CQjOB(7v$k3mj>%Ri6B zTR%8kA3I&X`PKS$tT;wqsV}I`F4Bprh2A(KSzGIXsj;;`NU#nGIaA#WaXrqllSn!4 z4NK-!(os-o%Ma`a_~h%Ec?S&AM#o;tkqPBi{tCNl&hQNQNsQ}Dp)7bb?FGAgbRX1d zyH{2h`(_*)jG7TW^mWT04jY5_m|8mNA>H<9t8|!lJXTnkN3Z-vVIa_n@#0*E+`9A< za~<)1nUMuhR(1X;T_unr-= zQ5Hn%1LvE56Sm&_XE}b%%jY_qCV3^Og?S)CRM{$Kh;-u>eW1zXaZS_pO|}1{yGhw` zMb@ubFduYV@;zk@!;L-29QE7>O8An(L%JxRt2IDe%xGaquw~oQ-%MNT2&6+yr+zW! z&~ffMG`2R1pc`Q*Rinp~IvT0qjc=5^Yvj(w!C89(SvoZ9kF`zj4RF;&3-p?E7t^DH=vy`p1A@|PDJdp9mUEQaxY~$` zhL?ou%pU~SE!S`&FyC)7?7R3(!8EhSo+{pJ4%TVa;AR`5SF!~cH{{Qq=? zDLLQ_RjK+qQz2uS@SP;0rh>qC3W))8EAEV=AIlOrrSdq3Lgm$9=6A`m{1l7)T}ubB zAEmlzx828jTKdTWpck2&8yY*tu1G9yP;?Q}gU59rT$^QGrFu(x#oU>8EA1-Nd!5#@ zDXluUbAh|q7Xa8KFb~fd}y3-3+ph)nnbZU4tS&O_-r&6aM38js@dSo#or88O1kK|QOAG@^zG*_I3uI<^-b zp?x2Qa5v6v&%ScUm9$#p$aICE(FxpwRq3HZ z$i}B$vTTw%i)3XcIaBH|!YAEE|7r!$Ex1jAuY(#D0l&rr+ z$B|?VDvQJHfBSJ7>4$DzTNOGG9AER7kogf9kg37 zGa1f2H7sDh?ApJ!R>xCT?GVS+i!VWPR?vZO-Lde>Lwmd2O&XNx(M{aDp3F$jF*KuF zrl82!hcyh2 z%p26U0L!$`p4yvWAojD}E6-#CNxiuS1?J0(_4KP;NuL_st1v2+zs_{X1I+KaH!*|> z>?Nha)Vw&HV);tPvBJj2Hqoc&T9V+7hW|Q~hEQNTttJ!nl)b9?lvp9Ym4JTc5#j^L z68BSGrmc?`dy*Gc znZNY%Ltjf@6{GCNiwDB%z4RrSRQ9+rMJ|de;bk{6mmn2nhUJA8hMLDd)pP>yCE0rW z(MQ|&xAPGReluA~_*cZ|eKzW>SE}6+VE$bzi3tl3^arLrK0|)%ipjG{kwB%<%#+T} zt+qPq;TEN$8DGq!Fly?MfIX{==9jQ{h+vB9@!pO=wtYR~I& zLE4=`Nh|_TxN_Sg4k``hcY?eqM)wu4A%#_|ty*=`%JZSnqa3mpbIZwo9H19C6d7?p zQy>PX41N^TApLe{SKk41|Axl3Ifyg2^@&I`A@I*};1+q%NwcA4teYcj3a#xhF2&OH zy1HmdcHB@#V?h`GS%}U%9Bcytri3HHZEf-cwBu44+X}! z?ppX&*L7FGg%C~o+>YN?(tKY~ERF;D@X+@elBnvfriAq;IhW0sSH*i@DOm&oEF3=# zTUYShR}46BUgGle>P+OB-fAKEN6J!i#m@Y9pI0j>ifoeD2rZxz^orQJHaOraN(rZ% z(4-$p9%}k+Udv^JLd6+c>md3G1>t+C03oAWOF8Bak)Q7ah9Jqsp`lq|UGr*I!53Z~9pEKTK7<(9h=9Ew_LBT8i2H={)$( z3cQovpm_9H;1UMxnkY-E|B*apm(Q+Wv8=!*Pq8W2WR~ybGAF|Hzf_19AI{M)uW9Jc+y!=1o%a!y(88yTAg;=V6Oz`PEko=hnLrIq}c;J`PtQhrSZ zzYSMfL(2fp{0j*Ozk;sI_#(gkACOG`2PEZjY`hr%8}Yilm)F*~{0r{>Vua$ak~oNp zmidPSa02Cvq-byftu7L@0GI-Jn?;(rxHN}+-f+aISS`Nd6h?OOR{g`_)wJ*wtYSu{ z&|3@}6B^j=()D}G0!&na0p?judxDS9p3VaRuf4`Qg?hI*MYGvBrF#K%^v8T@->C*E z&w`N0#gVMDBsGU34&2?4ubEDcgch$XEfzSOmFDk4x|;i($g|CN+p2;T1alVnR-h*A zedw;vG@%m&58bCDXk}M+2`hoi#bB9Xr051yBpr-`#}mTH1h-BNA-3IpqDPx?hc5)E zv7hL&n?P%b2X4WG%C7+YyAW9fY-2}5J_fZMc<;>sIK=yjryjK8X^C3FbR$K?@p!38 z%eDok`2Oe5V0o(Oi?VD&qeHUI$KEy-p6gU}n8Xt`1AiEt7CWC`udSKj z#~d*x?^v!VM>Nq+8E9av#2u3JhQYQPT2q!7*FSkcT-@gvzh`c#_)y+}_Vb0`6$VUz z^9b7T6?r*#$-GKxGyM45o3D>!gYLWf@Ne)|u_>k!s17#}Y-$GCWCw-Xp#9e$Lti2I z?dT#av5`9Gd4U-|wal<^QF86~?|> zDP!rOU`zE={j~2)XZsC$xB%QVDwA(_$8$*;@%N}M-6cE9rg(~BBRj#pUUcz z@~=Rx<7_Vfdx1LSNJ`dtr)8>MYTPmohxXGdQVAv)KlrP@U};On*$t-3bp%v1YFs?c z3xvV^&);vNeXhePYCuC~@6@K;{~HL|Kf{hB;luzh0^TVtVj8kxiN;b+d~T=@CjCPf zinJ|$12ll}ctg7_dnx!Z0%Vv|$Ypt!EAcfY?bnV!)X-AFD`^IF)UWT{Rj97|oNF`P zmV8>ZvoeY9p3Dm~n-dD3xDGO%`$|l;H!gjR;YPGOJ{(Xu^YB-vT$)?kf+kN2C zs5f2eOyBWdWNL_O-Ya`HvI+EAb!i1Dfy$vp0d)JIwkM+A=A1O5+2L2R_;IgQUp(!jB}IQkjIdxpb} zBXRatx%AMsV=iD&ZWBpcOV}ZW%Zo>GPdxn@*RIT+Bj1hlI$a%=r(3N@bM_ z_~F!}>@7R;PK7RN({g(@-&j80c5`_ZUBiHYoK~B>Y6_C5AI)k%z%j86>OW)O2v};^ z6Yv+0y(}dfI!c+3i4fCDQx5XDPAyT#9t_Pu~ywSKm+PEL$%AkNlGFB5cR_<^`Sy(a!=BeegNl zSM3H|!ol7X-p`;zUp&FGVrOdrvV{K=Cn7cs0KNxG_Iqxb&l6!kJQyw{!d{}jPk*Ps z)_Uloiy=aQ<00J^)eirdh#peL9IGD5X&Oz7AlL19N9kT z!R@B~xRaq7{m+W)?o+_|=of(y+=g@)4;k3zFGT!lN>Wu-VyhRnkg(lQmjhfA(v6#qoBX{7XcZfn_9W(&Wm&fA4x5^ z-!^z$Yn7UfaHY%&3{$1JF%&f@JYx2_r(Pt`A|I7^?WUBlZjN+!!Qb|%K-hx+gT8Q5 zYJG%?mcnrNx5z7@aK)dpMvc*F)s*+MXj{{KmH9qvx6_;5CRw`gg4f4*?Nf-00W}Rd|86;)F2qT2U~MJe$@vT+8dP;_3i8Lk zOB;i0;71zl+^_!W9Er^S8@o9&cjn)U$)nx~^0U3-HDq2f=6J=|GmsgVkZe|$6~}gB za{hRzh-g1c}RkuPwr5btpDNJvL>PXR*9z9FD~s~EKOnhj);!in8m4fbz%7FG5^7zkQGpY~14 zQoG_vW`Gm3j1_QioK+Q+_Z*E7hS9NOpU3TEQYvGODB6(0d9;)1$Z9;|I8p`q=+;R) z3z5o149E4zvIMVxkuxUn^LzF*W@`O7|0hI;%g3}1yTtGZL6u|n#+fWU$U!s{Ol`t! z+CjBAgLADd-pen3u!#Y$+!N|yHb5Ly4+czzBZXkf2hRt?Kq!~)xNT|Iw~Sf6>$tJQg40wAO8F2e^_Sp6^F3kRac|7LYE&R!s?U88KXK|P+FIrh?wQA zxrUo`C27~aa-LBpgf}lqsRc~w>63l0-;u0#>Wo-*L*RgK?7I(@We5cK8G;28$2jW< zJCm*f&ixM8ynn27mMMkkj)%1D2L_j#rw;3)-r$**=E+#$z z_4|x|Em^B|K=g?eBX8C$r2s2$S5P~>;Dboc(_oI4+%q2@*cHgWN60N8dVAFYZi(^= z={pYH1$kDHy@F88u-LaFH^7A);JP!yT zK{4iJTYQdG`uC~SS3z^D*ZB?Ik`%j)1MxbeC<;@cjvh#;MEOjI=%iw?74RA3+HfK8 zIcdKB@@qZ@LL-2kZPcRXg5LP9ttIYC^xtgs-#WZxK1$IgkRk}kIzuOP38M~R7Wxp88nzDFRE3C?%G0A_Xy7zd`Ql4 z{e8w=T1Db8dRXkNubzM#qRU!<_HX)w1mg*|beX_h=%yMfurtc%Xhsx<-=lKI^WN+k z&u-bWGopeN7x~+>Sz7=X(Xi{Z^zsMRA+u??I*6fq0b6cmQ(%?FjEz>ycGr}i5%_!5 z){jJMo^+rGdF3Y0MY$TBoi6d^0h_H|irHxtcy|b42%$DdQ}^qSI#Q>}V6FqImBDA| z-oe3_`HwzzWQx~8NBI3*QU846oL8;O7aZt&i1{l^) z8lbr3-XktI4JmwOm;GlA3Gri}`r$g2Dp4A%`jda-$P9QQ9e=>@P5wrdbQ|I0bd|i< z#mEox(M{fg*b2cQFTP#d4Yt8xN?t<2D434@y5PK3-H`r(Cb@}3$AwGwR=FC){&hue z!CP8#&45S*5ND&_+hgHBQ3THfemBa-Ou5>Y88H3$;Eod`z8^U-S#7(SxcC+MN%eVW z{UVQ@m+~c*jq0@SYa-0d1N1!lIF@ZleEw*hxY&eGbT=&HG`+k6o_?`@iV*?{nO5I1 z?QdoE@uybw4q0f4c(JlxaZBkUZVjd!c&Q)xk88^zD?BR=0;Ev3{SmEauIgZorrMOr zEp(@=aa=E%vMO-o4?}~4p@)rHy;6&q30YiLtAs{JF}t<9FOw>3J}1On^42E?pCUd= zV2lQKo16#PHkpe{XiX87l4?XA5a??@I9(poy*sjZvm6HlS{c4$;^5NseY>_??+UTO zC*Z%(5cbCB`KP6q0={5LTrBh-YUjT^S1AfPrp|12Xo5440^E77fDn6dgzsKqJ)3(? zd?TcYM<6K>aY9M~*r1$YNJQ>nfMDSf1Y~9T>nM<2kQVygC$NN|q&|nvvY?n7(c1cS zncApBFEFHIXs-Ngpk+Zpp$xyU0lbHcl-4?i`#ysR zabrF$we1TeQ-G#4{@>g@Ln?%XC1 z_hAdD6>J!LXW5XFDmL&fVMGx|OMZHAZf@I@Sx4ea029A?lF}Ff%E~b3v!^Plle|Zv zBRAdoY(5JoK?-Hoo}Ud2NkgWZ30qpqzOicZA~q8xE~U$UU_noi9hXH-R&39`h04cp z%x0q5Vm)vSu8;Cu%TkbW)aBO-Kr-Sy;M#~68&B;Av^`t$z>_+r=u(2sYK{~8Q}1G z(B$=YtF}LHg(8*zb%cR04|d$T8YU`}1Gh}UeVQ^8J$o zzr;~li!jYK(QVvw4a9;`Uf4Ao60m38xM{*{6Yjp&YP-|-qWwfT=9x1mlX97W(&DhbAQ?WAv#CLI|Gu@T!82 zwxgK;Gv!%e&nDmM$&f+C#T52dD}wWjX1TsnfAk|YvE!o;M9^eu3N8Fxccm_`*(#lH z42T)g5KK^wY)1QK`{Ayf^yt4Ln11>(qJQO#VQKE^{udaVDdva=KB~-1s(4W$&EYNU z2_1X4pzWSMg7^o&_k!RHLf@kSi1dx3M1o$}62WzXn`@`+V>q1C-9FX{K>|5-K~Tt4 z-SwriK}aE!D=sPKJSwmO%n~@kbkj!bbsWgjYG`gTg3XhB9<4FCvB7Y-2E3d@aPQzZ ze4y+|Opwq;F;{QCH#Kl?M9EMo1I@$bUJi}ai~?H8<&$dUeI`MGZJS`=3ww>1%Xm0g z#|fPMH68|W;)e@ykB2ash?{;jpatY3PWaA3z&Mwn?&6 zsd%=|DUwa@`=7rGG1Vj)-y!IM>)ZB3eC3DM0G}Ub9yNvoX?sI#FBV+@61Gj}Y?|hP z39vC%MHaH1@6o4@k-P;Orgndaa*De=wz+K6)ASHdF7#7pkV)R}(9(tOX^QC>>*C2^z=-s4pWst~6H>rERWPo>8Keb%{Kkmxmh)G;$8@)W>JN$NbANcvH(4oK=@kFe1vN836Rz=~Qe<^WT{ z3GNP|+8{T7;J0j|G_zHY%ovl?D6U|8UxKDcps15|T5wtJ3<3nSiFNtLHJIQ5_LFb$ z;tTUW5t^-;4Al@>bl9`6%QSrq(c>5x>Z|7B`Ki16{c^{jYWBi<5JC*#|7BX4sBGpwU;@EGxMk=DMQ;eKEr`4+-MV2e@PF^`|AZPEPrDg2Nj3no}c z@|~5;d4#pTqS)DlM_77}y#09NCd(W2W2XF!>0er?4VU~rhn`pQ3Zr?2N_XUI54L^(wS~yI)Hw{u~h1s(dOqN zy$?Kz{s}w>(f9qb`cATI%rj9nOk!GNiEOc<_|`BZ*M%lwV5(ff^Y05Mjd1u}RJIHRm4)W<&3ce)~QFp;_oIz2GG((WG^e26gWXLq0B zKJ_?DGsQpIU1|4S6HNb#Q_X|cBq~>*Bk!|$CcLdEg!!;e3I2Lu0Jf?hX9~<`S6rj1 zDw?-{019i}#ui6*o<$;_|B1c(f2p|u8>lL@C8;X_aH<1xTk0-#fyNDh3?Jf5LUZ_A zdl7EaI7iQz0z){Q^j?_#>(xHBR=>CAUyrxjySq+5qFs4cM@2rV4^2+hYXhdgatxw> zjee*JfxkX92C#`X-NyQgwem9Rp5#!`s0b~TGhkU}R|W9hhcu|fe8$1}_)TMZe1ORe z2flMr9$#=7xG@kqkK-VJ+yyd;){JQhA9j3nd{c^FXD68%7WB+VXS=T`LP+PzI%rO3 zslEy<763Ke_O%U>Xvj%4TBXLu2xF&ih}h1FNb$Pt2w4;${Mc1oZU_e484;f`ujuL< zw2*60(7g8og!5L14vL(vZ#Dt<&1z3Wdb@BRRzDB2zmoG<;X!+@D3a)zEUfHRutKYg z(jDIGzSaNA?|3xV&dSP&PfZ(y&FF4ROVR7<`U-@{Jfi4^_+t?Y(+?-Q+689-e&Da8 zwK?~?3f>6V1dQ}}`c(yI;lOySMYeO{%h0XP*JrbgypETFg26IF4pje&-D{#dhN4gn zWcsZ)JET`RHmYeHJD%I(~{q zrmL<3(g^uvE!}#hfQMn~ezz;;%Yo=tlgL+GNy{ZWxpx0Ru2X&cm=Z6%+D`(WJ|%nK zlubnM#hUs;U1JgXNL~E&HTTJ~aK0g0wM=kw38-f3Y|m5IzBa4UZrwvQPPt`B-5Hjq ze!!G|bdyeWZ~G28dtm%-k0C6UrfA<8#CwIn-sDyWq+jN^&YC$Rn>b#jzy?3Vpdo(r zdHdM%q^FS}pA=1KlUpX_@U5IP2Li^%Wd{3lH5VrL_puMp!Fh6@KRWv6)Q2j2(K+v) z4Hc`#-W#?Ni0K6RmH)P%XAvmAlK?XR`Bsy9%FcEA9!#${<10w`l z!n^bqGP`_7Z1L!s2X)NS(kEw{ixQlBE7Tdo2F%CK?-3WMskYzNV|zAYKXp_A`c|<$((FE+h}Jo+Q6*I>}g}Te;Ta$-NF71>eTV$z_sYHvkTgh9_lq7 zz;nbsTQM0eJP*HKL752VVlqqNqn9UH1iYfE6K zas||Uej^2~kD&AOs6d;)gPL)){whL`k1@MDRe^CoG%SyPf{KLIn)hwKobgVkTF6=J zX|fDe4IdklDwUNlDhbTrW5qa|PUPUC$&Lcn7v!RK^T~8Q4Ulp#*xBEvQ z=PSk}&(4+;`xgIY$ZhAxB<^b}-F^UI&Hl?sJFEoY zJkFL>M$-QPg9lw)W<`~AYp-V<4>TTf7Akc;2MMu3iP0g3A)lMw!~mdt6Rm+)(6-kT zGo0tMQ&MQNthj0$*214!1N{vpdHDNP)-ccYw+=vH67`$;-%IqKcBo|4V5Qtp5QKBE zmyim4PEhLXt2LU94_rVr$hbs+I2YHilyN8m!*{gcL-d%pE>n2oyY-?qUcE$)$?`fs zD_7v!UlA)`(nhq0;DVmO<<>M66VRomQG&5WvNjmyM)+0BRJ#L^ z@m@4Q^!+YmU)qLqYQ@JPE^a;H@#H@)^4>x|ZxnI#zK`E6tEAn$t*>FfR^A+qLRcRs z#$@YlC&{~!JHeM&(n72W|M~zQh*M4}o?GyOck4e2dOHXa0Q8*;r{tS;1N3=byi|##oCGLW zYALFv)1`SJP(pxl{;Ta6VzwLEHzkKaD1MImmY&_?G7Y{#<QPpA@LzVI;-eZ`al*7x+N8a(1 z49`h#CGZZwRgvWLDK97?NDNS-hinVw3fc|)fB(I*4Fr;@kv!nXjmCttCcYyzQQLW< z0z~V$f5#+{(%$O?b}uRUIM|ATohVIDks^wraw9n|7Yho9A8n4Q2Cs^yj`xX?8-`KG zikw-NhdPZ&NvdgtQImFx&vlGQs%<5@n1Ia%#;q4;Qj%MMdeX$R@8h6=|0?llls)sQ zd0rL>Jp-&}e+U|aHi^2G(h=VuHj5T*BEJg+0f#3f453K2mOiH#M_v)&%SqP`y~cdR z-e-su4{(jdo`lcB*Y;h-L?SGMj#Qcem|`T4i+kJMc{QiwJQ?=XB+_&4`O?|)hAz-s zgu5cL)W*yM0m2uR23!pk7G3y47D{gF(^sT%a6|L@+Vqk~kdCvfrz?*ir=AO*hf`Go zuYC-@yiL>deHY@=S&bBZ9s38ReuHuv36=4Z<{E2LT1;~p+^8ua%J;a~tYW^bc^_=U zFvl1q{$s&rr%$M;ZnAeCts}iKC}6?5n2K!b20H0>6}|UtE+`+U;GjQAPwpxGAzBhF z6cf`BNItU9@6V7e3m}gvW+7a}T$OmJwEWtJ)Hx|Cc&3INB=X{DMWwq5{4NfJ5+D}5 zu%5m-R8*iwiQ!3bG4Ny$WGW4ClX($;rtwq-j2)=D?)U%Rbw{$c%rb!~ko-g#R(?|x z299_(f^&NSUoR{Ku5=Wi=68c=ClxlGFqV#2B>eU2z-FZG3BjTH{sbL}kfz+uEbdoW zOU&G+BEzrGCaU&|$A_G14QX@B^g0KPIM$8Mj=%PLPNZpm* zUP!{n-^U#&EHOdMKiwn3fnDj`@_MVGjfqaZN=jc`o+MQJ-2MYWTObe%umK?V4g0@w z`EQth(4*LW&&3vb;>Ebf2s#Nh>DPt^6SXc6oFBckiS9rjFF^qPDO2P>O6KfO?afBr{fIbuE?mb> z!T?i5xzoX9^-(!rG-XRwLzefEz16*mhy1*0Z_1J!<(R%<+_dE=qNu|yNzQFQSULOQe2eHh#>2enen{Ez9dx7^*3@sfZK;XKCgVp1)7INQ$iuf5XyiUnXUe zVObFYS6BeuwK(Z=F&>PZs9StQ0in)0JuOcvewU|k3CtkzxcqZox(AI`dt-WD`5xuTdKD0T&6lP zTRuQU%?-PjEF_0=-M_W?0L=I^CW~PCILG!YFiQr@#fPW)lq(H8BFZ2+FbXBrZX&mw zCdAvd>3ak1w6J$sa>xR~A4X%|#%vnhr^{)YK;_r&$KW2-QVhRc+ug zT^v#>bB)@aM}Yw#U9w%q(mmqgE>nhE$Af#H5jWLyz1=QhF6Z0~9^YTF{|v>LPmLoVcHCWF7MrK>F@9Rg=(J zlqr~u6f%ba++sYwa*AI)W83>=BYcVdBzY{#h(Kko<_+Nso+AhThISL{L(}+cCJz3Z zY)KJG9RZ>+aLQ6QET2nZ_1zoaJUrCThU00 zL0D?im){bcs6G<*OCG`?YlzNZE248qqq;dRLUvOHc1)YC>_-a7t*bQ%3;d^(dKzD{ z9uV612|5UTo>EwQIW8#YEPUAsCNyIwPp``r6fG>Vy&#u7igMB zEZoWr!^u(t!lueqTNO|UZ^Tm=RsKKs7U$sU*2%N3frM6}u;B!@D3+L!Cee1RLg1Q0 z3lXA7EfR3*I%{RbOxaHB24#n3x037=(V?tw;L_}>G`{s;mj~jEo(ui};x6!d;urGE z2_p;FxTo^h2Dx{;PGJ{9n08_`RTtpo)T}zxEFx@mD(U&>n?6c>=Q-%thv{Jd+Rqc1 zEsDv)V&G*ljoQ6eZ9wo<9H39jUe+vBZs>4;bD($L#_%ZX0HsHgZjI2TRC0=O@1$D<-A9t|Q2u%Y6o0ZuP6P|6vZHhM>I11iRlsXQ zWvkHasabxamyw2uS%v2~E%1w~q#*C1;%e^+7`LqaK!%(#Mf39$cMm45V-4TKM2C(h zu`q(Z!v3l8@LdsKyi=R5%e=;rUIleu-Ugj8L~03ghU!!_^gs$e>3C{ zReo=qF=+$0$^kgM7j!8R!y!`>j7)rEXwhw#Qpuz8+&GN*X@N zhp>#eFMZ8~24ed`*9dWzuGb?TShj01oDt^g53!MsCUKE;Xj_B6T&V}DS$^Nj;Pl-t zeiXD^^=1LB#9%nYJM8_j`;)ydnmI|I?nif-S&#i+Kk>@iwr;0{*GY=rs|Xd)hZkdp zvNB9)Dg5ITg54JVdC%fpepo;iW0h^}>z%8L4V}o9!g>e9kmR8;0XHAVqOuE1LD~_ar>f^A`N4p;)(;&)*(|EwH4IX z8s#N5)!_r-B8mH9l5%|AL*9AV7~2~_f}mHwQ!-6n4^ zzOMV}0+EPzU#OF*($F<>(?*9m;d$6B#dG6OG(sO`xaB1o{~9nQ=8+6Rm^P zL>PGCVbkjnrVcQOlAID#kc84&4VhZ++eubONkV6tz(W4xIO3Q^E1iO|tD+M?f$|V; zvzQTvzo1=WUJnZ~PNaMLEnaueRyym$(D#|4cj)|W?l($Wer=csW|)pq1;Z{$ROP&2 zL63)7yum#y;j&wkgCnv0Gr{9XJ7JnQTR1`V?~K5b+hjCkQmyMhxbMIc#7#b>Tm2ciV=*G53&^FY$*1OX~ShyM#5> ziSNvP6sF1^hja>+G=JRzUFI-Qo>5P zAg6Iy9V!mIA0CQEm2h<)ub7X>EeoY$PbAz=WuNQtmk_FEQ;sHz_pCpTE96Fg%U5J$Gq~>A3P&EC?605_ofrfuyB_n@YLi^oTTaUZ}*OrVq!X2p;&U*Kys{K z70;!l?~M#kBH2mH#4}k+7pdja;~f_K6#mrxLT@z|m~$%7*eK$ukrGODfqN846UaNX zklm!t05C!dcuwU^9mL0QeTE}AzF_J@4y=-q8VlADhmtTAg{W4^nYlLPnccsMMy3Jz z0~@bLBVC{UX6$aSQzvtL$V_AE3f=zJ!B4d{=N6-v8O$l{dGcH+pIkdXqb^bUlmq@m zKqk1o$_1Q#9hNRGJr6L*#)XJT5Bkf1#h(4E%CKESY12UVE7hGrCKfA_3Oi-x#NeFT zlGv;(V{j(GI@ah-gL5p)j*T4|l)UYi^K{^9?rM28_b^E%SEnVyyzdr&Anor;W zmMi08sZ6jap1#X1wa}sBnubAcqiKd^G|jF5zEHM1M{mL~XJs_aQ|9@0D5YvT|6Ec? zbvJj86m7&HuUU*7@_TSEg5qHw9ZBbIaN)0URN-y=+K@GJ*i5tFb~bWbbMV$xpPwse zdD}?bXX>39gpFsBhAkm(d(F6_qau+up;HVb`e0e*)ZXek(k^GB{ZO}&x8Y|JSo$(` z2O48kL=H|AGZ`}A9*|*j4IJ%5KrQ5~o45#nH34J31d)M=RMk$fWzg0$$k6%D_h5po z!iT}Z@KDz}l96u;_B%FFq=OCg!o0!eRkPIyX$U(iMk6-_i(g_MNIPB+Y{ZrG^uirI zwL`>Jeu|lQl%?2t&n)!`tMAh3oRigvq-ALj)Mi0peZD=3~6kX=jzTx_5LN3MKWgLfrhJZ$g*4U z#ZN^(j6%yEk7Wo+!l5Cjm+K;A8jJM@BFjw3P|i zNH;%<@J%b!CL5@r&H%G_m1230c+g@d>1R7SEoFJmMo6k^Fqj4^+X^*S1D7y5@eXf^ zL5N6`fA|OYwxAL*KNhjHXb`p+nN_4+i)%rBAf68KwiwFiL~?Kd!V8&%M_Z3sBkj#5 zpZtGQtZi!fP1A|1FY&+72?e?$F!bMg zyRAQvQ!=hAX&s?}wOfpn`vOZ`4O4((ubK?oH$o~fHE>Rqy#4m+kWj2@TuT?cPSOH& zC@fITGwH7ssC@>iaF(#0IByP$74d_ZLGqXTCiIh4^0Qgq!)3`wWAjF!*paJ}1^{ zrgu5f$<>;JhFGp-#Iwa4Adm}*CUalID#C!|{Z&^N6Md_P90lk6MZ(=kW=XVQwPdMT zuGCBjDz?jBKaR&VkxU1-0RG4a%WT8mqs#^XOd2-3G?WpkMOV#R%v5n4+smpP(k5~Z zW5L+TaqcQbb{}kCcPtdanw=8N<69tLgqlyZg+(}N%j>&&;LKzA@P#5=WPFbQgFvs> zf00eA!%G6a{}qvuz!5Q&kZ{U{VwdX>yNqb;UjNuDXnd2IK+AL&p=QJ<~)*W()jB`kbt#i1R5p%(OmJ?CN@#GFzlIRPC-@ST>z-g^b<$yLOy7=543w#j3H1Q zxkqbA*aZV>BQQfke=38#fDL^Pfw~5IrHm4=n*_+Qh9Y5@{6ruX;)kSc$|D+&q@VyqSm0z98wFHed>cGG<` zG|qm1+c2%4;g-rKo%W3EH1*{mSf$olE?@4HttDESc_h!pW_q^*r?sp@OgEP0><#}D z#?LNot7!fNqzm4oZ0>(=B5+D)=RMV0D=HGSGpk?3OAlza8&i?@`?ypN#4h+YEy-GM zf1AT0W!$|%Vo;&CqWpbjUU{qi$om)l%H0Ibc%P1%&e$LwvmNUBCpB_O51ZOdmE7%P zz?OnOMWM@l(T0&RUY$q-;`275r0!MvKP3H=3(6H}Pjf`I?fQR1>8Bz1fB-isYO+FN z#V*|QIKiS`Y{*r-LUj1vaLA?(1&H9`w=%`O8ZT+5>H#2bMLwOs1uDe1gXN~D#>N{)$g{AXBXqG^fqdk4qboi@r+4JRE1>ljsOio z!2qK!gA`zH$!jI-C@Nc(ffz|LZzvp1pGc^V45$zG>-Ej0lk&96YW5~FO+9v=)^IeXKb!-)l;D#P>Y<_TGC zDGb?b_he(8+h;24SwHSKXkzM?Lo)d4MW@ytCPiA$*SJru?a4kI>UoCxX% z0A}NeQg0Gl&z1Nb!3{sM+e`@LMJYgBlH$PE30)NTu8A5fVW0v%G<|fa7)roC;Q}kn zxsvK4?%2rI2Dgi33G~9IrIw_sgpjFt>BvVhy``f~M7J;h?=*we1Po)p3<~szbInSj z?$To9T2q%f=cS};u-dKzo<#$c#J{6w>J?`n<$tOek{@<%Yh_D@r>t42-Vq1W7|-k5 zOTEQwx&jkbKuC~|H$`QnKsZeL#_tmwM^>gM!gZAb^}||f1lKr;NDvhZTfe5FfQ`N^ z1>iHZR?Z_bXgKbow(PlulnV%P&03An4&#B8rK0a~)RZT&l$533rb!gVTiVYq$6)so zbMH?3mm-8Ua>*8+H4upxTa*m#uM^4R5VVIBkfF=f^{4GwLM&mkpvo~qi=~tSfyg@F z?1lPbHvj#0Z;k?dR=oWEZy+V~+Y}T0ZXkvs3@wb?E?YsUC5Ct-)=lICPP#<$LU_ct zDtr~Thc;R=;+A1U-A7xdP(e;kp~@X@vN%Lh6MHilLR`T2{CQfDrKgxSpRb&%JgJnc z|ES$n&h{h?`#7cze)F3L!x(Y%i1ZBX%+eyZmq*fCEF?l9M)WI5ii2k8N2Uso<@d8n zAwvnbq6V>-5>_>%o$?C@)ENIc*S?h>APtlyaJ6S_#@Y!_w4CAnL@zI>xP`dKGrR@2HB1 ztw&lk-F980iSM!-tep9p*;K_)F~6)?DpPI}zSJ~=-NH5IoQAH=)Yfbo%V*J~ZPH?y zDd?OVD;cL^{N>mV0cH)JvFCFrOyLI;B-_KRk`Cd}jI}7JBpEZN5jxYmGg!u9L(tli)vV1xY!0V z?!e)SXS0HA&&dGrB@i{k_7z@NXL>#!Hv5A~5O?;;lncI1lh2qgLi(NS>TUVRj7H_9 zUmK7I>Q9N~7&yoo*;Z#4reTbqGrBr^F0T%zu3II2T~PgCp3H6a@(i|NZ&1FmR3m&7ivrB^k?SX zMwcDVp*d*FRBB|NgDZRNTDP81K5XEy&6q?RX!yY;jy)4R3Wu47%h9kqGLdMy*M zD_)&y%jXkz*O+8r)xQ3{#5wOq^&zj-OIc?6S~r)MxB0;~=;!vA7T}fgud?mx{_wuU z_aB`ATX-mL1RThisho`@s4w;jzP?){ z-mo{Q3`nl$p*(RtE6vCqI0)fyDLidww%T|vb6BDQWmMW=rRSW6RV9*g6VqL{!iVLd zw_luoeHTgFT2x+JGPaH7wbzr6XEE0DtEi`d@9&jqEzx_TB2iNjDKzVD;1WT0_1VcR zjp9OVmlE%TyUmZmd2Ug6xodTd0a@5AGSFK~Jb^#YE3J zYA;9il=LyRNY=dQdORe=+~B|gPM|{|*9fW*3+yOyyZafJQ`IDjcLtg27AuY}w2^Fu zo!g2Q&SxH1U=FHGUSKKsc{o4Qq{wvF8`BbFkBst$x>Ge+3P#Rebu7K+8u#)sA*@Q} znLwQL7A?`~8OS*mtX#yM+*=JNRC&ft(X%oQX$F|vKs7oWnK5~)!(O@vAE^C%1Vmyv zd5(~+<@rD_T01nBPFD-*O@K(bm7sqJs#bTN6NFHWV2x;^NXjB1KR=`9ebJ@q3(YvG6oNlrl^yogsX zYd2fP@jW^lP%QWHd9u=_S;!KS435a2=xn zN%ZNMt`V4N?gbwxN$;D&>3siCZ{6)4 znDY(4gjEc81)~K?iZ?>k>h;7sT8h<`Bk8pZEeXTVz`5!PqO)5uX!C=!pXHENsa!RS z8Q%%fHXJT(b$r@PZanLon@vKxxP>lq7uzk$YoHr+5s-ows+tPMEz@H zWis-$Xd*4A)<8M5tH+P+<;L~HxIvspz4*UZ37O8sZAhEvO40xjknU&trtkZ}!yZQo zHFQW|i=GmM3&d*mS-7=~rw$9~l`9PNv%G!$8vx^L=XJalJFCE>)IALf7l$x#JqL3U1imT?? z7yuaJBJ9UPN#3Bqw%3&Lf$U@x_B3gReo$D6l%-y| zNR|#Zo8#5XE8N6dOrpxiBZ@vFk@|B;0>reRveZ}`;z0s0?{m@Ugcx~4FOp*+l_}^h&$mf z49TF@5_4_IQxz@}kCxq}{DtX5go^3seuFL5d9e4VQ;#QilU{VPxVLFIhtetV9-BoD z2I<=d-L+79aa8#UGg&7Q6a}iq{KZ7F=M(6H^qS8`}{_uu_CT@4Unw@r4Wy755q> z`4D?(mvj@Ost?1(Oe?*`ko^iTJ^*k?X)E{=Gwy=N6Oej=Y0&(vhk%=cV`n!{?et7s zLh5cd+w}CEjNUxfh%xL=JZfCt|5K$aV|C|X07u&H7~U4Fu`iHaBFVVtsr0p$v3@3g|s&%*E(8 zNsPX7DC@$aeDA36&Uwca?B9tyH*t}V1@+!RyWLH*L%*Xcdfi9A> zjiL|amx{7+tJ4H`${qCLZ+x*(Uy`rZsq`aPr?HJaAU7xWsNnb;1Fs2TL#@`P_h+#@ zg9K{HF*C94+sfAdz5_mUZ$ln&_JDQx^}zE2g}dm3%8ez<5N&&uT}qu~+MPnFw$J{d zKYbdkRQ9=(^wCVlcK8d?mQ)o1nw#&FIVUzZdN4o%#si_BV+q0Y21?C^=Ee^F&E`i8 z=nZxp`1d=a58l}dy^@FA4C9t1-)FkG^#R%nIc^pBHL#m!OtRO$Y> zPQ=OMrN;tKlZ2PAsGYx?`U#VEn&lLpkj1ZtoA1nNiVKZwRwh5rA;bd*$6BvM!^JNU zyTTmuCHH9lt$9EpfZJ@A4)6bCWBlL0?0=gaPbYAJ+=C33MrKI}aCe1+Yk_U51g-!y zG#4im@T4!qs<4{aLJxO_J9HO@dW#0Rd#mw6ktiGfS4J;-;VigA3R{|BKZTa;4q5&P zRle^rO5d+lb6&9AY=7m%af{4m4vbJ8Yv*sQ2E_H^*>)Ng^a1_}SA4G)mv)_pbA31= zE?!mBa8LAGi?hl?b@t_tgv!x~nzPd*SqstNToS(1@>>$CP#cvH*seYuBkqyW;6)j# z8$}3uLhmOKn8LKrA1f-SEOMIzmOj90mhhYWgFb&{TvMOvj^d1=8jvy!l`y`KCRx%V zF|2dOfO(H<6S@EVGY(10o0&b`)u4Jpc&j5L9=u7M zjQ-qug-|#>+a&j?y}6^k0U1=UNCvAoH^r`P`mKR40k)^BHm_l>T3jjQQFqv1opEmp zict5ncf=THa&l(SxAdFZn0k{18@D_gC7epF~(n2CAU zn{~D$w2QmzuFkdPlcr{L;v3QnF`0&<-W)s(`ne@I`?dG#h2Cum;Pb05B~YK1OZhnL zE+e;miQ)6fd)xa=xQ#=PcM5#0EO7zHU-bv?*e}2ujJrPn`Vj|7@FSSQ-C9iqLfii{ z9(m-93WP!5$=wfNelf2QwE!+#J#T$oVoyWsR!xlS*MPlfQDsqFJu&6LbodD!NK^F zjkXx?D@KFx4!*%vi(2SeH;%*y0*NkIa?OaixQZ6XD-$&&*$vsCf@4*9n*PP$MuIRC zsoLhIu3!ZNIFm?Hv-J&^i6c?8?#$<@@~GPIzpIge^=(L!3_q_~Zo$H+hM*K(1h3MN zYthIS>_B()CT-Vdkwgdsl(6|}tj}jg?bay^3t4%*i>vNf>X0qzykbxoB;Bsay=*m) z#Gt&0;{*&Iq>^k?Cr_deGcM=Ss6Q%=>k)FZbF3dHGRv|X@M^oK7%P%ut(j~xkR?!wftRwU~F zx)U8>Gc3J1)uc5DBvwEg`Uc|;Ru#(Sm+?>v+6cQcoE6Jio$`CH7p>GC3CUyO$(HB# zR0T{vY@5nm{WRS2aj7L(bzz2g#2m8uk@To57Z@Ni6}WESGP!K2qL|9`MwhDA%H-i+ zT+3tCKa(c4FY@EXf0;C)1^|}oFUJvDpTEa|TnO{q)sk+h<^>*r72!wCnb-It2Mozu zanwL0HkY$k#Uyclyg4$pV`Y&QJU0O5rx~P&W2!c=emPnBlo^SPACIlVj;Egu26cGj zCr~kRC-dDl$u!L~wJtL_J`+TxdBzD}Z{i?dcR>Z~3Sn>-_#@N`k9&9B91^5Uf7D!# zp66!yN$VvVbZc!h;1CTlW6ZxQlG!mavbCixR?;cj8qY+@BL$6 zkNZms1Q_KO?c2mBhbE13g%~@D0~(E2thlh zy>9TECV>ub**`O>Ml9MTEuja6|3dg+_NzqwgX5k3+wh>T;=O^UFm2RIb-@C;bVzQUU0DMfLS1Hu)i*ab$=EUowTb$hh$A)_!Hf6q zHqL|&>aM)*K0Rl*(NbE1zN3@yGRoHG+q%1uZ9nbuKj>luCnE6qrsrP||6z8#RRx2l zZv+J7M3$uF!sy)ySu5X%d9a{A!L{f0l zl;4O1VKJ#TFDxw>=eu_R1fN(FVt7lQ{(N=3u1<-q~CEM(G} z{F1<#+t}H^QT!&wYfUC9r?RqIvZ4IbKcWsfK}sKws}R}D#Qm0QUT&wpx4jU{d)%*y zYpe&wI3FMFC;GNLoedsCUjYhVenn|;+U=?p^Gr9M9ZV0J`0fNtN5>6yk*_xZZb}&s zkk2*$2C|hx4xXdwk_p9KnoEL6?#6ex!`AdMSqJ#RKWTDh>!Xy}L3b(E2>ECUdwvxo z(sH`|(JmwY<+gAnJH|CqOsVVD7rwE@k9<2Pyd>MEoK^Fch*c_=!f|NKM55~c@YNVU z%qhFJ`C+*!HX4Xu3_iQz5BhU_t}Rf5r2Gy(5q=UB1_$&~8^u!2BP#(yM!-!oePSHY z*ecmaYu+7kGW#I;G%!ivF0!=Afu)ppaOKdApdD2OTWcl{{lMb2C}Z#ooW^eQAv_OC zY9g`$9U6jkel%*%;*Pbl0-U*Vb=8-}0v{wAHwJB)wV0#e=gM{o+f4Qy3?7kG4D_q< zy@k|!c%cIu{ys7^_;-C(bv)9I?UJ8(&{20C4ui=cCo;dNzlePdtLVtO30WF7)l}Y` z8Hq5FK3B?lAL69I522(fpzD#|iUtr|@{_M~rrs3PlrGC_!zt*c$RLF}%zlUm#n*(T z+JsjD#1-XKtzRuIp4l()Zz(n>Sf479J5wLLT8$3yK3tC58x&C?YVA0dSmXXkBNP6v zOYc=g_89`-u6u%Zvme*X*L)mGh-SV_N8p+|X7cnQEBj3`^)Z1{i^wXDiILNO!oS&g z+E;kv1?h(R{71;%>G?{>696Dh;Wmyd!b!P<(7{@eq>VRq4t_)A6FbX9!Y zcl!d%&oYoV{A_&Vf537yxd-vP%!hs{zcU}wo@Q3(O)WZjf=2adGzsZeKOX4<3Q|8l zm)HZedvlq@HJ&05*Sk56VN{$TKSY?pf|-KF0D7dwcC%b4p++K;*L_>xO976-BgINK zwcne{xaaf1*tM14rWEGoDIPCNzc`*Z=Q*G}!H*Mc{nrI6!4%Gt$9Q+^knO)m_z5aM zdR)_%O64@n9Cdk0{r6cno9x#c1+9F-=TTIPeS=eaH~jX;y?wtF|oxkRT}*Ea}DHV+6|(JXI(hQ{b5?mw?+%E*lOQYPkT1 zX?IJ1$*$7*txs}kA}BmWCL2UlL>?_Bgzc(Kp3Sscn)4@?`qQGDBLs8q9M8UYx1A?d zB+7o7P6>=1Ek*+I7<|LT>b`VPRt^#bk%JQYsx$DcjA4trBn225c2F^=#Unpi>i{_q z`AoK?uqy*U_RUhv$iVbQz2~QDLKg4j{kwVXkia*XWk>A(OVhTU5tg3v{qi$-y@{5x zt1uNrqwgF@F(Rb`OH5KsGN~vI^TKOFG!7cUl7U4aYUojSO>cMyr1vKdsThJ*w0U5( z?Grn{)~^n2WTZXnZxF7Xk6nHoL;Lz)*lRL0(^8vpBhRxz;9pX=jIAOe&MVi*#ZNHh z;FE01rJ0%0=j+52j{ub_%hIp4_1d)3rjKb72|M6}D^n+ZUyRUbbH=Vft2DoPA-LoPT9NX{y`<&a-4Kn3+hh}P-MH}n-kKhJ+%nfT6n2S zA8^a*1ihC7CO05g$QL3?EeG7uhfg2{=Hou!oxfuYCUdzI-u8$dQ$b;9#rgg;A|!r9 zin|M}@hL?$VDg>v)~|wnAUb2(&%St--Mt5*gds5X4jYRt1&MO4(PnU(XYG^=qki@q z*le~w;>k;#n&GvcglIMObD@=pS4W%S zR7#l53z&#ULE0fZKlyl*n7ZPS$~@WI)&cye6HhEp#^(E13Asxp23|G_1=v6%wNO2S zMq@Fj+Dif+oCAERm0b-=LiNz3as1d)=~vCr6C6BzMA8b$mX4GrDmgvItFnlBnxM$( zH}`K_T+9#`^{%#in0QFO-aEneC6ApO`l&C&;Id838JuDjGzeYZ>4+qp;|}O7aBIhd zhYYd!P_5O0uW4Xb_r-&sR6-*WTBKWl3()g``5=WXS_;;|-Z$&^CuX8n9{V;Y;A~R6{Lp1Z^%E)W4Ejv!F3qY_$1y9O(X(vA)V$Z$J5NkqtL*(~d5iTAMnd54(qA)V87iPGi$a3k#pw7odTZyx4) zr_quQ9MJ~0vs7?;5kz8f{WaoFcvnHXjhyve_3&MKe}IFQ*0xq^u*9-d!p+RqBFuStE*=X1jP4-YKmlEljSq} zG4z5He1Sgde<0OXi9L+JgclgRzPa3nehAf1`V(9F-V$~dP$;|o=E->WkThZD{dfqb`MB^sWfN9~oZtohy9L`t~mi z@~vk1mJo)i)hZQE;(8j_l?cE-AXrv$wr#(ESe^>elX!~rT#KJCHUomGK+{YP!#u58 zM6)>I?SHnb?~>3;2$&C7;)GQ3k_xTJSL2@Fu z-tuYT!x+53r85Vw(PV@0L~-#V9ONfHT&KJ=qyV5zSBz>>^#hz&uqS9CNyih880f+s zOQdlOHd6wx@2T<;DH!cujMHU`I;@B%oGQf=8PG+Rxm&w4prygV>l?p zuKGp8YtCGqWjCA!tA>junb23NzGF5&bxT^2CfcVEuKBa@C|^@`)b?hH&74h;>o=blG}p6mazUfiR0yJw2|l1(!}Sp z;pGwCIk&k%@K8`(*4|tjTqiDDyNvMVLj;|i`9xwZm-<#qD8ka^y95VPc|RP|?Av`j zTv~`V6Ej`qN{n|blT((wZcMcS|D~1zJh(08(%*H$E7r?pT&Bg(py8pV`zP28;kDsd{?{t;;cHLMXe{4}s3PAuk$q1Gck0LQ+`31TF+bPsbxz0! z+P_4pje!L9%I?`T%yd>DYEUR(L(%KySdf};d z5Gq@Tv+#ZFuC065k8gRIdup@}QTZf1elPwR(H`*Tl~npb6oM$&$SVpiabm9knlff0CujE{c+x5|hB598Pl z#ZPlMu}2dxH;nqTn2uPAqCGOuvp=(@FFjw|?gz-z+xq2fu|DER#XO+5-#4vtj}rm% z5AThtt-oiZtUDM)u?6nnzMdtepHKHN=3ZmR-C>Dk{etfaYF%gDGS=9o-!6oy6geyBrV44BBy$J^smRoQKB-hZqbX# z+oMUj;ksk{(B$F!-A%*eHC!p^C7XM0=cV7DYDypOgh&0O&RH;mpc`E;QZ)mpMfQXp5uZzkk=4t5o3Vm{uge)c>%Z)4@-N-B7DC_6C!rN8K^Enhw$v!@t!eU1wx2M zLa;<1`AlWZXbo~q6`=Y9JB0)zU*LyqqC0-A)3D3>%~eN4N*qI!8{E%y76ERR>agpw zw>^l$Sn<0X{?XAYXB^?wWG>o_O~Zons}*+z`5~_{%1nZf0im=C0bZ_yRP)QUf1tL*pZBA4>1M6|<#)&p(7XP+hFC8tTGDHZ;!J!nOMc$S{!?KzqBa^OBHkET zH~JDO9(AKpTZ*3_R|EZ0GKtZ|j!jBwz)V^_76X1Q zHhoWc_(>Ky?xlPM5{8J&m#PQp^RIKk%5?p6rbe5rrkoT|2@N`gEo)?1*C?|e*ga?6#iFxfPO(`!qd+`&bv~RJr!;yK2QE@0&5q} zrkPrBJN$HPv9-}ebITNoahA464sh;mr%MtJksPhO8UmSnLU=2F0KZ{4x?>Mf<(NCQ zhGSv!3%NV$rvWP-4tqX1Rmj^4K)ThcWWGr=?Zn?j5+$?8M6rj_5!e)U*X`%Ay+sd2 zO9-zf(5P&P{L$Y=FApZY&nsRGTV2Acp=_A4_AqZZDi$8z?!pWRfJY zc2tK%S1<@=GxIQ~VfFEU%d}`I^?%Oi!YYzuj=XS{E z4)+9LOqDB#x0$X8tBH7=nr5ff#g9igLbXGJwwf#Cu7@Pnmd2cRAfc2HZ)JvFY<@kB z+buKMfRP51tfS!*AaicuzI}h!*MoXsPr;y3J132;%@Md;XF+>v!I>pP@+0z2oBycO z57rjnrhc*rWwhnBNhVb#h%Ybtj(R=Md7zne)(Oaaj|bvPw+rT>goQJv%UmH_o6Y2O z;9d)V0Rvn!4-n@!VjTz!pp$Bc%=I!4AAXym(Ff%AgNYuc;81fBvpLh3tpOTTT?BSux9yygFaP6G6cv1Lp4Q+oR zILMq1c-$vrLysyd00tddws?@j7gy5FNF_Y6(aYzzc<=aju=>lVVqa9co7Bq?=3l8t_%Pe75YIcrsA+*5yy4I_TZ~|J& zIU_1`8NC!qOB@5P+Qi8)2x>CMwnR5phaM_qIPzm~Hp4=h=|axG{mqZ2|2Xb_H_sUV z3oooj3Xl5|iMqgGxw_;HtDJQi9Ki;xiPO1JKM*LpI(C^#4h}iz_t~H&iwotubcuHl zv;g;TTtq^8%{qrqD)>E8`JAXV%)LV69zx(If4{^uXcLe`@sjDOJs5f~x};GbK&SL26BX4Ep#-Oq0HkGiVd5 zOImEsv7n6u6oTl_3c9$9sbuh9$8ZqfuF&eMX}j%_>+!O^QT+yA2)p~A+?{vL*ba9P zf>Vn2iT1l={|208BjrlH-bj+7mTZpvn!-L2W2zC*^FF3e9aFrB z`#@)m!}QPfOb7MSuGx6y=BA)ZQO*IfT5fPX1rkOv=P1Mw1!vtG_~vKU2$myR-iKtQ zIE7yc_nbEiNL#R}LzD zx?0rTX!)=D4DX+cxD60w4Ye!_uhM@bNm^5+kkE92gFd-PSySVYLWljRSTBMCDnJi} zS5W_!s`S0(AHb`>+{fPg)?H-DeCl7o^`MPUDC~#sKzJr}O083Yy^IJIh_mN}0xgyVe&_P-O{mkIrPpbw< z-#rAm<&EpsYAj_gJ9;rA5%5pOMP9Fp5!UMV4~DK=0|2wMsKlisSld3z>$Hc3NwT~R zdKD2#9g@+V{0B1^N|Cx1hfjsR*Jcs{+1=9#PunvXfIO@NU^;VFW{u>&&%hq3)}ABu zO?Yq`q5P(~4Q5g+MzxHlwuHzc>uV#zg&+L+aY-VLECR_8an9$%C-H+H<9v7ouP)mO z!)h0xdA(oqXa`Z|eD?DU84cFPUuWjc=NbVW^KQH><#)3{$;Xx&d$TZ{B*wVhS3qI5$38ZwpsG2RE z4&uRFaWs-j*QAhDf@Np)2*G|iYdL~*tnE87krJAGZ)N< z+NNASVfUNs%pN+|)vKBQGJ;Gk{pHhGv4g;-4%3o&v1C-dRf}7!cIfZ3h@KM!8y}O?W4su-== z-v@cIgVqL@n1FSJ!$gli-NQoTM+eO+xT?>`E}Ta$FZcA2Te2;kWFf&4UU6A9C5SqI zIIZKJ9V&N;4+h^oi{@7^clkpRSLzJeu1Ki`p{2Uc?;>Ax=atI?*#}tieD@JE;y->& zT`YWgs`Hn&_(ShchU;GrZl8Uu6L-kNAzd9nmcIfJaC7A9_nGPl>fskvMUCqv2d1uO zd>rABvs4%sQ_QmS%6Ca=pk%eTQjGT#r=bOQETB8T6v<4xnVGQ zwy}^a_<`6Vi^H9{**E^#w}9`uvnh%MS2HU3<6LLnBAb(&ugzvu3jh7qTK{a=;xAtL zC;q;21K!dKVSkNYpJFz`d2hvfNwEPo`zQ@UQaHD@1ioxVyP;(TWV}NztjXWSUYh18eRSb_VHq!p1|pArwT=gw7P#+I$9LrlX;xX-{48P^_~IUwr~B0a z?ngl{ZdT!qmH{K46Xf)uVLlJDPtYU+-6w25t2}2jmG{%<-H#N9-(2V41QYLiwdpUE zzc0V}cS$|{!x7y4{yp(u=;&+~1pV?^w7E6h&qnj#&15@qht@ykAC0ThG`vu(KRj{t zxzHTix(&{fT0i6QX!wD8iWytfPnMEWzM{fm=tobHDYJ6^_EA6}l&MO`K@sIak1tp zynjZ+?O^igILojMmTc8je_Rfd3JHjU*+oXc5sN9U|B>zO6DFP>2!3}?8Ct5^eL7&L9DnG!>i~mR%Q>gSzm$^BN1`LM z`m|wBDRZEv@=!&pp{U$TtE{I*(*Le9n+*S2u0tn5_sAjB3E!X+*71y&`(j6IZU1XY zUpDK2nUqMYrPcC`C%KK^5;IsWxLL!_ud~l9RsJyCgCKM5=k1%R3#Hck29iJFD(DtB znhu`J*5n|!!zpFd{x{r_fhC(^7&l>C%CJ|ps3~Y z`;wb;4Q1cfjfL#t^5VVqyo!}sR0qx9_j9Qw9J>CVP-st^*+Q1YKUp`e-2aG2Rz;7W z|6gL_Ux{|7g<*k~1tuR=2R`UrvxY-dpn+v0EhyhJsU!=nq^ff|_g$sC)WN&NiyO)o z_dKuz_RwW?ybnW9tS~9d>4;ICQ0GvRc&+H_;}|q}{qj#^>o`J@)eR0_2At z!tuj)D8L^Bp%)7gwf$7Kmlq2jH%pYEqSo}i=CYeQ8iQa;e3+FJxJ#>=Qd71p(TOV; zvlo*V!eJj6cMyhVfD*aGGHKO@VCE(yhxx@$k1u+Mu4 zjT|PEp|}M^>Ej@P=e)OL56<~&;1o@zkB_a{I7L7ou}e6ALDv z@Z>(I5`0lb8yskdy?;A~!qPY*s&blUCha)E91x|1g%!`LzHWYmznqx(!~ZlJrT)cY z!Pcr@*yd1FJhrG%9Y{EFLv~Rggqg)-irdQCKS$TxfqllgP1}z?@Uk&w)_|OF@x32w z{?iC{oYB00p;ehD%#U$IvJRf#Q=fO0^9Xw+56ytmjfc&euP$iyYi43K>1=;2_Q-q@ z@{gco_|F+SI5Z$1F+&hRRRDkfyQG!onBoO>w&Su?j=SEImssVLKg->^iSA4N$@Yrh z?IUGnjycGYAcEG73jV!tOY7nB)7+tM%7qPlOwPz1R;o&^v5|e#^)*dpTU9;$d$g)= z@DE|aM0LfR>cnj-n-(^NrQiQx2xCl{#yx;S?KM2^+Ub1ZHjA#&E#S5&M-@7y%r}I% z>*eve26a8)_n_UanODgCUeB|pV=dQzw%43f7FAcZ-laZx5Yz)n%a@5LcO>S7E&dQh z!w)WXMgJbhR&IhfUoKdzD$Nj%f7yNmsy#e(R_R9~#sBTT!`6{>tP#eYEDqDlNbygC z1R1+chzh1tFE6z0HU?nVY*z(s8ThbFXlP2)tNo=~-jGH^8E#aU3+`pfe+vQlS35UK z1tajvVgc($`Ieim1q9IGSnzffOR9}JQ{XKW_C~SFHg58h@9v^b?B6o5I@y`sR9169&S(Eo%&rwn({3v zTPIGpzAt{YDZmbnbmc_;dVYm{#TObFqr70RG&r-AImYP%$~cRT3%{OuNmzNgSZ}Y4 z!dUd|*C_Nyqvz{IvT>{hDT|=qhJr={<_UK%8)qc2}>z!uL+d@-U{<#x2 ze27(L-F10;-N(@8{0+8b-WxX~^B}s9=7Y<(&*3t@&r|TdpJtqoZR1ysvQ9{hbMGR4 z7D})nN0GPv7F;L|!u7K73PBBm3mW`{ut`nJpbi%pK!6Ho9SmGm9c)J$U0)mUt%okx zArlGnq4SiQays?v7w+=5G%YWO9!BzAXp9wt#|?%r(~YqPtqp*<{y2Mae&$z5d{mW6 zEXQw^Qb206_rZ07Mzp3h_GkinY$RRg#d)X(~Gij~Vw#oP%zyVlf)-TWCmedR;(sPw_T_y;SLxhnQgJHM`TBUI@1LEQw_ z=EiZR2~}Lxh>$=W5q94eZ{=$&QYL+zvb~-(A$2HZa6~CP1=Au#?Slh|Bfs=30E5v7 zp{%?I2B0xuY(zifG6YhKi}!Y;NCQ60C2)?=rl>!xKX&WlRANW z#Ji7IYI+_wuA^6jl#6AJ?{>psc3V9rNi|VkVSe~SOlqHGe+Za^jktovq*oSzGfMY# zQ!-T7BFDt*W?a|N0SuK-`WG_CM~)1v1XWRwxpkP{t=MO*J)4jy2$<}T^iyPwdl`nPowp9r zYD@I)WXxbV2L?FSo&Bq)Xyw3|%=KuPmpq--cp*W!E+yhpBkXJPV1Y1VCfc>=d&l*V zPcE*lL#ec(NM63POlRYZ@DT~f)U_n?f-dlO@;{_>RZSQa%DT`(1AUfd0&~`6?B2m6 zC=E(u6su{_Sq}%Q0q)ihMjbmsNCGLRwmp!~aO7HvX-*_#+)cNwN>pqYuL8N5slrhx z2S3VgI}odahiG;U8X`ZWh;#txVpOajh`P<(vC*$_bNfRTUdRD~Equ2%{Mx^lg;u%f zrY_0H5aH}vq4%Cr*E*80IlSyq9BM!Go5+{>!g4FcGvj35b$V=OH`#CScnJB7eUHgD zUzt2}`kNIDC}1iSMw0>tSc;b)m#7!9nA0O{j-Q`^?Rc}b{FjBj<8PO+mhBDW_5tb7 z^J(ts50Kf7)w?TQlil*&CXq4Pr@MQs$BxaUkhLQBH;2Q{J*DE511y#PJT=jV!8t-Aas{(Y6fKaiG!BvDd4@7$|8tzCq z#kN9;+t66CNVKJc6j@08%7l}w*uQPkxM$A8w;^Kck*uf9eR?(wo})Y1XBcK#0jll?VRxJWD6BWiXYXEh?opZUgl2Pe*# z+x_mCL&jmJ;cpnCXu~pGXmx9WuGVqWV4mg>Fjp=#(lw=Q0^uY0oz}=^sYOVG;k=+` zGr*jghq6?5C;MflEQa|n`P50;JVK-@w8Ek130wA4M4&uW{||2q!b*B}>Cp`JdPqgI zf%d1=kCNrdz?%ZUl`aiF3Xjo*+}huP-4oK^nwq4s-U9Jraqjv3I_zZ71sDm!ew>%p z95bgVjhwD!cZ7Zl__p+P*Y8|Wm7SY&Ns^%#SY>;}@!ny?WzJQduEB3n3H_+tfcoMt zjPK{OHlP;VV|6N>n7hc^je&U?Da5R#0L@|)DI&uZs}=12jOyfA&`7MI-Qg3zmBDazeD{8k{e( zo~SA^r2X~B8UO>xn^g8E6W~=QY!HGy6iz22Q`&T69Fk0GLOZh)|8R#NW+!Y`f`-kO z*iuT<(cTU#3^bZv%QWkqzy?3OwTjmXjPDcaEC4=8e;x>~3e=o!^_}ZfyZ{MxCY)0w zIgz{*UNZt)XF~O6Ih4NDN!KHXHtz6gc924`G~|);bmF~BZlZll3=zM+Q+JJ7Gk)^z zmLM#Zw_)ItuPr`=qdHNz4yW4Jt82pdn`3k;N-=BssBe|0v|f4UG9r*M^YO_jFB%Cg zmh8=kCTL-Xh4RIzZAcF5DMRRz;+Nwn58}#|U2zS4}CwPi{7bBO`N8zJ5Yt2ya zB^2fgc8a0dob5;8@jySK&vlcf`9*Z&LZE^Zw6yPBDzEL6{r4p4ITU;g;@*XPh;v~Q z7Y+Zr+x5Xa_HhKnNcb_Mhb1|_R262<<{STT4mP93jy4-}dP@}8&Z;G4UH(oo;bX2# z-$ew)r}ni+VAHNW7#13ui9xfUp(Y;Mj6NF1ay{ZtP8L7mjoL&dr9DqC`k`&`1u0=3 zS6l#>&ILm$j~`-&A;YF$@vU{ncXWrI;~8=yif?lIZOYXU=zt{8>&TC~1ko zh|U+?>HR5tCdJ*MeF2}@PyIL-rCB-qOoQ|$_RY>ADGo)K+OH{nQiDYywJVLd|5b=@^ zWuatur&hT#F#uHa`9H~G2)=e_-FB!!qMtwLAxB0ojDyPfQgi_Pi9Pq4Vqt-Grjs0n z2Ka`=rIa>Y@2sPz&@{jw>H=OnQO_}Vw|f0!rulw0_SvaCJKbR=gE9o z8v|CRmjGWCNC_?bzK0snErheI&oQ2tZNtGIQl2k5-i7b9dnD3-;UW52=r=~+ ztj2jK;OIVY)?2Qm9cHwIm2(mR?V;`XP7hstZI`zx|7i74G{a}Z|00^qNJ(OHDr=+X zxzDN`=A#Iu1JNE|YHn=RT#fb8c4PeG29Xrt0FcOhZO!5z1EtwJ@1JkH-`Bi4$@lC_ z$~kl*Se!wD5HPRRI_=Jl2o*eoKAgNJE?cC(*ybM9vFFoqO#Ye3t{)1*=}3vq{o|c* zTk2nCtZ(Q|#+oZ+^{VHUY%Lh1417O#Uk2h|UeMluL)jgh{d}3MzN#Eg9W;M{()GC& zGxzTWA4L2$XW2!*vM7Z8>u%j_+VKptCg)8A5h|rizVIM5MiWjkwuX1e>;%?{hGkHC z$j0Y<+7lPA31Vxi7hfD)CU`&2d{q$6Sr`>9B`@iBD94miM;5_m?bi@0!QU$~1ju}7 zbZdHEoM=NmAk6n)zUg-x0uPcmRW%b4fcX$vN!Xg?8+*`S-e(2zD3lH!Zks^`{D);* z((1ad2P!<-h`SVSgg5$#Ue}k~GamPR5$+E-!VuirX+QoTVAcTiYZm(dB}f z_q5w;%U>BZxzj&&YtF`_*;`^ZLg&q~CR^?NYG`~;yq;6&%C92rj%-OZO_P2o5aAA0 zy)U@-M{}cdZP(A|d|A=C-_LgGQt_t!!reolmmxrPgWo#LIH9{|kalXE>A!51Wrepl zzKGMJDK>bE6(|VJWABw)BBimnq|;b~!j<@9OU1@P*+QxI4<_vPgu)`O>}KNOmVd8` z4V=1NIeu|YMWo=TlZc357O|CK>w3N4;-iwHzd%I!38eF2zW94Khra7r%>a#t=$A1u zhWJ6IcvrfAZ>nA8GQb?N9oC;o_Q&45=nt6gU6DP(P+9;Vzavcs>mS=gr@CVm&6Zse zbBH8KM5lF(luAgK8>VUx{gCHD)TOnmc#J7K)-7J~RY#!;QD%O}Tf!BpXUmhT+6H<4>;m#H{)tEJyB7ge5O_SuChqNSvC46H7rk#mWPT+RM*K{q@HgM_5hU_yDHt%6kN`LIQT&521-2H5#1f1racqaaBl8YARj`)yY&v@ z0ODdr`A3gQ&sZSnCe1xo-U~!G?_n z8|>$@3v-scK~!tN8Y03H+$ojhn2Ifc2Z1ywT2c-~8;|?XNB{HKX@-KZe~mNA)gfv0 zID1$bAHUGBpY{6=TGH?d(eBCs=z8B?Ld=n%^ZA3WuaV{reAXCsHtkagd=AD`G1V>V zP-c2Ugdxob3%mtj+S^M_@ z5H9IvWBUxyI-FHl0M?Pm)e8M{(j^x{PS-ADtx&k2u@#NJx;OS-ljSe_%CII3II=zb%5X^SF8c`NtdSVJ~$x3^$sMb}uB#QYu z;f6iJh{a4Fd|USh79M74mvgmNf0Rtf@9pnlE>ZON{gT40f!mOIXAk6N>1IM}+rK(r zK+Qn|q%QHGOA;Q`$p^nO&5BfcfLY^2N@MlGUu?=wEn6y<176RCMB`dn?5hfpgDS!t@ zA(~m}z(jORgWClJGmsS$jXEGTwIjMkoMS{2634gmT|;Ce=yEwdxK`M3jsmF_eHN0| zWj4s?rYZ!M)Z#Bls-3yJjRP()nSbi-<=-SdP47G`N56|>c&O}cT)KY)7#n|H)^K6m zJBhH6%o~V&-VL{&r_CaL;@b3KJ)2ll|M_0gUyUG1-)){y*`6(j=dDhbUSqh3ooDJq z@b#^4S3FXe*+&vF+$7Ps$P;@D1l07vz9LTNvxZRdGFBh5xX>wZmNG3S2K_zz1?A61 zsMm3t0~dD!pBd%aT<``?w?uo~A^rS_C=QwJn*=7B?YU#)j`yMsv@gk(FMlV+e{b}! zmMN=6G%4JtU?bDp&0DM;cXW!d2;OgT;aT@nL09KDo3j1wUxvk++zuC(q8MdfUqShw zatrtXsD|G_34bGy`hRNd|1LQw7V4l#-6=%E>3F)0qn8bE9%)^kl5%i~hX7SzP)piK z*o%KGsLkrNy$P-Q^_$G}b1zuU;U0@>H+yY>oN@x17@%raHdC@2bvei03qITcc01&U zb7O-1II_mQX1nv9XoffBX0S|W#0C#>zr)YaKffjq%!Jy?!a~QeP_?uc*3XGBBilZcyPpHH_!AD8~&EAJfXI zzmJ^YUJF3XPW{4cTdnJq>5O^2HaM|>=Lr_T(||Z?F$ZcqMN1rh2Q)u) zXD_=i#x`!3J04<{1C#$BU2nk<2iGhOLU4z{hQT$s1p);3!9BPIhhV`5*C4?Lceg-r zcXtRLAh^4`vpnzJyZgy=|HJ81-Bs1qB)~7~^D2r{dRB#qmx4ApRWPE4NUw|t2|3y# zisOy45^^!Ayh$v5ckE=7Gz^p!%Y7sj?qroNDa2uc`*~O~cG@Ujk(|0W{&`wmqFM4yCc57oAcKc3vD~@_@RbfeI znG6n_rEp7hbY>3L8|f`%BfImSM~viIV8gV_=}B^aOJ4``O-_z@fN(5Z4a1VsQ@urb zd??2Up#h@ctQO6i?BfMu%_>e~XJFsmS0D6CCCGg0pYJ)AyJu7@JBDv?)`=A+@)70< zYPnPYZ}27}wN`-$YgGojwf-H&&Lu5auj6~IFAA(LhMI8T#1c49)XyESBjL!exx2>| zX8(bS3Q6eGY5w#_vP0+z5AL9EY>ELDI*h7ItV36~;{ZP0@BCIaD2|6~ z6F5sCgIYXj3uS8?VDGf;e-)oJpAhP*!=JpCOY1UE+i;Dv>qi>@^mV;#xy>>^q=PiS ztLS;=1$gmlkQUSjJ&beLfeyL321*HDwu#y8A*?*~Fr?mr3I24R;b|UtRzB$?OQYDt z{S*p$@S0 zuFbP*2Fkg$@Y1Nz1-Ku6D$kyV!`B95Ns&mwcc4-7iH{J|l*Lz`Pk@zoX_7m$K?@4| zpw>^dtNLHm1EE>euekZ#wpK^;Hb1`@$|rZEUdJ9;A2Q+Qk;LVH3*-Lyc8-^Ivf5AB z?B18SCyQMvejmb!o3Q*zp*;OtGoT*OL1Oq$0JDR?l$3ZVA-s2904p%s7dcl?<)e=; z|8=g%OU4_7J!K=C!gXSyTG%oFuWjT14{0wTY^Z%~;^Cb2z9xDc2b#?t&cyGfIvx%?k@HO`13ryH6f{d}fG4Q(Z zbF_YO9B+VGoECE^q%ATbJjIq`l2V9J&D8!3QXy`~I*4|LI{uJ^8yiOjFI*^SCXs*A zt()>IOK|H>fR-yuZTI%|EEc{LqJ}lZM`0|}D~1NRMZai?aO(&&v49SFw2cgC#4Pzs zVO&&B=aVcvV?hV_Uh~rsJNOl@U!7wZp+~wGC|=LeN&DNvEBWVy*ylh{Fqlq(!^f-Z zo_2u~4Xhp3E!2A+Xf7xSvnd1wa&rX!L|8dvB!|l1!UjDTW!+5evw=?@C{^%w-$N5@ zsYoq7WjPIER}?eZWU$eT!`|OqxWcEPc{CDeQu5wP@XfdaVNR}9eLI_<0>&k9N3CtQ z>~@R-lK3zGzPr++19p~Rr_GovpauT;bP7lrW|eVe+%@Ums!p*haMQM@MjCahjQP5g zvT*A;s4@pjA7~oIbX)HKhzR7RQOz-+Xw;-=?S|ISiJ3%CJh!tp=}TyF@k>yxMcThx zy+Ez-sazt4?Rp?G&cFQcEC6u8VOu##WO&`IrTBZw@t)@294GR?=(p2`Oe(dmuV?OK zP4ArM?hG&@n%p~^Eny~FR{8WRH20_WU=C7yiKZiKg0%*~U7o=yjMdu_3fk1vq^JQ4 zrwE(dPPm1Js!e9#5SOMPXY}iYJcb(xgSYrt$j8Q?9jjf9#_&-w*dUnD!0dD!1X&jR zm6HH%V-oxo%`RD!A6eW}p*7XYvh1fR#1RNS1TUL9y+Kc-E9WUvq#fVKhL^LA zBmVa7FWd*%>3N`5Z$zjmxpR=3$fr~zGOenm89QDNyrkQo7efFFeJyjRwkyI&LcDq; zYF=A&>l}~an4L3vSOfJW(9=MOgrRG(f`b5$0A2&5uq1*jlIDg9`AC<(n)ZT9 z7sY50+{BK;iNb=yj=wri>EH`n<>h}Bv9MvXWok#!T|sG^#WGBj%Hq6uEM8rGHpBM7 z4D1Q$WnNEd@y9@)B8c_0_yTh^Cdb=QF^L4CeuFSLeS3?z`NZ?HzQ4p&6?d!m(0RYF zXoXnyib_|yxri^<`!wDWvr@#dntVC<%&hmiYFMYI9{7S@3ngn^!YuZx35W>=F2KshscHB)y*UXTHal2U`F^({enL8F%tzBYO^h6AT)Fq?qkftKN z6irhU^mB@FRSF$EQ9fDo-kr^y@2Pn2Ml~MtjZ79me*zJF-6SoX8_(fNkSRH|MieEVz=e2J z`WW)V$a%pyA}5-nmMD*ZaXU9NzbY6IwpGawKY}sqg96z#^|liSDaamWK!;GPQwN?V zyavhkT`EGFP`>P@Q}Re|_5D~vlw-Fy7C7TK>xhy&_8fALTT9*i!V<;|tH2;*u^RFO zuw~`ox)-F~W)c6ArD7Lo;T1FBFH}q^W8k`k$>T%V`+9C59^y__ikt5m&-l}&85OQ4 z$_+%jQ`&ToyHjgT6L5(RWG2k=QoSP5KOgZC*cAMpk%!d^nU^LRK=KNuI-qtoP-PsXEyvTyFdQCVw)JSsyxR~Z$3Sg{&2_nWjQt*MDuz5mQIHI7N)3Tc=< z4|MbcI)F}?7KS1?x4xdFab=h`d4U4Yy-=z7;T7R;@e(Q`^1@wft2|Z={el>)+>0jV zt&Kj7iIJbu;Wd}m3{)WXi=GH0670QCMdsL8iPc$UjJ1+Z@wp0r0&6o3jBP%uJC5DU zF7NYtN2|QyQ#6Oc>t0SA4y5ntJ#_4Ylw-j9TAWh^Vw)?CmEZu(go&4e)i4%^`ChN<$>A(+P~$ z0U0a1v<^#A6hjpj5}+Ne4^Rk#eWX1s{Gw7p<8N`HdDH}z9QEDQ~YA9#{9rbNAX#kM*(LttBq=S zgEn&)Xl%X}26f>s>U^i?mJZmXd{l*#qjSRwRD!mQmPO(ec0p!b*{V9EkIEQ6N1>Rg z##)X0oW5n8*IWEv8V2Hb-=`Y_20^9012Uk7ceqDAckl6H`;6h&tioKr8UD!IsyNMK zJzbhkdk%P}^D^r7_)3)Zs2ST_DiN!tBF$-VdQK#jgs?e@oz3ZO3^67@*A{%`c7pL| z&+X%vW#FUcJLcVx{fm8`qo2BcRTIJ_xAiW|1_ys58PacoA*nc>P%9ZJ_JJmB^luJ) zl%dsJ^H~y`EW-Y8Pa6k!Z-}o~zw$~)frm~dOKGM2sqVSW_Q%@v_wJY?>BtbI z`aUe|v~lY@%}tPnGnq^%Z`fqy3#_oR*ujcEQp zs%q#9bIIKW!~Xp)Rs6;dN>F^JJrtK+&;CxGf``_{hFuFTHrbUjCon(gsUs-0j#^9~jWQNw=f4%C_ufKthtar^PKeF)eOckspf{k7eB zJ-K4sr_S6IG~6sc)^95@84r9R!~ zR^Qar+m>RvZ)?-<1Fz14m=-R~zQL9ntQ7L0xV!DWaB)P%Q~csF1MJjyZIgVuhu=># z2n^~Lq=9%?$!%<2hwcRsx2{zD+TYoy(nzF{p`*$h5x4@+Ijz`$V_?cb=hK>M0^2EA z`QN^`>neE^^R$6merZ~9WK|;VG`>foe<6ma6<7>rKKqJtDd0b>&Io>n$XHCV zJDkkpdKEr#q!e!z8XN<9JVKCijz7$v(|@3j`C1#0xj)=wnftf7p^}SPJMFM;--1Jg zS;i=WM2$#S(yDi%^27odGbU_VbRzzZRe+CnmBSmyn6sT`pnIFyH1{K@Tx%7<);JJ_ z&258(0@9`N3-|Qz;NUI0;Lg@lq69xW<;>qNeKxL^qyh=J)>XUdaWw6{)h7%5+q!p- z<~j(nZ?S%XOD?Z{QoF@* z$dKU5ma9K?7a8R|^IL=y^*uR+(3`m6yqT@TYck}S1oI~BSoUdv$eZAlD;_Mn_)FTW z!t(KMGnMK2g9*Btj-E05esr)JL7L`4n`2;Lp`eM=dmz$UEJXA#}1p9sg#y8rz0 zMu8Q`dr@=#+aaQ}3z%~CcNEzmP9(fg^EG&kN!*qdR<>UvG-V{=<&;{y!r!vRQgSr= zabTLVoJU?G>DDpR7YC}iBp7l<+Er-X(zW79Ln5-O{w%m^V*|KYsTcG0i9{dAW_!Yj zfmaf0N@C0s>A%$}{{44PT-7kWperw2UC{r^-c}7a7RZv%74$^j)+)<%K{a!BV(@07 zNZeq&p#DQ}=l9(^q5i7Ia?(+dr9#Te<32!Qkg4^x>-rnQ3UTa`*o)dLo?w;%t~d&0 zHYG_GJWN;C@P|vB)yhoKj|`j+#af%LQTIOQJ+>H^0rAsue!=Ojie;nA;=U8RXxMls z^R5Q-tPBE?i#1XAGi~oS%26Lvol1Gm9sQx@S&3dTm$Z%gM<w7a-ObRA8eHE|zShBbs8YOW4 zbka}_oqVPwEPyPwO(cF2)0wnCRy1X^-m-?TEEY1lg?x6Kj1~Z(0*Eet+lAR z!sSD{V=n%!Y=S957SjJN@=df0A!s+%N^q$xwZ&5b)ebbtT*%GevO#`;cIPJ5uPDMKER^WIV#`j&*=bU>9%cbJ{b+%ou3dVkdF^{+ zh*w-N(=79jGq8x;>if6ZPZ8a^4FVy@i;ag$Nt2q+4nGa!hdVyJ=}+Wvuy1K&|DXKy z-(d6KYSe20^4cV-%ys%!OEc}M@z?;nx~SQZmOI#Mh)OJ31~!R;CShSB@FDmU;8_#$ zv!gR`vH2~c)d}&h72n}L?XTUk{51LGUXpaG5Q%hyKQzzZZ4ZYVC)+ohXx?{qh@Grt zKbFsol%ujBbv1k!z)(FYANX*Z$MzUk*Q=}j>6RAv{!5fSo4gy`eU@5&ko9QQs#sdb zh!*8AlS1pu_!zj}hI5r+=Pz$9^C0l99_*Yl~aBK(S!sC5`>^+5P=$&qY& zM}Tg)p)G8xkD`Zcm7cBZ&r9!pP{L$blKeaAM=4STRhWG^e^NJxEN_i<$G=qhhU z#P}yS7-9Xj%{q9HyBX(@WwwN=qFHcg`{5I~M_@9H7^Wa68ujSs*5qBYH;66exo*N$%WHXiy3l> zil*q5t$E|eA}NG;vh)a2FSP`0Q*pSe=Nk@JS-y~-pUMLX=!+zj-_B6wk@%??4LANM zWR~pUn9LnLY*X_Z{jaJ)^8X5R=jbrj_Wu^j|5-Om=&(&cQBxnOwc1lmOX2xxl4rCa zADJ-VG(sN~bw;K|yrHnqiUVKMmU`_OscB(Zw3*ZHMr~MGHKih(Qg{YId zK4Bm#04_dGVIsYv8oXYUZAzQ}M2#^#1(;KK4s%2 zIIydFfNF)I#VC-LHx1Iu!w$pccsM(646xY#?mEhoKruK(nVsZS_R5a&a)Pq5Wva1K zHkG&+!a{aC%^?L4*jXRJDCxW;?oO#Q{HB2-4|2oCwL(!>Yq}aga0IhU<&VjV zHfY|f=9love)YY) z0#8DCERzJ;&AZfC{#%VeIe91XOO;v2CcEyfz2{>d({L9FbU#*f|Ji~T-rwJ|<)b*2 zdAxS-K*5d`M|!Pup{9YO`kQ^a(U6m5Qh&l>cO5o%Q+Y>UND<}m?bV_2^~_kbr`|7mgQrgs)1N@!>W;o|04wrY-D+k|F^y2f3K5Q5qKId9%!ZYd6F4A zU;H(4g*RAwNH$1=qMgRW9VvxY#Va!8zQ&#QH#^Ky>6u6p5F=pf;}6%|Zhl`;nun-% zTG;Dv?Sun27cv&u?p_qxUAC2;>D3&&9>jh<%TfrxI z&W!qoVz}v6KlRLUbF0P70x81Ql2GV`Ili4YhKiuaCpn%i)W#Q&MC(P51B{1a53FzZ zLP2ap--$g=oD#>+^mlan#5>>}E7VorxVz)_-pg0e@hb@4CohvM+uu;^r05&B|1{Dx z!O&MCC*0y3L_|NkG}q))vfRd8DWRxC{>YD`zL7x_?@W3h>eF=yi}qhCd~k4JH|^QE z^v2Z^EQ8dgXDkq96qes^qgCdL(lDLQgjB9@R1z>V=?PTiM4xsbbGXgyqQ9U$D6bGo9`?vp_Xc0=sCBf2|5rqKZU&x=rBq{7x2h z5Z~&j?R}ZslH3#0&BwgEY8gd?lSmVimnd7BFn|jsR)3eM_%{_HYqZToc~>yDqu(x9 zK0>?)A@#-w2^gp$zMCaDel`yW7>}538xW|<=yju@+oZoQ!pWED*)iQ?IFu0G1@!}j zPP^1n(iugx=_0U~4N(?86J5A8~$@m+M{phYX9rew*X7Cco?y{}0%Z72+q6 zwi|QRP=8DIUGu|LvKgl7BEggk!UvB)33-I&CrSXHCieJ;L03y&Yy1w{4OGxr;)?5C zA}*EUM+cM`n|JFt-YKOnrB5goG`6;%8B&aHDNGo|#Kr=?qPt@nfR*IdhF(kRSlyWz z8UqJ;RL&DEzjKiN#a+60<1B#aHC%u8?G^B>FG%7x*vBp>js>ko#B_A!dDThyW?f(@ zf*^Hqn?}*S7=#f`vc2MYhzw7aaW@he@>vzovEm{uwq`4&p^ol7hvxy0=5{G+Wcv%B zyciuI4C5g3F%&*lxm+Zh2imGl?;c1OwX(6uHzk+^#59^Nnsz_PaG4s43s*lh;(|EF z)q`Mle$`TM7%Tq0NFPMh>so}F+dlID3*SnBeL-jHTHA?>2ooplDcg>v1#H_hp4?C3 zkm;=!`8MmJ(c&XJN55Iy-$EMIPLXYO2vE9}o4rTHctr{J6I%&$q#g=XK=_vE+IV2x zL8tmfl&c%Mhum^lg-8!02_Mv}NM!Fi${=BxeA@M)UPHNCdLx8|QkP_#X7%}K%yqCg z4{vk#GI%hCqKd_bw`~#zdwZTf_G0JVS(>U>NItZoI14o2HApF{t?k9ZF(7u;*S6K- z{b=iW2*+{!ZT!!(PDl`&38dt#+F!#&lAP|T&gXA8Nz~Bl)bdO3`<;Sy(H<>7?O z)JZVK<%3&?eE2M z9z>~KUQTE-K2!h@zY{z=vn^OX9!}3doHG+&v4W0%yQH#y-Zza-#-ZVH_dVZw9}9C+ zE$eAU<9W4at_{U`N8I|T87HGtx?|IHERIvv1?wusdYhZeTj&^&r@v0Ns!WdXO(f8aTm zV-#pFV*|aAk2m&^pr_E4oU&{vEu^Hi7Gqj8v2ka`cg&I}#6+v_%gKDww5QgmE z4p^~gO&s2$FuTRO>k~(GN~PBlfCF^pke7=9r&2@^VDTE+^`XWfs`03i5O=0_g=oRs zfSwD?p*EM>dG0svnGCcsX-EC(v1{GYidxf^V;{*jwz&N#Z`Dabny&uZpeYOAY{w_7 zxD-c`IwGji_H8_<|MDos*y|SUX@|KgW4~#29^v*vgiK;dlPkhZLhn?SxOzBO_oHQR zdX9vnudya`_uOr%{XTrIuY|zF>vB6oDJsREkBzZ+{`f=cZEEyCERsdYKRwD(B9{{V zziSt7%PH;SCZAcqB84&e6Ee~OT%ZxM-@nR&gF3VK3)rFy6I~rF0D)bl2n{!5#(UrG zsm4(A9TS=lMwG0qm~zngiz31#O1y`7gAI7{O+~W_@^kP^C)}!kyJ5;`y;>N4b4BYa z{(K+%as47ijyt3DVE<5adS)qV3ggrBGND}S^`VuZbUzYYXZWFlhby;IMJT*hY-zne z(rcf^+`jMQ&nzFej*N2X;XPtgmR(-P!`|du@O?o@$5Fux+Yr%2MgF-QI((MGV1=?= zn>nF4oWZK8yg}Z+q0~S-s*1i!>xw(Is3~9xA>y`tO2K>Z@Xu+*v^B3nPmxXS`k~cX z*Yj0FONR`b@FVpmQ2~C~w?$H}Gvd+e@9H=LC0`4_iAeD?pYO4)a~PKYq1@6e7CjmGS&w5&KqhIa(jo2VrATO$M>d4=ETO#{Lof69=-U*I2AqBCm(^(>W%sEM?< zzg-2*i3AbB2EMa$`HMP_^d*aBkiaN+X`;nq%xwOefVWz0UUPI#8Lp+?_a=6ge%lpI? z-Okwh?R8|*@Rhr&!wjtNQDjF#PUM~%hrZ%I{<*B4!MmB0<=*H0&x*(F%zd}p%8aJ% zq4P0YD*?YAZa`#QFqZKX%G^m$Md;@o>)PZrUce8@zdpka<7K{Ht$Ug7g!^*5x4VZ} z=!MAWL~Wec)8ml83wj5THfY6yBPah+|Kl(xh5l__(&M<}*ugUM^phU$+(a8ruPV_x}){QvWcb!@uGN693)oc#7{&{TD)W9G%hUB*P_;VpH8oq6_{L+gmEZ z4quwNyjY1Y(%gN4FuBV#2G(Khxrs87=5PP}ZJ@UswO)>XF*EfDwLs$b33Y>@-XWZ$ zn_!>u$Rc20yAC)H>?>_qp}-g}@983z6| zEV7|7Z|`M#1zq^|3pQy@lSM!Eo5p7{pTg&VW6IA#+WN^UQ?!U?GWdixB1)pH`}RqyGEzv%e@o zpA25&E7-|t!&4&yQh_S1~9CYRu~7w*HnC5_|b6 z(Y;+4^KM$Qxi4F}$8+_<=G%v4a6@lD6s98Q7q#8+BQv`t{bFq(!Ys0KkrIko^@$V_ zHO3SDa%<5l5UwQ`m=#Qu`9Ud<{mUkqz$I-IZF3$g#zW5;Xh(6``f7jv+XTumyrdg_wZssrO;-_3gyq^zT*hv+$W7uQP~oh$W<8jzU;<( zj^z11@l{L4%r|7G(I%S+Ste5k8v`m%yjeh#^GOaVl*0ji6}nHgDp@M)C#&?4;C{!} zXL>}pc+N*2v*gg;j=JdSiPFpR*%yW9r+?h=cfZ8nUh>O9A~P26zyHcU^zc#n3;F@a zbt*6(r8MrSe+lGMB6wZ{jFOyhD62op=El3T;tX|!0_cCr3Ab%RW4&A;QlJ4>&}Gv6sNFU(Kw zTE~b85D6i?Kaukx_few-|&{Jta?ve4rsY z35q~0wM}v3zY#^*@fb;-8-%s}xpfk^x4eE{4l6oDMJ<;aG1-9NIOZAV_TnzF6+k@Y z=|*9aR9jJ5$boe5NVj0VGJIKj9H-VqorlG2XttVM`stG@_L{M)&hC@}m(Rk`=xwc%_vUe+Cdr|lMsqli%5c#n+@-sT3vb)I6xP)oPN+3};e zJ~1DjU}ALLCxNKB*10uH!xu*X)AKWx?}9h8fz>DBxq%JwYkzWN99S^jw%(d;W9I*A zn=eKG`I?1nQY>Qs{cHB6d>0!ez41C9l%Fg;7y(Wt9cmMYZRFc;%f*un#70+D+Btbd zsYR7&m8dJY;{EK}pSQM*NyC`+oaL&qMa%YwZ|=1@>`%7;*WWU~(#LdNOr35Z)k$i& zq%TrsAkejHAY-ADF>grY`KrjpDpll%ek$dHP1K;h=Qxjt#c-k2i|s4C)5~#tsr{OJ zDt*y!NMx~5ocR&obeD^CuO?r4K?CW3idK!W|4zDM{LSpuV*CSZ`iaKp7%|}Wqe4he zZ3pEAj5~F+;(MBX7v(>6d@x3CObLkaMKLJQdXOeqnHlA8v!PO&6m5p<#Jc_OsS#gD zOu2zx0d1JQ5_FV-C5Da)WK47qzfdd9Klrf5o7HS;ySzb~b#_#d={(IKlRDSBy0lWb z{gvQ(hN9@yMW+~+02dwa66zjslxW$%mlMM8r%DwUP^UCX?r0+%m+w?;i%wyr12Q1 z5@N5(DbnV~hj30hR*~6pf)W|bG0VeynwoYocw$56pH|>LmrlqO zsh`=4Vzig51}G;Opr!XORn5xPI9?*~kMKAzeGZUselt`9yymua68xzpfmr zPqq2*J-=glX6e0xzwm|?vgWtr&wCxU{&**&;b4UM@g4WLamyA>%IE}C zRcMAUaog(n&HlQ*(iDn#Q(J0~rmMHVfzZ;;yTJatzf=jjkQ+@K8r0xHIyk$)lkM5- z+441fVfs4gRL){jKUp5e zfmVV%Cus~)RZ*x|cD|}4=}kBe^2rB|=`&@NfaXxWY+hR09;=95HFl005h@{c7<8^1 z`tj>ULvXK}dK0Z=wPkAiS2aMUBdG(P`~c&+K6GO=+~O&`$4zC;0T%Tvj=mw_R%p!- zuQsysugK5M?QyMSq0I$Oso7Yu9q!Qc3$bWlGe2a^ur@p5oXhd2+*f|v;K^||cxi#1 zB$KdBWmZJhR>7r*T;65wm)=HO!2^NTe#|X#Pdq&^kH~QI!?jMudxGCi&*S`}NYrFn_K}!VV4sCH}3JHEh6bhG( zZA#Ie1y_}t12D>>bOX3kio^m$3mnH!#_me!DRH}`gC zmNU!u>nwQJJ@vhg+-=<-d=xuk2Z=9W24iRIp$`*#-*0VgO*>|e@<3#a$fE>SS@PBYOc}LrT$jm(QlH}2OOTf zg$C+N&C*%tdSZokI@fiwiwYoQUbvtWl`YCJcF6yQeBZk-8fzgKAfm?NBEp z4=^P@;t)Uve*Lze2~?GhJ$IOLWNgWA5R4E~A<_WvnI8lgIteHkQZzXaJ>wm?+a(%S z+Q#zdz^jyX`t{kZ%(GD`cGOjDt1Rn8^r6qsX_3S!$ zMwiL%jFntE+hFBZMP`d6XuuhDOY99q!7=zn<65v|0SD&EK+1WZCmq?6%V5fRNuyrp z&OnQ&QTH52xxaa-j}boB5nVq~wtPZ1so7h>i9){?FsUEvIcnKi|`3KaXHTHhK zS4M_zx&k+(PHk%aWLU4Qz3Upz`KNu_a6vpm z(c0|3yIbLRBnpt*W2^>}jr4!WgSTJM=O5G7ZMeOi;J^2&obT)8ER zt@ARek0{OeSywjuDn+S^sSsOnNV)MRLdzRABW4S{&(SN71uJvV@}e1UFmES{MbbD6 zGm0_0NV&y`)w^XQM@p}83M%2^hG`h;o{^!{ppNh>5-JiRU%+~98JtE5(xXR%BHP(a zmPn;5Wr-*D<>Dg4rXS?HUs+zu>!N3eeAx;G;Gi7pqOxQ9?w-w2$YAuWHzb)<{P!4T zlkwc41cmx(&UY-zw$8>%N)-oN|L7*y@CC@%WsCL5W8Tp5i?Z@J>F8^*5M9x3ifm|w(BqU=c{x34*QM&si zxX+*Ps5K*Eq0YA%X0yQ5rIv+qMxb-8LX6=js(0~1sDX%^A}WkO?IU%KN!Ds?TMyS< zBe|J8)oh+tH--!8g(;u&`T~%VfYPk-r?TPwSxDbNX2+ zbZ)LY$`#!x3lRR(*TC~7i&-|IwstbKC2yafM6|Y4Se6TDUkbS0@u1Tgp43y?G*cK1H#!(f{yB1Pt zGL-cZt8^X8eFTo*iV7Fh*zwizGhD|E?02Q|uu~mDv30DF{Yq`?c)+{r3^fYTI*VLV zU-sl;r*6VNK|Zd=J`s$2Z~4#^Cq!yboMPCmIiaIDg?`5EJgJBN$r4mre$`PT_j(ew zZctRatxXE9vjS}>2%AQ@gzhv4onKm|##-Jzm zk)rAAtMLtdikSp(f5V32@FsBQQ)t$D%S(tJ6L?)u7G-hEbrBN!ABBsOIVb>AmBh}iQF=rW1xuwp<-5Fh$DE|;a zMt96@E%uH-cH}}a_c<9a)!NF<^s7g+2Y-1k)T6K;lL)tvlaM35Ow{i8UrKGVN@N@0Tr?@89snZDglq0TgU$8$&5e(;*Xz*sG9Rir?Fd{WM9zA$pFU)uvo6HVl7c9 z$XKVCy}nl`>3ke8y%5apGL!EnCy@bryF?)sPhY=7PQ)=a1xnmcTk>%H0tVc^s4nSp zDsNt%KUc-u;@e8(JTd*}|7x{>k9y^EA79?u`Ntge@5>OpRA`)y(3hK)^iv&)Jxqc&NXi7&PB)+P#Mc!ShI9#}n5%PuUkGr5S^&eQ3FoQwNWau;4u{yJ~>t8eB5` zfaTaxF8l~b=+u%&GBOV;9{K9iF%$C3To5nMFdBj*CXwK_euAq^UAhj?ToE!yn^J4b zI{zMx8EYnr1YiTcofs){+P`Ila~^LcL*v=$;w9?@nEa_&9pa7R#$B*v&jIRw#8jYV zCdIs~l{Tz5s$R9%WgK39#%S=_BQ)_dq(J4D#)@R!*jaZF;|=qdl0Y!w*cF4#PwMXM zDp7e58NPf_7A#*~@w6cFS!8WQ=o_zt45O_|B4jnP{TLV8sD}`+KwfwDAHDudAHDr& zkZ83Ja(euq9^BmrY$(l)ug-lIDyJawX+HPXr9-n~M@aSy;@gRvFe_saA$Ype zBf`X!*eV@UD$sMQrA@lr4|YlvL*SnFFa)}SMn6bkFuy%vA+1JEnhf%;^#qbMgB!0R zF-4Mmknb^!ePA75Ds_}@C#~IeicZ7wZ-PzB(p{`hnmec+&!~RST>=jQktxAs2enm@f~&C+by5noD`WCvpyfV86M_MAsI!s4 zAPEZsJe%jf2JV?Gi5g$1*}1m=bfTC774Gnd!Dr2p+I9)+J?oTDSrqTD(jJS&T-Oj| z`4@-a?W;4orcsF8pExlQBmX(keZ0#D z*-==PZ;3&ZFl#U}ka->6X8jg0|e!H?>$5w)@w-;8EF_%GR zxMTAl$b=~U)AoD5`^b~_@5Bp{|EV|y@}CC$2@?=!J*y4s5G365HCUorGfv?_Q{X|R zb)CXm!p^1VLSp3IL!4vAq4Mei^bCs;1ZrMD&W`D$Qs_WNn zy62lq$r9fg@hC(L-@!ZlOM`tryK0?eQxu~BVydpMq31pENxz_TV1k61-GQIkB+<#X zU*9j5Efns@Eun`E&Qwk?Q%3AxvV%mroGe_`HpN_{W7pBFpi z62`g5+0MH1iu(=oYd}QQIwD4yMbqorJQ`#I?b4Zs-E%aA8XNL zcu57yf!*XNk~>zg8`16tz38Z%2-7ZZKUxG1EtM?I;d0#DE@m+25}ub}FW)iQfb?ZN zBc|Y889tJW$orMz>x%RkiPyuxMIL&eowH+O8vm>lp~o9rM`;_M_n2k#u9MA^7#=Hx zS(r({8j~7Dm2k}DiK?{R_r6Z3p##g&A=2j&h)2y(p4|ByS&l3d(F18B;@t7M=+oRa zFt68b|I?<`OTvHN(F)o>IW7i9za#%W$K_30Tt)`NAtv1?Qppa)8!6FpYRWm^QL4H@ zhvp7#yD3QpoiwH?4=DSu8~XQ!Gei$w-=gB}#~1ePAFiFT!m=2@@_F&+3y|#&A}LT- z&w<-Tb_)rDyl#WHx{4sBS=Q)&TXO*-Z6F-DI;UJjc2xBT$RF_^NxBj!P|r2fW=b4K z*|{s1Fq#Scm2;jE+0?0n2$V?UnBA+lyCyG;-WVvaD4?fX8h)ZjbgcXBeu-w}(KSIs z&7_PATHvv+z>7V_a+<~a;z>Gd*d9q4J}MbILtGw=hc_c76;hmh>AG&3E+w4(4;ALzk*8Wg*RsXv+~-*A{^KFYUoo)U#;Ui{LQ zWvd|EkA91e^5T~FHD#Rx8SOPlW|0oM4jq4&fob14G<}ZUX?=p8ci4Pf(0+!Tr?ez~q=%lzb0^_djm z2aW8EA)=;nFwq9CHOF_jSRiY}we)?wKnurd;(gOTu02N*l8`Au)TuyIhVnWD`5ZyL z#n)O^{Gjzq)HvvyUt_}FVK{BxsH$Z|WEhnxws~4h*5ckUMpZ$fU^bPBr2N${4g5xJ z+ON0gwiCJ^-q8YL!j|hrkTnS9%V;K7YVoQt_x#Rt7I`Nz$c+N;@Y3g-qi$)}Z}fP1 zh-vgt3oOfoHnsBmyI!Kyh=-LCqG=8t#PUmnK6H{nvISw;{%hGo3YOtGuhL6 zxFyd@IKg}dG-6}Wm9sF=e%1>Sl+c;j<0Y3}(8E1pGhzI2Kwrz@7w&T#17(+}mNGmh>gn2d&py)+kwFQ=l(#ZVDO%Yoj&CCxLu2g|bq|Zy>C2hLM)W||Nv;a0m_S#^YmTi$EAHsrXoK7-F8@!DByLujmPzLHCkWa+b@EDj zGy?Z&2jn&Rv)5m&yJ}Scgb)`}I@y0({^jK_iHgH!?{8sUAAVvq&d^u(_;UW`N}H4m z{&eJ*4C=}UjA$7Ap|N#5l)BUy(H5QoJh6afnL=Zlb|$w{eO+uEpcys8aw1D()q@`m z@RH>2nswX#m6tc+Aa8lf62Zrd7tgo(g#Dj>zo4j_&?t>qQvOXn$^8(XIqp98e=b79 zt0z5mrCUaH#<%=BqihsFuPgmldOqHgz1ln!5sP8!#lo|th7f(G8%w%!-rUiQG>e|{ z!$z407v_%q!h5WIxnC!HzfoG%<=V1uGP{)~vg$CEzXQJ|`%d-N%yrpg0l#jvp6D-C z2}ECV^t&=wh=P{n5j4pI%PMpZvJXFyPC?l#qXPKVk?|?>u1nQ(pL=G2 z^*S2oH&lEY)xa~-Ngo9hjjU@m#-)u)Ad-XmR#`RImB`f_4Uc@z4s61#b$It2Vi@f5`qe7az=3EwIXbABLZ zb8l_qq+10h(R9YlNlTqG=US}V`YlMyQ3c|3YMk$1)p^EwMnBi9jJr0w+ESpd>`{@)w}Hc1iw=hytP_M8z5&)WxbEb8CUU|RFb zdtJlR!0H66A`cN0kYav_=YHo6n;?>XIELx#s;SLvOuynujqr5WkLp}}mQ|4J$FBDm z_q%NWb^nJG@R#}w%18AilA={_Ki!zQt#*U^CE{zJVy7)`d~FoP8o4PT5XUuDOwQ-; zlImEX-Y9$ecp&+Cu`d07U07HyK}pQnO#_1E3vC)7Lq{xcg;2Y41@&HVGt~Z?=q%e@ zs~Ju&kJ~7oEy>HX($S$L)WB9f9v$I*Ht(gx_ZeXOrRsGGZ`E0HPnZTJWx(m6XS0Di zNe-4yC9venF?SVfP`UdUcVz|Tyz1k1YEG%UX93SDp84>j z#Y{gSzgrFWe-ZMeVa(^}!!pufE&0!-Xg<7?;C*%rf?`U7-$LDPusTjX;zuE_{O4$a#O}QrXFVZVRk=fNK?Uy>#?1N zX#6$x=gge&ZDemWayM|w=UO~+qI0Xlz#ew4)i;<5=f(v;s#M=^O_Of*XL1hG%emL{ zKRFrvQPIjtxjAF-Z&4^L5NORC?)Ll?e*3ldyCohfvKTKaAd~p`eJbM=DMp zK`1}HO+lTyK1$8#7*MTtYM)q?ut49nN0~jX?DFN7bP4#EH#6_049ir_0guk(9YRN+ zL_MNe=Kp5BB|&#eh0fgaiYCa_dpj?2y5&|z$F0w;u0(#fRW4Ni<#$Wo3sui!t#TEe}s#2052omo=w*TC47c@$W0!?&>Hu5q41SoDYvW zpSFS;b_mRP^N@x49h z`vZ{#wkH#ab@kVlH37|5MK7~)D#X`J8tI&-H&M?%j&Uv>&hW;=UALaV${DUGOcz#DyjWn%M_jj4wP?bxm%^x=kb)pKy;& z`DTCASDaIw0C*G1aU91o8dM)2+hgL(TZ+}hifS40dv|hN&g7NOI@(l!gG-`u{{YVWmU0GB7=S&MeZeGj-2!H3*S9^Uhp@Jqx zM*~TY!h)VZ$I%R(&edD)k4g^p1UK9nx9!VNo$BLiN4B@TyxFSqC4}%*;|sSJbCiO) zR6s;-g+{USqY$oyZ-uPcr}!jGT904@x^m@NSEyDx#33gLaA3qrcVXNx{L$xL7vaOk z7xMZSZI$qUl{rJ9$Q?)47i@PJtH>NJ68B)?rZ!bv6|cm9`I0TRNhV?vZ7&~2>PY_0 z+>*Cm;`Wy!!V~jJx_1Lw$q%T*i7up;CUt&y?F)+ZG8SJOwaI#!FZdk8Km?#A_}HZl z{a7ifr0a}-WkB5`%0u9TE!~jE)Cw)f(wv+yeanMabx|wX%nDw*z#n$W z4-V}j`)ET&Y`C4!IcZ&WB{6A|_nj5RHSvzu-(e1baTgLAvq;;LqYHNEt~LGV%e|TA z?9i2-*wPXhnBD^1Y4Q?pQW5JD04Y@Lo|^cK@-E04O`R%p@l^Tzludu_(fO9L9_Z{vMy z`Wo9x*Vpu~WuL`N8uLWrn0nACbi>`2Z$Ec}fardhC%gn%jlcf?_sCCMPIM^8)ZL=b zm2Z1oo{cG5E%hZlxMi=FAXr>E$=2k^sm1?YDNQ93g z`#0aOPV6a_@r=RtQabj2t5)+f)>7JEC;VeWsD3bX`!Bi2OYTfN$^EhRwpEz~xTvr2h8rf&w_aM5rRD<8nTE$N;{HD4OiF07#vzkINT7vInL8xx&&$}FnT{b4#OZzNM4>q>GIR_AS zD)9MSHmf?W(0}?4a$Rp~yaXm;Lv?qV?{U=8hnO{F!k!|>v{d%Vz56v*gaO{7Uzo~h zUdzb~y_shWzui2kVp*bT7MrZ`Lh!&;l*4gDG@JC@it_+A?Q3r-D+N~%>KM6{Kpt>% zezmzNz<;?E^3`waKJRVK?=p+E?I4SZ2m?m*#rlHU1{{k6AIiw@EF-9niM)~FYn%J& zuF0TGyvYrPP7Vq=XB&C_?yj}f+Px7|uUHy4HkRkux4f5;yXo+=sro>_Je+j*K6eUg z?|ip$$rv(Pwl2$Q9eeoz`fDc5Q0Yg7%rB)0us@uJ`seLJM1-fY2(FIN@bQRXa1C)qb&1?#%Jm+f|0*VM2FB z0+}qxdJD5>Kb{*J_c#^!HjL_Qw$V@|>})KuTfIojTFO(5aCo2&uDwcc_faEm8fXxA zPlweR_u!UK(d&TVSdv)b&(jFzVxYT;55ti0+l68Q4b7F_`9eQ8lc4%h@;f+*lOt083U3qEBpg`f> zZ>sLRx@5`*S#qYenC~N$`arO|y-3Oc={S)3nV&e1;KrM*xQ7F4@&A^e*t-Pe<5;+L zIByzAJ|l5zwopuqQ?cu=(#yeYj9>LR_t48#ia9S|t#JtO3hA6cs`W` zk#~E&xp@{u64oS=|4Oe}m|_)Zt3>2+b}1^4AbWS2P&bQ9-q&F+F@j4HRlAP7{kZ=| z$&Kq?n5~3`=3O3d)Acd@g?p=>G0QdgH`mK_50uM^Cm~0@mI&~bAz>BJE@FWI>i(8O zS@#)Hq}v@%m5T{HY3|aZR}!wImR#fB8a*^30mnW3qEag{4VC69G;+KHGF-jDAXY4O zXQyaZ(>d~xWu>&XmX_uTnh5#9cm0PsxQ;23-|^&;cF)An`O51KvqE^PWJ19XctbHm?XgZnpo+$ZS>JG z!xlgjszG0-u1W3)h!i@w#_Q=Nzus_@?@UG#*v=cmJc)G1-x_YhL5+ydiLTgw)W0*u zJ0;g5!hs14VO)}>I_gcaN$SSm*pyHQ4xa?2$VsB7Zq6SxTDWlR8IxjH z>n5mR#1Qq&)qDKr1#`0jnAXG4DwNI(v>N%gjvBc(6mmegAJ{Tg#BD%CRN%O~WC8zj zz@D5v@YG1wzNLs!zP`sxgWLcrbFEOI(6?TlbPqf7Yj)5|3OT`!)6R9lU8w z#|d3-;T3;K^bnN&UF;qgj!4-;)k971@Wv;_UR|NyDB?QqtJbtpp4^R^tK^29YQ%BZ z`v!Bwzak>bk49&|9!em>$Uo)9=OlkF;YJUy zKJ{)u)#_AE#s-m-j}hb(-`ojPud+s$oq+?H)u{_x2eD%V7_*lo0N<7%_Y0WOAi z85fjesSLaRBw>qgJ7Gm*(vx8sWfqng)MO8+fhQdpzz*U&SF?gr#_(Uju+uFs8#}qlS`J$-e0*V!0bl(>O5KvAitxnB9hb` zF=s>r*5f?;#DhC(bL0zsFD_xR`KmcjI1%7FP-4#%O9Bl!z*Eri@Ysno5G10>;`Hbl zUjW~8o z_>t#Fyn9L$&E9WuX`6iBfM$QOkRUXw8KaNjSbC`zO=&x})jYdVa6KxJb=lnb`z0|& zm>(aOf0G}9*=~LbfGtTxfk9@t?GIcy^?ZYd&fJAY7N)=t53JW^!E2EUUzn?A)vm${#fZ)<*Y9zXi-4UC(ZY7_=5v zp8vWprb*z(LCOjQ85zC*yq7n&&FYzw3A=X)DoFa<)w}z7{Z?UJEzHniqp$Y^h)=+` z-&{m=`}LFTMBiw}@pQ(tX3n_EmGmsGCa`RL2=sCl`GIGWd8 zWC4s?L}x`<;@Bxj!#{I%b9}?`E`TLD*m}&?G)_68iV`fmKE`*{X#D*|ZPF5q{PW(b zYq$C{9QYqh&gvoF+cP7-jO~YWmWMIP#nrO6xX&PDgAU85TF5`l-IqxSpiT_12cM|^ z8r(VfQJDndtTg{|xYR$!cM#MB6Iy~(bnS7Cw zQ6)9A%v(|Z=#jExi)Uz+Nm%CG`YhGpHM#fUUWWrvF#x9fGQKE&l|VD1zh4YM@g(6u zh4sT@$D6l&x}My7GBobhsH@X?6J|VkSvL3k0bL#`Kk3fZ=Yd(i-d!gF_2Cbd1X&{8 z?IX=vPDoHHRuVp$r(b)lAQ%ms?I!QWR6uGP{zw)cTxF=Fl`y#`JKRLY<2K>U8xjHX z%K=An{aFH#9W$cmk6g=4^qLVCJnb-#4@I_TlmAaLUyT-1RGP&WGjPrhBSO$r{ z0P5$xb>*3><$PtH`bCSTdfjON6jjh#S;7?m#R;c@k~`vchtjt7bEpwIFeMx#&}W13 z1^^=?Bh6XdQeaOysI4IdRI_rBZ}2&gdckYp@_ipnM--Lq7Z&LjGsUayU=wtf#C6MN za%xHdzwkBC-b3&OO6wU^nU+`j+-+9g`e*T({xksnE$ z>}Wo=285CnGQT963O(fSxTbizGE$5+@lM^XF5N&nDk#)D6jmw|?PtvZV(tgLc-ku* z60BtA4U8HNo&@6(oA$ zPMU`kjn<}{8%MLMgn~&PG@i|UZ}NxN?!&N{xr`|5;3Otb8A^S=3p@n+EwZw*L+w%Y z2lT+D=#AjTK3rd4-`kL?7+Z$5CbTE~kf>XLtb3_lgukz(ZW=`0%ny$L7?f$48Gt|t z=vL*>!Pf61?Co98LVUMpC#HSNSZ>1^m#!0AI++u#ut)2jf_z>vY=DgrdeCmg3^E$7 zfh&Y`fH)8S*l+*=A&``YODXi{!=tdsei%;+?X$SXx!PqJq|w?5vUY_GIllc=$85h! zK5%M(c2maTjqPDa6N-RQ?7IyT&Qr%~wrjxyV10OW{-7$R#B=K4Rp;{fbNTUs?`)84 zxpMyAtf|+lEAzM!LEC5+`Z;5lXMS^5reXY$mo9+tXLA|a!V^DUvy`E)4t$+ZL zO+0Q^W}sDwWXZNWd*ae1u{d2?hW>BiM?pf)pTIa(qty* zxY^P4N!?IDSol>g0yq77_Siqq@5rUdJrCeUU_cF{@3HTS!_KE2F$nfu(3&5W=340K zyTu16wt_x_wYpcW(vLE3SNfZ#^3<8F(1=y*;F&!K5+s=ySTjbCoGVI+7|ZdCjLF%V zW92LO;T3Z!onBRiePy#7@p03`qe3->EB=@;O1Xm(WmOOZ?9JY-1xFtR^MNj(IPBzjjed*b&irlR56)Hp+S9r%6YrWLQ43W!CU8w!Y<~A0XY~EPW?Qo|k9~Ju@HzXu z{c}yMysUtRsi~aD7hVA?9Ag8p)$9~# znp(UwIaXawiofzqCTP*vP81Z+8HN=Puvl#dGY^Hm6Qb){0YEZ)Y`)z@SY{BSl49Bq6ePQ>4 zC&7&QUBacc(2E6-Ew=F*(+xpv3#wJR=u>o)ZuL;PU3+5n0|Uc5wN6QoZS>`M&$uDXH>?qJ8pDlZ5-*ykTweu;$)ti z0bef}2SQRIoE59P@&lw5u+$WJ1-)z5GoJ*Cx}xZYrvD_q*L&m%wY z){#!Otb^jSB-oKMbk}L+A)aydsGj*?KItNzoEqu+fvg+8F4yB(*9?;UfV@3POEI~@ zC`RS;eFZj~Kt7eli{7^2CiSd+<3X#S_=c5ICNuZkx!^$1C0EtP#i^aMg(M?!1pF-H z{ZoBpy@Nsa?T({B#a)Hgz#H3WM?`_nne!HgZio2Ev|eR%MnED_^|X;IyZwFF=}mmi z3x3(E(I()x_6j{@`-4u#PaYSL=h7SAjX>LW|MbkdNkzDKwr@N8`6%LTd}p;baMBZ~ zc)0xh%We=XsEC)t|G+bRJB0abc0-3_W|W>MWI~TM2lQm&%vp0+>`!csuh4& z$SKz@Edtv9ap~g12+u%P_)>+UGVp^fOLpB>&^=wkr~NU+wFr)^se{?GGXJTZG!FrI zVm7P#Rwh%I;kgPxju4IHP~H)bw3=J6oI_d?e_m49?5yYp_`~~~odby02JKPRp7xgY z*8O#omq~EE^BmB+gOH`pxDyvlc@X8k%yMp^nHgfD+r3J~gUc21jj=$uwcA!TM+}=* z2|n7M>^Slk8ZS(%1;sP-cbcX+81+qZPA>+cSf{&fI|BV%kTR!H0d|6*R7@wj+j-?^ zzxk;V{7k_X0mbaG<+o;6PAe1#L4O&gCr7`3LWD=U_?!5J!Mpof?%^L%kH+Cq7|$N3 z@?xalYR2x;?lBK5O~yWh1hO^lL2>rb>tYAy>r-Gl}D@OvyDD$!TF(hmHFTDkm=J$Q7d)f;HB~o;oku&^~Wl{M;4Gr>pEW z2*6L_DG+wgGlWC$x99TpA&9Jl`df-?q+aS=tw9|!YNGOlJspMw^^o;q@iunv#lR6k zqJd=P{q@QZoQOfIr!fs;IoP9}=@)xMCK>$^q?oKc7>YunQX0^ z-nL_}h#leCxi(>BQjEHC7L75e{Xh?oxJyh?1#`8&!v0{SxA{Yi-3o|CDFev(#dDz0k`a(z@q`f+XEInTg~m}^xI zvaM{HA?>|tWYi)A_RgNN_sX6IU4q34`uHFmwPmCee0H;(Kt&u+dWRA1?n@j;?|p65 z6B?v-vz&I=SLX88C{^jWurn8ZE7s=y$)YFli!Do5_dFOy`x#drR1993#nIN~NIKp%{b;RhTKQN<%oi+A zOLJ)RJ}15@()}7!laL-S!d?TK?$<=2Cm7=g6)lq=6lyjjPTsE!o!Ntf+o3g!uhB+@ zn>EJz^$)%k->qgKz#coJjrR5Oy0e?Bds+=KQZ;dSB<~gBA{aOyA7K97VEggV_K;5> z=HH{qrcQDtZueU7y`E*IdV7+lB9Nuc)NhvRhI6~b|M=>RsU z^fBjjcdj>c*DmWhWXCQ`oQng_yUu=gO5DB_h%zuK-sXLIF>If7MBQp75kQ*&Q3~NB zhzDVhC4F~iyv8kj3oi;iC@6QHj^%usV5un|T0&z6mvka?LH>TscWzyB7ipwu^FJNjr5B*-G_}IOq6`3Z(Le zu2$bZM!#=?znsgtKgwxzezi2^xa_{Lzfl=b2}^brFON4rT;KyxZS`y||6ijQ&%@je zpa(!&J<`*w!S^(i^nIt$vptzlGl8<+>ZYD>8RJa*H~qn@j*s@UwpG_9akP2IBk60| z{Uj_GVc&YF+Vzi?K@DcGc2bX7_LFAc>t}OeGY9ssa=XZ$^IT%jN(o+t)Mqryya-Yc zz*?d16-ez5lPbs%W~7o{p?X04VM*cHGVOW%d=T)P5YfsC`!4N3{M{NMkb1@^mAxj! z(I=dE0!P@X1|VricHgEA$=BBYjedAU&~SJ$pRribu(&`DftSp!%JO&PuXGj#L)Sr_ z^qS#mrvgO))0QCr&F$@LoA-&aOMb{`=amMc6(*Zl_w!>8{?oVvq5j4@!1ju6#kZE3 z+D&hr!8x{ON$W!KW+5Us#*peE`j4J#A%&oGz6eKDD@f1z{+<4j{yB#m9=5w{p*Lvp ztosb)1F&pAW1{+#C&4yJ=q~MfO_BBBP@P7>lJ;vHq=HSUT4`;5gy&AqZG!roIl1~J z<9fIQ8>hzzC|fjAkJb!=&OYx_dcG5*RgtHm-hPJVKfSWKg66qynFd zMfh_ydqmDg7R0^zmLpL{N#b?v2->}PBVb>C`xD#3}3 zZO73k=ckYxuNWdb0;QcNl8W$0<#fieW?W+TzW2jqn3}1_AHG^!uq)r(Ummp0WHoaF z;zh)$-11)o15cLf4Bp~A&XF8sFC7@CZ3FVeOK1^xqOBAtbviCZSl!!J53tPY@my`v z*`l#Qw>zp#x&U!y8)72SqAuD<@iLWQcVA&MIc!gSeb(1( z1$%5B0;Pyg%~|rJjfI3_UsAG0cZAu7;L=ze_LIIj>RF0#AE`Gp4KL%*$`TBI>jK=g zHA7v5GTF-XF_{6eOBa+>atmWEXpCg2*pIOUyAldN^-%fEjvBw@;G~=$pX6Ybj|y7XxY#^TVO5Is zm+xG8hFO9^L=;oWqTVsaT!0x8tyFZoceL#L+3mG@T&nWMXWt3$HSZD9&Rh>i+i^9Cw{ZyQ6OS%=GEYFzSL|lR zl{nx%Mh4tCT8tXzogwk4t(l2PjjFhHPl~YM7}=HaUm{CF-nQRU6vODDXq8X*Cp!Ah z)%h5@flBqln@P4p5O#$7j0f8*;1w9n4*snj&Y*U?)FaTJ4epohkQgqM!)Q)vv3`1Xe zMH=ZCU=xsAW>$O25Z8`fmpJM;?zT;V#rRZ|i4)Kq+JZ+QMr;yOscR-RaXw<@R}4hx z2$T7bU_z%tR>^0KPveTDSRF6XA-8!LX@Rh)z>)ODf z9xk})ZdU>A{h0T;O ztOF;!$5wTg>9$OthHMhN2ie);fu}8G>EdBGqJsqd6ZvTIfauna0|NdeH-NBJ+DIi| zU@Pwg9{Mv=KOczG%%PulxA{GV$l}dKqa%Z{s9@S<5uzQWC5OPKN{$%2e!ar8V=;bx zAePs`>N2qVMzU?ZQb>{pTM`C_Ua#C1nL6}UT#-q&6`4+T&d>3%3VQHEPUgEVB>--I zg0@x){6TQ>T%i=vCm!qxOZklQgIME9$yXUr(6R$G%@}QWfs+Uhx@A{dCdO(Z4xCWZ zDOeTApg1!eLLw9})zqK}OfCOe{9faO^Aw){C^L z&$bkPpx%J?K?UCX8vs*5LdFelo8b~VHqy%sCw^M4`k3XKUWafkPub{;>ENjZ-Hzpn&8IHw- z1||7H6uV0T@j||W{nY=-@*0i#k)eO)@rki4%VhqRR9M-}uEbAJS=Un{ z%mrPX{u5^7<*j`tr}#?4ol0nV&*uF6H#>*nMoK zz`~A>&0D$=NDf$}(YDZZ2YSM&rF#e2%%&YwF8|m>`ZP-J4Bxtf77%M2=synjkF~MK z@@^&vr%X5f)E8k-@bSLUM^FDEq(BzSTyZ8#;z8Sil{NACIe64PVtBq~m06W zNB*b&2~ND>x{E*EA^jA@%&QLWd9RF;%AKe0uK{hTEmJt7vT!_=Se=aF=NgY0jakJ zCz4k{T^l{j?9M(x{2+ICh2Vj;N7zYt&4l4);G!qoGuHW+pL8;5PU3nZmr@Peo)fxm_3M&*W7w}osYL@H>eFaD%Pl#TF2vy$fsK^D3&FhcUD zvEzR{L3VF03=aRMy4Px&0L}#}fiaV6KUwtBOo`CCPW4dzFAQV5L`ZZ2X$vkB08o(w z1(bh$tRsxK`$tmy=l?33uNdA*-PgNAdvAvwlq0 z$r`Fuw%n$q;V;}7_I^U|XYW+TxhtW80|bBl?r)?GxDjRp9O|@flzy(1-(KSpnwPX) zQsHo}1n*I>chM8ZxnVnhO2a>UDnIn%WjC&G;ly$mzy4SXVV5t7UeKqvlE3{|$^31p zkK%{%{@VmTrumP=r5oclLzGB%-k)Ld_wW9j;Q!XV&NVz|+Zp=@{=(Vc8c>qLTW3$i zYyPeI%Xszguoz>%{ujplM(w{SmEW7EC)WT-B0D6!{vz7H4Od?WKfd(XA3?o8;r{;` z$c@6Uy7c2kX4&6b{H^2vHSq2-7lFP`r_aAMKhTcX3pznaimboz`?~n~ z=Ko{mFBzw#r>8d@duUC0k8s{vQ|`|Jpx^N-Hm&WQLB84t#N!=f!dw$*ru!ek)cQGa zaaYE7AdaTo~8He5CsK=EHbRbI&20$J9If zpqd^uFH7gQ|Irw6j|@%n%GTIPxm1MNi1a{dvj z+4u->Vj&5+>@WXEtbTE*6kzlD@L%$}zcX9%6CO}`t=MgO|3#yE<6XrOvSQ{x4&e{B zg~KB}psTgWcK&Ll{^67VSp=I5c!PjmSK^OU{@y#@h3WcHSP+P`EUG<`(aRa8Nnw0jle8CgS@{u{u_T; zOz`7-1&y!xHv(nx4Ej$1{u6-zG{7I!&L7tDe;VLF2>1^I{<8u8vjP6!8G&R%34q_u z0{91w`kz7gpF#MaNAUk|k3h+cm%49)bcD|MW|=}(ll9Z|8!f^*SpzATAxRp8mWxTVg0NX5?;*wRK0@xZt-W`Fy@Epk z5))|Ttkr5&#?Ez)S$wi-xJE^@AFQ+M!j-@x$ zY1x+N_Lb4MapDlqk7S{qker0h8pw9IWaAO4pqF-LcPjD58orFAp>{_O0%=`OBiLehctLH| zAlr<pS?H-&ckG{ZE2Dz~`$meN9G~ncv-O+?SY$JX! ze`q>e9)#%#4L%X-?8nsvhFV$sZ7HaTN)heT4Yv2T~Y3lh5fbyuR^Pj%P{G4lX8 z$Xhayl6b*xW4e514t~bz3OBtYBjJ8W`)Et!mDf$CLaF{J34Xm`25A1iyAVAu?MVD{ zr6!&(Ow2jzb|0gpmyG*d8Va}1a0hbJe?I}n{4L>T>*ooPH*z;Rgy`G?J@Q#SZ*fg! zOS(SI#yaAhq#r-e*=E|0dh!QfXoF;4YY#aMq0aGT!Lt>Sk6!p-$ zVeFZa>m5+t<^H^EdUhh6#=AQJ^_A!C0{e+%u>K7&MMlkz77iJHU$AI9s&UR2ErZZ_ zEWg@fIJAV2=FfWF?|5ZpS=!t}UQ9IUMny;)vJzH6uAA{XJ8SJ#j)}U5y;FA05NGOKS96#FSH zT>w)G4n~eU4TFL(ePQn>e@)f?X{qHd;IpGFyRT7HSF%Zuzh&rZ(R&Q|=I&ElnPs=6 zh1c_1V7W>9to*PFp36pZa~A%adFtj~UkOA|a(Vgu!7FyK;>1-*^LQStC6~`D=?Ao$EskOhC_$KmlK)99P>nhvilEu_B5=+6_D) zL9r2!r!9flkQi7osT+)iEL_K>-QC5ik+*q4s3%77*~@?#qB4+kkkjej3-$3kUS<7c z1z_CgZdBp<+3wjR^=4R32K`faOpeEDm9jUo)#!sB6uZbC{=Ss%_sHDu4`FI_SLgv} zZ@&u*3%j}&5O9>(PNo$1N5RDVnCJVDrMnX;bFUFt5YtL`&zg(F?E8L3Qkd9C- z=U&3x-gEzrS10ipY&R(Qpxg_Y%z8F0HD5!@2MaoOI$%fR)xKc$NSep0k-upkEA^ha z4dqJ>!pz{OhXS%L7L~jfUhcu{UxS}QvD|ksVzM7Qys^R`HP*2Y3 zN%nPnuUEkJxnMUAk~%%z&2u!IZQRvEpp$LOAm|h~R?vC|wUZJ2B-}Bg`1O9xQ+Q%X zT5(~6|LBoTbZJ;ff5qbtexp&e8Ed)NR>W^=arGQD;DP!ckIM8sv)V(yW;@2sh>UZra}R;-;i(~y z9p7I>adh8mt0rdnd}3Od{o>WxmI&cWs%5Q=!WwUF5v*yg6P4UEz9JxYdM$dO_~G|@ z+{{x9W?Wd1a5312`fS`dX2D4Wq}bc922_XYRPD!vy<(8Ikc^u}@#L4X16}E4$O~DYn;XtES7B>0U$_>2tWX*Kp z6w*n#MBsHlr>#3~R*H2_<_-Zmoup)39vhJ}gBt-E%?>8l z>{@WuegNkp-0@esh13+mU0!aHh3?EMI2!7%vqgWZ@iYp+!d$fxnB8c3NXQ|dicAgO zka#n9g1WFW{xGl=x9Gl+g9~~%iY;&UGz&Nd&t#7Czr(PWPAO-}@sQCtDYOTIJLmzJ zl8L_uo(JyW?Gws?>IY+_b*{4&a?Ue8ZsFZRB&2(AsWy7T@P{D-?)2~HxI+&2ox?Y5 zy1cO`(?UbZweUcKxrG2iE@Fo9E&b#)mUR%g>9T^5h@|T*1p9euK^GKIxTsNzH-Hw`Mz{X zc|$-)+LB=CZHsc_1}TN>{ef_+Px*)m>}Fo&kPwGdBVv^s4A}@#M836+e)00miER~n z`enzlM-((U2(NhJe0CC-wNctyk8WTcEfRV^ni~8MSpgQ!9})Xrfo(*dO8$J>z|hvCjKec_o15bV6VRpG=lt1z zek*IPdV$2oOgCS1xrQvBH>jOW!FtQ4$^}5z_dDfxh5!-JsgMGnAUtq7dUibP9Rn~4 zI%58AAFy4+XJf+ocWx5>GSUD){a|~!AY#^jC^VQ&<3<1Z`7Y+!Vx<5zToyngUjEAA zEOAR3kKo|ZPz#*N4Up@%c7m<@5B%D{B@S)GbQ-x#Ar3@vRs6Fxk6|IxEDPEnRQC#d z#&%h?0xj$63dbNGRyzOav=re}O174%ydL*_%i$&mO>n%_mv{rg6+H(?aO=~p7BRMR zJwTGcag_W@Z+BdEZ~ksZj-=~A*q*U8{$#eY5HuKtuD6AZNhF7@EHxA~Y=b1MsA<*E6ld$7+cwE+5dVjjtu`a>A?B#KA<8|TY zMxRCgP0Qo?H+G5X2t5TS(_V~wM6e}cZe9-rI$Px$lnt0rU-+>h>(5xAM32u-N-n6% znMX7|r3qWViB6S&>Ju<}!Bg$|!f9i}kOauj6L~tJHx}C^#!@mo8+i8=jexSbX~6n8 z5-;gGK}}r0uN!P^+m`lYIOAFaS31*!CBO7(LmLGML|+@~N`0wk`Fpo*3;6mvH$N+Q zk!+(CrbMEQr9BhneiwgyS}3H&+C5#e#(Sb4>8o8^A4R9(uvqC`GwilB5RWT>5+3@TSLw z_v%~m=JfUrn&&SrhK8bSPp|gD{pw>Z-z8Ci6xF6eOsyIr5D}@+EH>a;26+ehq^nbH;r7 zo;iU#`sA^8q~O>SudrhDPc)OV0e>i^&~2JSvU4+C!luQ8o}r_x+th6R+48c%s0-@F z5P7hBx>SjeTSLnrdq~*>mu-%{g2(sBQ2m*b4Ueb$%4em}(|-p;{8q0$e0rOrwS*(W zV15zgaz_t0-@B1AI=!`d_-weSfU|j_0JTk`11-h88gamkSrBErH0uGLrT~}*9$feb z$@nTfKeoPbNr4m-x8{A-nL@P%TdSZ*(6JJ-A{aaW0Rhf_tX2A z%c&4m*oZCJ(6O?}#v8@9S9&374O_Jomk9=NSy&OU{jbdMr=R?^i0kDMrtsfd4(ehaHv|rn(7;^5X zvpF{_v8+h7MjWmUK;a;MB2+Mx>P3U?n6TT4u-Q=l z^#-wEQ4yLZ+wp;MVh2|zO=tjW#tT`RS|D)=0u5w~u>I;C?nh|7c|0~U)KA1jzi)V{ zTI(9&hkpo;bGfe9CYodCEO(lhU3o_OKHblOemci9D9E9Wt^CF+YVB3v1BJ zo=cIo&ju2Q@bDB_ZHf@kj2ArEfa;W;9{p3Q-))`{)4%3EkJ)?(yzoO;XW`0O)%Hly zyQg&~wnNmG;KgQNwlBhXe7eIJvOR{HIMda14H^1B?R{5RlUvs<*svkGQ4wkOs0gU^ zk_2@lA|)y+N>vb$E;Y0yVwb8L5d=a|N(6+6ln_b+N|9aygc1lngcd>qfz%Vf@_+mL zH|N}(+kMMRp7&jA%{Av3W6m{Kr3UmW_swPLnmKBk{!t|Mfnz8G?cKaXQmNl#qnV=i zB6!!z#IXwqDSOWY_rymV$KAn)&t~pGpa08BiDvKVZ;xh~=}8CkZb0z;oOHsCdHqVM ztd8SWUS@H@>=>F8_^utPQV``5kSPqA+(!EdFgJLI_Wc>B;9b;t{*t%=(pLIL`y-fFhm5f|EK}_GXxjbmWM8>Z2Ja7f5o!#uM$SF2F_mXey@QAes zxhYBO)uw8sT+m9`nuN7s@XTsN{0@GQ=h5{(JW#Yvy3Nt|k8UTIyBLSI8GD=i@Me~} zaaAjJG+2Yuj!lS(HDk0$2JC>6_Ap>)FL1K@v4n5Fg9QRD`r!U33FZI($bW(@dD~w* zdv^Yzgvp3+J)79V*V5S!$=sR4ZFMk@M^!pn@X$4ob{rar+ z`_H?1dNi%=d;Tx1_GdpA@$}@OW6<4&3Ns_yzYKRHW!QGf!|zaA`qI!_4|>WD4*xOC zoy+K&?!Erh%kNIN&3T`Z%!aPqZI1^aVzp12(W>&$J36}C*4f^zM?}RaXRMlZX7{i9 z!4Hm@(1n&F8MEL5yYRt6AFFA{)Xs8vkyQ(0jWr^@#eUOTspcRT*khCDiTT2-9*=Fw zNjNPTe&Wv``_I{aboQ6sXO}uDoR3Jc@_|6wOdc!Q>93xO5OD4nb$xf6f9csG!K_A4 zRxl;3H{NR~0MfD(_y94HE_`&T3Rf}pMk$zFz3oM^Lf^W6?#-|2_1Y{y^&Ot{1rs%X zOBbsjMFD;$KJ=1JNMk&9dzw2qm(XT&{?Q`=S|otlKyRY1(w1zn-4Aq_(~Ms6&!-*$ z{%RQ!qx;^79k7Q~X_kqK*RBdzTPtpu?a)YCiY`KxeJTgFQdf7H3mD z0Ah|_&xtZInEsc@^(^2@6P1xir5?yiPQ%A+J_E}PbqdAa&7Q<13S1W_3_a( zUCxcjx;Jsq2m z9O79?ArtI5i~Y3w><=2OT{E7A`t1*xQ<$L-h9NZ*8j!>p5a3-etR^#5IL_vc|9P!zpx)VJFdxuJPsxDYexkf!ZV zp+05YcLS|hA=DRd8op#+tZrzVxza8=I&7Tnp`?if zuK?KvHk4Z5TAAmH^o`7U{XDh3^7~N!Z7dCE+gZF8Xg$At_PpptN5^wX7q*k}D`^0+ zPmK;h)(B|xqq=YTr>3x&TU*r4ujQ}Al+&Z@#)(HEA8h@De`yMcs$ip5y##%dcYgw2 zqk2R0xSlm}M?1KTg!79A{kd@QU-V1ohR9N5-zg8JQ*q7>X#r4IHog-$K1Y*SKK0n3 z!rU5HxKg=1s|THzql_-y4~6HBI-ml(AETLg)7x3gHXeX0oS>yb)E5i=pdR@4ku0ec zki8A*PvYUs28@^+VY%V*FAI)uHq(1PnYl+6)R(<+L&SZwfgIdnVNEDAG*`B z&1qMN%sd!tQJ|?n>HGu4A9LDbR%{zaEj3^Z2mJ0lg*z05SaF)fM1U|*(D6Kq7`+8) zpX0>(%zCGeo}#_o0vkBJ4)A-Z6Y&G;$9$2YIPlo|a!*|vEc@cebRiF)Z-u~b;g zGuYGc?i|amyT)-4f=ziKrSvWDtdrwBVGCCN*(O8dFjKwJ=|c7>TL=SZ?FPTS9)3dDo zgye6<6)PJhe>}Qrx6V8tfJe-9;zq&m6<;1Ydx8>Sn=cQWp^)3N&Uj~N-wK>$9^;#ajj#Q1@b_Z>3N-stXrVIBD%X-fKtu z9yb(fNUd_Wgof6MI5SF+=d|RL!SPv(XfSVqgtwRqmyk6W^=lq;66N$~BD{fKN}@tM z)XGCyZk9{&V#F>I^Wx8c9(DRJ${yh&I@$5CLs?5p;zeGBiin|_6MsDamo(D}rL&;2WgP!OlMk-PATj=>0VW7Qi8>VW0=dq1HISaVsF zVnEFk4WCO;&KTB5lnU@PvJQb-A%1+usXP(rSFkgEod&x4c!Pa-CnzJ=v-siVuuw{o zOcqz_EFEsOF#8-;sWSA9ljio}G*`BXilX#=81`>$I#TVBHxwoGyzTBImmr{}KozumHNqPH*e=hz;`if*MsKxC&(xaH>j;|$(*@*nfdxeay zXTDx;W2>ER<5S2SeYJXSs(&_G6e!>aQ&4+9-*Oxs7HPp*w5CC9Pp(!bOo`i=9DrJL zB1$i4m$+2?lKJ*eR4k0=L|nNjKetrr@0y7PIm6SK!Zh?gRh*wwXphYMEb(4-P~W9M zgLOc_Q&9oK0gaxTyaVTc)~S0)bdSe!pMDV23F=Ks7TY+F=~-RjZ89`-wrq2CxXb?J zs+gcx5rj6y4BFyC?tlo>ybqd4FuS?L%?PhAG;HGKR9QCeg-uiljN6k__4c=z0Y(3w zPokt1aEEd??h;tVs{OJ5Twq7vxv;LrC_pv|6nZdzApkMMoqOGnc{IZ(-G z@V8#;fXGL0HoH@P3x6Xq{-|n0p`nK{zL{`a_rCZ19G?a(+U`B(W7cLY4nJ~u1dJYmI`X<43pON zB?0Sooq%`*$xJ(RkLnPVxmB=osB@{xZSi@O254} zh9PAGc!TCgf8)iC*Du3{jeS(orao)N_Cc4P_|hscx`n~+A4^soA|lFjaR^)Z!7<4= zRElcI{A>1h0b+6~kf!-WsL5XkHb2}Iv1ezYri9_q*d<>yME21g1ou^cPDcI3nvFqc zpKT`sinAm{JzEVY9fXee(=IxvTl493pTi^HT+BjPjWP=H_J2?#m12K;9T`{k$Ttm& z7uE!ckQSyHn(s5@d(X0SLQX)Wfc$PB1cqHb2%Q--m~1aAUM?Rb#txD)mwH94C{|^P z0PbLl8rG$)Rnur=R;V|4L8Nq7e0$P+y`{RoBADyJp5Elkf#fiSCwJ!9S*W|og3(!M zwu0^z@E^`UdWY)1e@6-Kg4p6$dBXx4Z3mI<_ek&y+ZfJ&oR9TbTIHIXB;rSFS%182 zwKykv(|HZ!Kt>L)_Drt5e%F-0UOawi5drJO^!DC9jM-B5Vh7V;8XP?I+O0*5S<-M# z$mc2(CE#VDwZ^bcb(w5egL|CxSf#>dw%|;*fHv6A#tbLf3vkYE?A=R} zdyawmpM7bp%FjLw{6pJ=4wI=j1UAEZaL>`cq6~encK?{$2p`>a} zF?uZ>6`lZw5bpL-_pT`a_t*W+*}b(4^$#Q#Y+?J;t+|StV^Xpzv^yOw&B3NXY?v z$}WHr8PGhVz@JwwRnc|v3+?(LlLY|!T~F5bu(dA>3W&9&-t#AiDhSn1IJ7G*sSGj* zdke?j^Nfe_uGE5n=KNWrF~QfAGsa#zlK*t;4Yjn+H2aVmGAmO)yx_K|c_KC(7Q&hF z>9xu`|9M_o&$=tjA;>*+NjfpJw=>_3+jT1^EO7pLG<}$i#0x|j_k(E##ii;1gQc8? z4d3G%O0rFymXr~(R%hzN2d+Cw@a6ioN9M{3ode2OBLit@ZEuqd{eh)(p*NuHwBnX^@Y|HMGd&WaS!ETRwqB;Z(2H+s*-YBDlsWxA zzq&3JTG5)f5G7K3%~Q^w@R}dEMII&S0}OH#dgXsd=?0qVG5Su?BG@SjC(I8ZrN!ll z+GU7z`1QZ~Piu#1TFsB_4m<&>y4NN&Jxd3h(h1#27M%l3a6K*76A z&>q0KacI_%K_!J5&LYjr$G<20z?07x0*7$!9vrf8_zygPe30nXtWPW~((8&Fe$<6` zDrkh(B4*igk@|S2Ho?}B2I=37?rDR!?Pk)j?WnYY6V$rb{$HW&_XXX79=l3?WCywp z_ZSN5eMnhQSeTKWzd*<`2V@zkhobr(He2$ebwh*P-IS0)2vwpCUVQzld0;=@}!mpDn2Ae5=kw?L#s`QAIQV;e*}J2e+NBh}#h zDXwgoP?@6+I|}ylZM-D`Y9&63F$Mpbzy1s2z7QP}x~HT0vXA7UsIOgj1b_7Ik=@}_ zHW>3kiNZ3EGl#ep&{W$%d)`I`*XE=Zjg@Dc-MVWF-T2uGv`Z)gNJ8jik)phCEY8iQ zfG}Nb&1{5PaK)kKdqK2DQA zNx`3iV2g5B0`xoG3=|lmBvN*}z|qUPDo3C{K;X_Cr-7nQWQx$EB{%g{o%Bw-kOJXQ zil`%t>^yYC)79UimP?~$?N~%25;gK_lc6f(cOzH0wWAHhbVhL~?L^y$R2Q`cyTs8% zuuZZmzh8m2l%gdn;0sDvdvZbEYx-8K{n>L>BQ!u}zj}Q(g4dzcWtUefSrva;<;b2# zZNAc7A*Ls?C8$=%;9L9wh=hd|uUI!Y`~wPJHqjJAGbVYf%CqNL5r0L})%Q<|l-&dN z-IoorUV`pU|!BI;BVwkmLXQA;=8`n6x@iVc1BB|dOwxD zJzIvb*zkMx>V*b~8F~m|pIrLDyD)gM&42=Lsc?|p7WeF@W{BP=%5dp%zAB;MPBOJv z>36?Od7Bb8vpp?-n9-!(RTy<5OASWtW#J)q@wYJw0~!}Q*?k7i*U5HDleuyvDfeXL z9plkfL|ABOtuB*@UFtUQ;l@$WnzJufHvR5fttSX>$`CQKDN-0HB(Qucd)YbdQ*2tU z_6IGzCer_+#g+-HmQk<@1fr<|&i{>gYuPGjvV!ZR_vOlTt@JSuE&5ffDZrskd@k|Z zU(dLWJQ9Izom7nX)6~In#qzUNbaSbb`&aqZ2)jf9zlhYEs^wyDUsmE2U}_&72(d2o zorX?=M~Y=>pGZigg`T%NXL1sng(c9jMu&o(EKbfHcySMLe74pAAZSKG{X!Y)iJ5_N z&`d0Kgc}DBv?@&ZcCM-kk2MrLZBL4aBj$&U77=uF;ZwI{#{z+n{lv0M8HKpYK`E)4 zB7_CamiaioL=WwdGBRW)+7b9t*xFDv;R@X!wMFV1P5hQev&RKUYvW^@uI$-!qMo`{ zQJT8b1XT>|+}?_f2cOliv)2yZNjDRlt4Ju#%9@;)G_b$qaXzBRBIN^UDULc-=QKzJ z!=~eC8&MSnN%h&iZUNqu_+JI0=!ZEz-fI=NeM~8Q!sMC-=L7A6Yn#a+JNl{&wK^al zu+2RNJ%Hz;41lmXq?83DxbHeG3@0QYsLnKPt0CY-b=a9Fye|Oxlr%_8PBQ@}p-n`wI;uQY{Q!%jSFs5zNc%9w1&U9 zJ|IgTJ&R~7V}X_653Ds17elEpg?C!k5N9Q18ie1&glFoI%XC5Cty5{B1F^pmS(V2m zD#qJ{3L$U-g1_2Bo2A$!mj+3yj3`3qQK8?v$s`lEemf-1(xECRIP%^}r)ZFU5_L?7 zP&3dBEXHQXAtvit{TSh?{9Gr_$B*(@LODPQtXVaMu`pNScS(xoXzF>~KYNt?H%8dB zE5~qclSsBaT($EhrN(KGs9PtM$NDVM4nehv)3ht8&_LvaO@q++8Iz$9aZ>2jO<6+a zIH!S$*nr_8ynl66Pg?NYyMRuQ_N!7lu-hC$v(;4X_XJv#T(4Bf!+1a`nh;DrNBbz1 znt~5!c&)vDt{=&iziMpUn(}6t$tfbPg}|Q6dG{v?CNr$El^jYPe?kuJoJ`u-6H~I= zp4TEx90V`E3}~KDk;wJ_-#v2vF_xnzubmJZxV(6v9JFC`8nf1k_@n(pqIX%KQz!{x zulq0}X%}DsICp`0!^}e+(YE@@%gnXtJVaA^$5!D|Z*_1BcsFgp~lLM0+8LZT|Mk>HynYIql*dyr0M9$1TetqhtmR53n!= zpw6naB6UlreMD+No%E(e{{6smH(K^#6&GHV@@+JCqC_T5SS;OTq(pGP7Ii?%J^l20 z>7i@b#{jXJY~oi;^*fV!nglAu%v#i^7$Qhf%A(i-7X!|YHB}t(^ zlck5WDYrCDn{x3q_Be=?*`heu`JP%zw;*u%Gpw3+2dlu`4@rqaNwq2;y@k&vG)_1) z+)SMH)IbdmbY?u+MjOJs)}Nvzcl;m?)z%Y{x28 z$0&8YuX57+c& zF6t)QN4Qcegfi4a0<3Bk>{^ZRxG}_n9=`m6R^!@YfwZY0k_d$2Bun9xbBg7evvS9? zH(00AC%|k$k>#;%M;`I34J6wU6Cr%CU{cOctO6RDPSaiGl_#dYPg^T}0JOCa`3@ zfKrxGwgQ1qjIjnQPcD7D6PG^F_m}=pqVkJJ$F>J=7`ak8bM#T$p3el9f1G*L5|0%Z zE?`IEXdVhvUx+T*!te&&I^qU!Ba=j6R9XF!Fmrk`x6Xl?jD}3@DSe)kw@@v7_B|_` zyinuXX5kak&+lps*`7R^S2~41Qs)A33$eq!e5g3O;y5xdrAbU__#tM`aviK zUC{XYjhrQEWdI^yE3KdeZ@|&?!8jmnoZHNq9a#6&_~kq4;TuGN^4Z6@cMDFPly=(y zc-kk|TO6hpFLTPR;Yg{&TJ?{}5kyOl@U7bL+04zJaX@!R4v#DN5va_!5IO#~h zW&!&p7L65f=}{pgL8HIbSAoIYZ4KGXw&Zww z?gC}PEhT8E;)%+i!aPs7vY<~c$Q_VdJXH1e^2P0k4L3wQJNE3i^7Os?a4V{xPu?-S zUM=<{^wj>yCx`6!?5&O4ar)JvJJ&oPA5ysZ1M>Jix-Pa@1K5TQMJd?2XUhuR_MKYO@wYD7U02LulLG=Aq9!I$;UHR3 z`$()lb0N8E-&C8!9`!WXxfS_g8?la?0ptH&$n_8Apz-vvSi0jTEJbiae*>HCP&n;<;b#3`~#4Z#_5Ro!lZYp#aj76}@61 zH!8BMo7d4`wqn_2tZZRG2uzdya-k2H@cTgpZtOt$wDz0kBYfTp=c=sNTfGo@-^Ehj z0l?+`l3_wW;TIjQeq8N@Y^x0%z}~GRxO6EBzX5^wx!t{ezf0zeHi@}@Kr=N3XW~t}F4V4~O!l$P18#QLc)b z0ld$wn{~H+sT+&NQUhiXW5t~0T|PQkbAFiTw=n;i@i(R?drn_xeUHkEY!#`r)?PF3 zhXLzZ)pOBmsBEgx9SUkz^@{R4Yx=%-msmO4d|cDRA(BeWW-BkdC%VrlA-X$sXi1}m zMguhj4mG~3QRu6wjgd>X5yTo-1wKk;6^@=$=~)G@L|1gtgu0r|BN_oHCrX8XD(Cf{ zx-A@F&Yqw)3m6E-2k!n74k{V1qk3g|8G*by-<@km>5%yek&4#!{#{<9+`;#T@LRwV zSo=@`H9?MLA6}1Vynu1*K6MAIdI*>AY(ILUeraDxs}?Vse22~IuG9eo7e~rM+?c}7 zU>3dIC%8XPK-UshFdQ(;d7%I5JoIldZt>u6yTvMB>}U3HPBZs^d8L(aW5h0)cel7t z`_@A%SBWIjHPz0nx$KhlgYnNb#6(--dwg#mD6p9!9zx`&o1$v8NvsghRUt2Le@!ZibcHNyIZU{bHT-ru1nM4 znbNjBCci1|^$5@9qfi@k4k7Icv=v&3s@GE3Moy5bJ71|1LP*jLb4!KMj`|Ym**#Tm z;DCk&qkJI=%_TEPu2Ew5m!b#EW3^LRw}%EBtUwiEdyafDgBXW%XBfU~%hFo75d0|Y zg%oX%Yj`MD=OG<_4nFo|wSLkmYU+oaJ^LyzZ1qjr^Vugx${uiAl)b`u-QLwNwznwK zyEJ`f%-1uP8PW82*G-PS*fgbb$KLZRd$8Q{l8=xH9q*c2{$A|MEAND5SiaP1wJ#EU z#!AMj!9#Dd=6XSJD7)pR3$-)YJrtI*qM%O;8@idY1?vWaHPM!Bb;b1$yEPF_BPExrF0*po7Q+X4 z1Q8Hm3?JQ6$BiW)F2K=pl1bVtt)d5&=Q74$J(Z~CJy#z8CnkT=-b{9PMMquZ5= zJbpzjnZRWNXUKSbl);qKj~Oc`r)&H4DKQrgcjor&uY*=DN;o-zt;h0%+Vus@{j5dY1%D=8g%2e^mFKSU#_#-kQ~`jG)^==k`R|-$~f;_`Q#r zt%vIHe`=Di=H*=!6FUJl`TfGp|M5&;b$4tP)1vnHWYg13=gpE!b^KtfH5;+f@>@OU z0@nhiBhBZfV-M~pm`H|DK?FyqM6DUN57@IpXSUYXfnZ5yE~bukBdV5{{i`@fcMX@G zT#JX`geQ^3gk#9!cDcUg%FA(c3Jzdr%un;DDDxB4Y_ZWqMAG$kl}L_&ZjKfZ78!dw z^ITs#hT|csMcwbLyg}jDLdV8R!5{_GL~WQls6sv=bhm+qH{4)#wKCbVu}b<|4KS`H zr()EvRW2<4{}J4lqpc52vSY9Lqot_h-h? z(r|czYmnO2i8FW0Pve(=G>l7Vn|-M`wUF+GjgAL{42FZIgU-RG{?Hly5;g;JLupsW zf!!a<3qO7|B94+zu15QSb{9?cVBHA($Erp}Bic$Dhg{H-!gJIi)R*jR!FD-I$|`*@ zYsu*40tMV=2H7)r{&QHN7B2O=w~H-ZS^JP+rZLP2e(?y`bLOV7T43k+bJx(=r@Zd~i$6`vKAKmFpXE3lPHYLWI;|ft1Gs#-0EuV-w(ob2b}`^O+Oh8RN7xEKA=dJ2JkrU?{b!h9pVRDilX9q+3_26NXP8wk?kiv`DNmIO{10+)b^G5I z44rU6FFKJkH%r=$LH|Tk{-=(o^5TXKkFB5fy{$EvNgeTC^YI58G@$-HO@RK?nl_o zJpbxAIS?Gw_DzS%4BK1Ntc_RSJhH`o_Fd2Fn%rPPDRl8Y&`Y- z#;5E|MJa6N?$5(`i4uIudgy5PXNN;b62BoYaJIJuy3*?~4Ty-@Di0sg@?Bn&sH4-< zWE;|a*_R7ALPDDyHKd5cryYZ%Z(gS6(9~+_U3~zAD>hqwiOCNwRq@TP-aq^pwVA$*t3`S&dS2H&R*cF;QxjON`)Y zXUS;)dv8&xt4*%ZI9m{{o!uIl;*GkkaiC57>Vi~9Y3u&NTkKuuPQnOS#q*;2)Qy%n zR1c%1`{{@j8ziS})wApP5=}_v=_Fp{jF=#D?{3dMMd>`SUPw9!_!=}n;7E56>(EiN z(!7}Nm2%scIr%c{n+|Z?pDM`jlzhar+!#U(rd+o%Zug#dveQdWgCtXb&kZ~sM?B$0 zrb^C`Jy(-c(jw&$`kMAvAbYx*Gw~LpOO%?%ihe0I;=G@8}q}*uQ z`>V?n@mwdA?QQ^U9v?iG^L*LtxYsvqTzssoqA|g#VJr+r6=Bj6tii2Kih)DZ2sO~y zh`8H0BJscnvRcK;>s5wYT4bH+LGOE&<`fG?jqrf&ro%Wle^nb+_;#_|+2~CJnaj<9 zRVpKzo}@}*DJSPX;cU~U4G?H2kpSs(o0?Yw`n9^GHT z?&Gwg@W@xI(=yC>(_OD|v`xYai`7dlCas=w+$O-RvE<(m>rnn)8gP~$0u)Pzj}%_ zPg%(u=aL|=nu#dhyNf`K_S_&Qc*FhLH)+1YKAche;|9w&9o<&f)2NjsqlKf3uhoVW zq(C5oi}3j}ikN5o@_=4h*m;`bB_hh(rZlQ2=Sx>K)&5M=#+a0{^sTm9w@y6d^OvNz zIOscL4&Y4NKNb1|XYm3>_&Sx3hdK;I-et-+AaTnkKcqlSUjK+U!NVndWiBkrazWCz zcZ@JIRCK9ReS~kkE7qB|?TKwJm4I05K4IGLsZ)qm&^!ApPG7eY;v1&w5%x=uqER;~ zIl{^s`1k9V#>eUXxZv-HCANYq?>nBkYb`45kZa2q_U1$|CSNu3+dK`^*2gV@!X(saHZwRG~$YQn zMBu{!O4)P^%(3Hf0b`jCyq(&Iff5B@H*y-F?E~Q9uMUJ@$EEL|&^6|P-UCotclN`U zu;HZ6PC$Z2`50PytR+g(ePybQXesuF;GpXNPHuT>3FvV{>iK*4WV{eFnCD}=g5ow{ z1iS#-&{pZz-`tB?l|z4NATK(#<6(CXCe|@kA~1pxtc>q1FqOwF9o9T}BXXFiUxaMu z^dRo!^?13qQkKV3w2Y$&)fsIZrB12l=WV*aOW8utg`_hzbScu!evJqi9|Rv%in4!L zma|ZgH!a9VtWZ~8@!8YTI3gG%u5*O8}uQ0r~MabCODnQ9h z&z*AQqX`>lP)!U^OO4HKax9g#CTHIh7IyO7tX4LZ;KuDMbw~_$S?Nk5+^f3`*7A8s z;D4PT8&jLN)ZicuoJ>+fYxus)G4YOdP4(KG`3`*G#L^`hWTDU8*ZKDhp*Q@rg}yN2 z7ZQ`>&rJo37*OKa>%AIgsiiv02M_G$&JUwkTS7GP{+3{D7%9jo?j;edd%l1>IZ?LQ z)ZmaXywMy<@cr*y@DI9YKf7TTC3aON!lbv(#!dOL@k-( z*x#427Ozw2N%jU2*W0Bfag9EzD#ef)>S7^#=WE~#uYCj@^F!I3D57Q3RJg~CqpHhJ z{dH6kt%inTUuDnu?ISpXj0EpVK5`9J2d0l~zcJM9Ic<2*29-GVspPQy@RnQ{u%8ZNQxyY7%*3gaxzJ8=7i^;(#SCi&<+G?XtDYIWur za~+8xb~6uCOq;%#pnHjj`9IOKgPE<|6*p#RU2cg{{#tK-=_`v-(2<`4&sJ|*bWz9&Ka*5j`_Jx}@JK`o2EnNPG}up=V|15Q0j)IG)e z2^1ZI6Yno~dZ}ep{YQ$H+7-zZ|5F)YGS{=S`EcT%8w+UnJP*)1`%Q4mP;3!%0?s_W zZQ?xeY3Y2jz*AOVYGyyM0vji~rqF2Dw*6IKPwzitfA?L%hqKPt3l9$+)%;ks@=1HI zT#u6|aRz5p&@j_2{*=eRqU|tZBK=chwKifkn7o*hBixT3v&mX~kT;Q{y(%F!m;60S z^)0IDCt6^I9yzY<-3Bo-OD+F=wtYp}D(hH%)SvgtzrHpCAt%zR2(33hJiN5wmsDE7 z<3t#VY7gyK4S6%|?HU1hi-Zdud@kBjSh0`4$&db|NEN2z*MDSP%RokA@06?(}X~D8B3X4H+z{K)6aZg*A5427E}aY zHQ?LgUR3@Fno|VG1JA^U^GgeZ=1qP1UY28`FeI}>1`}#TKuP^aLiiuqKy*0>Pz07j zi*0Q}BFI-(lc18X@?TvVs$5;4?~N*_9zL z`&@6*r}56*pCtmdGDlAX4LE#K!R*aC>nFZpgP2gN^2BDpe1Vj_?#a#K`shRH{$H%C zRHxMLT=yIXYk1qYm?GNm8w!Z0d)PE`jyZ>@6(rlOvU0Ff|HWK~3TJs?ud-EsOd$lM zL>fM?>&+b}7KXN#lQI+4jQ*_>{%Ks*9uSdL57<~zrkyv4z*7_-N|%;ED~jVZu2Jk2 zerZ*m<;(ls{1JBBw+K4Vl!@3wC*E%MPEn9uWm$lEOB&$}Q1h(5w}8(I?t3jve9ci_ zZ{3BeqWME4CY*2Y+7J@|4^NfuLlq@-V0*T(Od_hw6YV26N8Qd&7AQMS&1Ibv9_U)TrJl9xv09%P*+^sP#2uB z-r=!dkB^J|Rf6sQ_`h~8_-AR}q=-9A@}f`tX*&PBs0kuL^QPZjv&cXH@lW6KPI|Z4 zJEnT_|K;(`8=}qE=zQ+fy7n$={%s+8-q!x`|Mu8KG`Qo5b(!mA7k&v0e-HlemH($1 z|H&l(VHkg#{oi|jok$^aQ-3?WzrFps(dzF|_jjCMABX)7a{fkm>mt;@;qBkp{(m9Q ze}$I6iOt`vZe7xP?Qcr^H=kdhv;M8*{4HaxC&T^!YIy5MsP*3TXI^B!cU39m@X%nn Vg8n|yeKcYwMi##pT)g+>{{ZnH*D?SA literal 0 HcmV?d00001 diff --git a/client/components/AuthContainer.js b/client/components/AuthContainer.js new file mode 100644 index 0000000..282857b --- /dev/null +++ b/client/components/AuthContainer.js @@ -0,0 +1,13 @@ +// import NextAuth from "next-auth/next"; +// import GoogleProvider from "next-auth/providers/google"; +// import { configDotenv } from "dotenv"; + + +// export default NextAuth({ +// providers: [ +// GoogleProvider({ +// clientId: +// clientSecret: +// }) +// ] +// }) \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 77b3ee9..f02a476 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,8 +14,10 @@ "dotenv": "^16.3.1", "eslint": "^8.45.0", "express": "^4.18.2", + "gapi-script": "^1.2.0", "google-auth-library": "^8.9.0", "googleapis": "^122.0.0", + "next-auth": "^4.22.3", "pg": "^8.11.1", "pg-format": "^1.0.4", "react": "^18.2.0", @@ -1760,7 +1762,6 @@ "version": "7.22.6", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz", "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==", - "dev": true, "dependencies": { "regenerator-runtime": "^0.13.11" }, @@ -2012,6 +2013,156 @@ "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", "dev": true }, + "node_modules/@next/env": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/env/-/env-13.4.10.tgz", + "integrity": "sha512-3G1yD/XKTSLdihyDSa8JEsaWOELY+OWe08o0LUYzfuHp1zHDA8SObQlzKt+v+wrkkPcnPweoLH1ImZeUa0A1NQ==", + "peer": true + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.10.tgz", + "integrity": "sha512-4bsdfKmmg7mgFGph0UorD1xWfZ5jZEw4kKRHYEeTK9bT1QnMbPVPlVXQRIiFPrhoDQnZUoa6duuPUJIEGLV1Jg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.10.tgz", + "integrity": "sha512-ngXhUBbcZIWZWqNbQSNxQrB9T1V+wgfCzAor2olYuo/YpaL6mUYNUEgeBMhr8qwV0ARSgKaOp35lRvB7EmCRBg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.10.tgz", + "integrity": "sha512-SjCZZCOmHD4uyM75MVArSAmF5Y+IJSGroPRj2v9/jnBT36SYFTORN8Ag/lhw81W9EeexKY/CUg2e9mdebZOwsg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.10.tgz", + "integrity": "sha512-F+VlcWijX5qteoYIOxNiBbNE8ruaWuRlcYyIRK10CugqI/BIeCDzEDyrHIHY8AWwbkTwe6GRHabMdE688Rqq4Q==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.10.tgz", + "integrity": "sha512-WDv1YtAV07nhfy3i1visr5p/tjiH6CeXp4wX78lzP1jI07t4PnHHG1WEDFOduXh3WT4hG6yN82EQBQHDi7hBrQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.10.tgz", + "integrity": "sha512-zFkzqc737xr6qoBgDa3AwC7jPQzGLjDlkNmt/ljvQJ/Veri5ECdHjZCUuiTUfVjshNIIpki6FuP0RaQYK9iCRg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.10.tgz", + "integrity": "sha512-IboRS8IWz5mWfnjAdCekkl8s0B7ijpWeDwK2O8CdgZkoCDY0ZQHBSGiJ2KViAG6+BJVfLvcP+a2fh6cdyBr9QQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.10.tgz", + "integrity": "sha512-bSA+4j8jY4EEiwD/M2bol4uVEu1lBlgsGdvM+mmBm/BbqofNBfaZ2qwSbwE2OwbAmzNdVJRFRXQZ0dkjopTRaQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.10.tgz", + "integrity": "sha512-g2+tU63yTWmcVQKDGY0MV1PjjqgZtwM4rB1oVVi/v0brdZAcrcTV+04agKzWtvWroyFz6IqtT0MoZJA7PNyLVw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, "node_modules/@nicolo-ribaudo/semver-v6": { "version": "6.3.3", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz", @@ -2053,6 +2204,14 @@ "node": ">= 8" } }, + "node_modules/@panva/hkdf": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.1.1.tgz", + "integrity": "sha512-dhPeilub1NuIG0X5Kvhh9lH4iW3ZsHlnzwgwbOlgwQ2wG1IqFzsgHqmKPk3WzsdWAeaxKJxgM0+W433RmN45GA==", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/@remix-run/router": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.7.1.tgz", @@ -2061,6 +2220,15 @@ "node": ">=14" } }, + "node_modules/@swc/helpers": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.1.tgz", + "integrity": "sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==", + "peer": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", @@ -2594,7 +2762,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, + "devOptional": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -2735,7 +2903,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, + "devOptional": true, "engines": { "node": ">=8" } @@ -2815,7 +2983,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, + "devOptional": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -2874,6 +3042,18 @@ "node": ">=4" } }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "peer": true, + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, "node_modules/bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", @@ -2917,7 +3097,6 @@ "version": "1.0.30001515", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz", "integrity": "sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA==", - "dev": true, "funding": [ { "type": "opencollective", @@ -2956,7 +3135,7 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, + "devOptional": true, "funding": [ { "type": "individual", @@ -3000,6 +3179,12 @@ "node": ">= 10.0" } }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "peer": true + }, "node_modules/clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -4110,7 +4295,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, + "devOptional": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -4275,6 +4460,11 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, + "node_modules/gapi-script": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gapi-script/-/gapi-script-1.2.0.tgz", + "integrity": "sha512-NKTVKiIwFdkO1j1EzcrWu/Pz7gsl1GmBmgh+qhuV2Ytls04W/Eg5aiBL91SCiBM9lU0PMu7p1hTVxhh1rPT5Lw==" + }, "node_modules/gaxios": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.1.3.tgz", @@ -4359,7 +4549,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, + "devOptional": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -4370,8 +4560,7 @@ "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" }, "node_modules/globals": { "version": "11.12.0", @@ -4470,8 +4659,7 @@ "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "node_modules/graphemer": { "version": "1.4.0", @@ -4805,7 +4993,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.1.tgz", "integrity": "sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A==", - "dev": true + "devOptional": true }, "node_modules/import-fresh": { "version": "3.3.0", @@ -4966,7 +5154,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, + "devOptional": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -5024,7 +5212,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.12.0" } @@ -5142,6 +5330,14 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/jose": { + "version": "4.14.4", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.14.4.tgz", + "integrity": "sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -5457,7 +5653,6 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "dev": true, "funding": [ { "type": "github", @@ -5490,6 +5685,108 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, + "node_modules/next": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/next/-/next-13.4.10.tgz", + "integrity": "sha512-4ep6aKxVTQ7rkUW2fBLhpBr/5oceCuf4KmlUpvG/aXuDTIf9mexNSpabUD6RWPspu6wiJJvozZREhXhueYO36A==", + "peer": true, + "dependencies": { + "@next/env": "13.4.10", + "@swc/helpers": "0.5.1", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001406", + "postcss": "8.4.14", + "styled-jsx": "5.1.1", + "watchpack": "2.4.0", + "zod": "3.21.4" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=16.8.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "13.4.10", + "@next/swc-darwin-x64": "13.4.10", + "@next/swc-linux-arm64-gnu": "13.4.10", + "@next/swc-linux-arm64-musl": "13.4.10", + "@next/swc-linux-x64-gnu": "13.4.10", + "@next/swc-linux-x64-musl": "13.4.10", + "@next/swc-win32-arm64-msvc": "13.4.10", + "@next/swc-win32-ia32-msvc": "13.4.10", + "@next/swc-win32-x64-msvc": "13.4.10" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "fibers": ">= 3.1.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "fibers": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next-auth": { + "version": "4.22.3", + "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-4.22.3.tgz", + "integrity": "sha512-XAgy9xV3J2eJOXrQhmxdjV6MLM29ibm6WtMXc3KY6IPZeApf+SuBuPvlqCUfbu5YsAzlg9WSw6u01dChTfeZOA==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@panva/hkdf": "^1.0.2", + "cookie": "^0.5.0", + "jose": "^4.11.4", + "oauth": "^0.9.15", + "openid-client": "^5.4.0", + "preact": "^10.6.3", + "preact-render-to-string": "^5.1.19", + "uuid": "^8.3.2" + }, + "peerDependencies": { + "next": "^12.2.5 || ^13", + "nodemailer": "^6.6.5", + "react": "^17.0.2 || ^18", + "react-dom": "^17.0.2 || ^18" + }, + "peerDependenciesMeta": { + "nodemailer": { + "optional": true + } + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "peer": true, + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", @@ -5622,7 +5919,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -5651,6 +5948,19 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, + "node_modules/oauth": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", + "integrity": "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==" + }, + "node_modules/object-hash": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", + "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", + "engines": { + "node": ">= 6" + } + }, "node_modules/object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -5665,6 +5975,14 @@ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, + "node_modules/oidc-token-hash": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.0.3.tgz", + "integrity": "sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==", + "engines": { + "node": "^10.13.0 || >=12.0.0" + } + }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -5725,6 +6043,36 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/openid-client": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.4.3.tgz", + "integrity": "sha512-sVQOvjsT/sbSfYsQI/9liWQGVZH/Pp3rrtlGEwgk/bbHfrUDZ24DN57lAagIwFtuEu+FM9Ev7r85s8S/yPjimQ==", + "dependencies": { + "jose": "^4.14.4", + "lru-cache": "^6.0.0", + "object-hash": "^2.2.0", + "oidc-token-hash": "^5.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/openid-client/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/openid-client/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/optionator": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", @@ -5967,14 +6315,13 @@ "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, + "devOptional": true, "engines": { "node": ">=8.6" }, @@ -6138,6 +6485,26 @@ "node": ">=0.10.0" } }, + "node_modules/preact": { + "version": "10.16.0", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.16.0.tgz", + "integrity": "sha512-XTSj3dJ4roKIC93pald6rWuB2qQJO9gO2iLLyTe87MrjQN+HklueLsmskbywEWqCHlclgz3/M4YLL2iBr9UmMA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/preact-render-to-string": { + "version": "5.2.6", + "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.2.6.tgz", + "integrity": "sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==", + "dependencies": { + "pretty-format": "^3.8.0" + }, + "peerDependencies": { + "preact": ">=10" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -6156,6 +6523,11 @@ "renderkid": "^3.0.0" } }, + "node_modules/pretty-format": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz", + "integrity": "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==" + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -6344,7 +6716,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, + "devOptional": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -6385,8 +6757,7 @@ "node_modules/regenerator-runtime": { "version": "0.13.11", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "node_modules/regenerator-transform": { "version": "0.15.1", @@ -6592,7 +6963,7 @@ "version": "1.63.6", "resolved": "https://registry.npmjs.org/sass/-/sass-1.63.6.tgz", "integrity": "sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw==", - "dev": true, + "devOptional": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -6971,7 +7342,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -7032,6 +7402,15 @@ "node": ">= 0.8" } }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "peer": true, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -7088,6 +7467,29 @@ "webpack": "^5.0.0" } }, + "node_modules/styled-jsx": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", + "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "peer": true, + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -7246,7 +7648,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, + "devOptional": true, "dependencies": { "is-number": "^7.0.0" }, @@ -7282,8 +7684,7 @@ "node_modules/tslib": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", - "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==", - "dev": true + "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==" }, "node_modules/type-check": { "version": "0.4.0", @@ -7440,7 +7841,6 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, "bin": { "uuid": "dist/bin/uuid" } @@ -7457,7 +7857,6 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dev": true, "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -7837,6 +8236,15 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zod": { + "version": "3.21.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz", + "integrity": "sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } } } } diff --git a/package.json b/package.json index b654b4c..1ac06ea 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "scratch-project", "version": "1.0.0", - "description": "", + "description": "Welcome to the Google Sheets to SQL app.", "main": "index.js", "scripts": { "start": "nodemon server/server.js", @@ -33,8 +33,10 @@ "dotenv": "^16.3.1", "eslint": "^8.45.0", "express": "^4.18.2", + "gapi-script": "^1.2.0", "google-auth-library": "^8.9.0", "googleapis": "^122.0.0", + "next-auth": "^4.22.3", "pg": "^8.11.1", "pg-format": "^1.0.4", "react": "^18.2.0", diff --git a/server/routes/authRoute.js b/server/routes/authRoute.js new file mode 100644 index 0000000..8e1f5c7 --- /dev/null +++ b/server/routes/authRoute.js @@ -0,0 +1,43 @@ +const express = require('express'); +const fs = require('fs'); +const { google } = require('googleapis'); +const dotenv = require('dotenv').config(); + +const authRouter = express.Router(); + +const oauth2Client = new google.auth.OAuth2( + GOOGLE_CLIENT_ID, + GOOGLE_CLIENT_SECRET, + 'http://localhost1111' +); + +//access the scopes +const scopes = ['https://www.googleapis.com/auth/spreadsheets']; + +//generate URL that asks permissions for google sheets scope +const authorizationUrl = oauth2Client.generateAuthUrl({ + //'online' is default, 'offline' gets refresh token + access_type: 'offline', + scope: scopes, + include_granted_scopes: true, + //you only get a refresh token in the response on the first authorization from the user. subsequent authorizations will not return the refresh_token. when testing, go to your google account permissions page, and under 'third-party apps' menu, remove access to your app and confirm. then the next oauth2 request will include a refresh token +}); + +//configure googleapis to use authentication credentials +google.options({ auth: oauth2Client }); + +async function authenticate(scopes) { + return new Promise((resolve, reject)); +} + +//hey tristan +//got a little sidetracked last night (as anticipated) reading the docs on google. the videos i found for auth.js were a little unclear and confusing, so I dove back into the developers.google page listed below. attached are some oauth code examples provided by google that i mishmashed above before getting tired and calling it a day. i think that the git code examples are useful but i don't think they belong in this router file. would be helpful to pick your brain on the routing for this because i am feeling like it might replace the current authorization function in the server file, but obviously i'm hesitant to play around with that. can't wait to talk about this in the morning! + +//developers.google.com/identity/protocols/oauth2/web-server + +//https://github.com/googleapis/google-api-nodejs-client/blob/main/samples/oauth2.js +//https://github.com/googleapis/google-api-nodejs-client#authentication-and-authorization + +//https://github.com/googleworkspace/node-samples/blob/main/sheets/quickstart/index.js + +https: module.exports = authRouter; From b765281646fa458fb1ee82370d9f881fe15397f9 Mon Sep 17 00:00:00 2001 From: gschussler Date: Wed, 19 Jul 2023 10:04:02 -0500 Subject: [PATCH 07/29] set up testing suite --- __tests__/routes.test.js | 8 + jsconfig.json | 9 + package-lock.json | 7993 ++++++++++++++++++++++++++---------- package.json | 6 +- server/models/sqlModels.js | 3 +- 5 files changed, 5858 insertions(+), 2161 deletions(-) create mode 100644 __tests__/routes.test.js create mode 100644 jsconfig.json diff --git a/__tests__/routes.test.js b/__tests__/routes.test.js new file mode 100644 index 0000000..0a7f57e --- /dev/null +++ b/__tests__/routes.test.js @@ -0,0 +1,8 @@ +// import routers/endpoints from files throughout the project to test them here +// also need supertest +const supertest = require('supertest'); +const server = require('../server/server.js'); + +describe("server on startup", () => { + +}) \ No newline at end of file diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..666d79e --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,9 @@ +// gives VSCode autocomplete for jest types +// installed npm modules 'jest' and '@types/jest' to use +{ + "typeAcquisition": { + "include": [ + "jest" + ] + } +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 23e122c..8d42e21 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,13 +27,16 @@ "@babel/core": "^7.22.9", "@babel/preset-env": "^7.22.9", "@babel/preset-react": "^7.22.5", + "@types/jest": "^29.5.3", "babel-loader": "^9.1.3", "css-loader": "^6.8.1", "html-webpack-plugin": "^5.5.3", + "jest": "^29.6.1", "nodemon": "^3.0.1", "sass": "^1.63.6", "sass-loader": "^13.3.2", "style-loader": "^3.3.3", + "supertest": "^6.3.3", "webpack": "^5.88.1", "webpack-cli": "^5.1.4", "webpack-dev-server": "^4.15.1" @@ -546,6 +549,18 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", @@ -768,6 +783,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-unicode-sets-regex": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", @@ -1818,6 +1848,12 @@ "node": ">=6.9.0" } }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", @@ -1954,1729 +1990,4744 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=8" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "engines": { - "node": ">=6.0.0" + "dependencies": { + "sprintf-js": "~1.0.2" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, "engines": { - "node": ">=6.0.0" + "node": ">=8" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", - "dev": true - }, - "node_modules/@nicolo-ribaudo/semver-v6": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz", - "integrity": "sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "p-try": "^2.0.0" }, "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "p-limit": "^2.2.0" }, "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/@remix-run/router": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.7.2.tgz", - "integrity": "sha512-7Lcn7IqGMV+vizMPoEl5F0XDshcdDYtMI6uJLQdQz5CfZAwy3vvGKYSUk789qndt5dEC4HfSjviSYlSoHGL2+A==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, "engines": { - "node": ">=14" + "node": ">=8" } }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" + "engines": { + "node": ">=8" } }, - "node_modules/@types/bonjour": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "node_modules/@jest/console": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.6.1.tgz", + "integrity": "sha512-Aj772AYgwTSr5w8qnyoJ0eDYvN6bMsH3ORH1ivMotrInHLKdUz6BDlaEXHdM6kODaBIkNIyQGzsMvRdOv7VG7Q==", "dev": true, "dependencies": { - "@types/node": "*" + "@jest/types": "^29.6.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.6.1", + "jest-util": "^29.6.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "@types/node": "*" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", - "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@types/eslint": { - "version": "8.44.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.0.tgz", - "integrity": "sha512-gsF+c/0XOguWgaOgvFs+xnnRqt9GwgTvIks36WpE6ueeI4KCEHHd8K/CKHqhOqrJKsYH8m27kRzQEvWXAwXUTw==", + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" + "engines": { + "node": ">=8" } }, - "node_modules/@types/estree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", - "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", - "dev": true - }, - "node_modules/@types/express": { - "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.35", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", - "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", + "node_modules/@jest/core": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.6.1.tgz", + "integrity": "sha512-CcowHypRSm5oYQ1obz1wfvkjZZ2qoQlrKKvlfPwh5jUXVU12TWr2qMeH8chLMuTFzHh5a1g2yaqlqDICbr+ukQ==", "dev": true, "dependencies": { + "@jest/console": "^29.6.1", + "@jest/reporters": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.5.0", + "jest-config": "^29.6.1", + "jest-haste-map": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.6.1", + "jest-resolve-dependencies": "^29.6.1", + "jest-runner": "^29.6.1", + "jest-runtime": "^29.6.1", + "jest-snapshot": "^29.6.1", + "jest-util": "^29.6.1", + "jest-validate": "^29.6.1", + "jest-watcher": "^29.6.1", + "micromatch": "^4.0.4", + "pretty-format": "^29.6.1", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", - "dev": true - }, - "node_modules/@types/http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==", - "dev": true - }, - "node_modules/@types/http-proxy": { - "version": "1.17.11", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz", - "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==", + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "@types/node": "*" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@types/json-schema": { - "version": "7.0.12", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", - "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", - "dev": true - }, - "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.4.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.2.tgz", - "integrity": "sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==", - "dev": true + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "dev": true + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/@types/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", - "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "@types/mime": "^1", - "@types/node": "*" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@types/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "node_modules/@jest/environment": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.6.1.tgz", + "integrity": "sha512-RMMXx4ws+Gbvw3DfLSuo2cfQlK7IwGbpuEWXCqyYDcqYTI+9Ju3a5hDnXaxjNsa6uKh9PQF2v+qg+RLe63tz5A==", "dev": true, "dependencies": { - "@types/express": "*" + "@jest/fake-timers": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "jest-mock": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/serve-static": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.2.tgz", - "integrity": "sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==", + "node_modules/@jest/expect": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.6.1.tgz", + "integrity": "sha512-N5xlPrAYaRNyFgVf2s9Uyyvr795jnB6rObuPx4QFvNJz8aAjpZUDfO4bh5G/xuplMID8PrnuF1+SfSyDxhsgYg==", "dev": true, "dependencies": { - "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" + "expect": "^29.6.1", + "jest-snapshot": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/sockjs": { - "version": "0.3.33", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "node_modules/@jest/expect-utils": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.6.1.tgz", + "integrity": "sha512-o319vIf5pEMx0LmzSxxkYYxo4wrRLKHq9dP1yJU7FoPTB0LfAKSz8SWD6D/6U3v/O52t9cF5t+MeJiRsfk7zMw==", "dev": true, "dependencies": { - "@types/node": "*" + "jest-get-type": "^29.4.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/ws": { - "version": "8.5.5", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz", - "integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==", + "node_modules/@jest/fake-timers": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.6.1.tgz", + "integrity": "sha512-RdgHgbXyosCDMVYmj7lLpUwXA4c69vcNzhrt69dJJdf8azUrpRh3ckFCaTPNjsEeRi27Cig0oKDGxy5j7hOgHg==", "dev": true, "dependencies": { - "@types/node": "*" + "@jest/types": "^29.6.1", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.6.1", + "jest-mock": "^29.6.1", + "jest-util": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "node_modules/@jest/globals": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.6.1.tgz", + "integrity": "sha512-2VjpaGy78JY9n9370H8zGRCFbYVWwjY6RdDMhoJHa1sYfwe6XM/azGN0SjY8kk7BOZApIejQ1BFPyH7FPG0w3A==", "dev": true, "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@jest/environment": "^29.6.1", + "@jest/expect": "^29.6.1", + "@jest/types": "^29.6.1", + "jest-mock": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "node_modules/@jest/reporters": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.6.1.tgz", + "integrity": "sha512-9zuaI9QKr9JnoZtFQlw4GREQbxgmNYXU6QuWtmuODvk5nvPUeBYapVR/VYMyi2WSx3jXTLJTJji8rN6+Cm4+FA==", "dev": true, "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.6.1", + "jest-util": "^29.6.1", + "jest-worker": "^29.6.1", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "@xtuc/ieee754": "^1.2.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "@xtuc/long": "4.2.2" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/jest-worker": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.1.tgz", + "integrity": "sha512-U+Wrbca7S8ZAxAe9L6nb6g8kPdia5hj32Puu5iOqBCMTMWFHXuK6dOV2IFrpedbTV8fjMFLdWNttQTBL6u2MRA==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" + "@types/node": "*", + "jest-util": "^29.6.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "node_modules/@jest/reporters/node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "node_modules/@jest/schemas": { + "version": "29.6.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.0.tgz", + "integrity": "sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "node_modules/@jest/source-map": { + "version": "29.6.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.0.tgz", + "integrity": "sha512-oA+I2SHHQGxDCZpbrsCQSoMLb3Bz547JnM+jUr9qEbuw0vQlWZfpPS7CO9J7XiwKicEz9OFn/IYoLkkiUD7bzA==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webpack-cli/configtest": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", - "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", - "dev": true, - "engines": { - "node": ">=14.15.0" + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - } - }, - "node_modules/@webpack-cli/info": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", - "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", - "dev": true, "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@webpack-cli/serve": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", - "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "node_modules/@jest/test-result": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.6.1.tgz", + "integrity": "sha512-Ynr13ZRcpX6INak0TPUukU8GWRfm/vAytE3JbJNGAvINySWYdfE7dGZMbk36oVuK4CigpbhMn8eg1dixZ7ZJOw==", "dev": true, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - }, - "peerDependenciesMeta": { - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "@jest/console": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" }, "engines": { - "node": ">= 0.6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "bin": { - "acorn": "bin/acorn" + "node_modules/@jest/test-sequencer": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.6.1.tgz", + "integrity": "sha512-oBkC36PCDf/wb6dWeQIhaviU0l5u6VCsXa119yqdUosYAt7/FbQU2M2UoziO3igj/HBDEgp57ONQ3fm0v9uyyg==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.6.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.6.1", + "slash": "^3.0.0" }, "engines": { - "node": ">=0.4.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "node_modules/@jest/transform": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.6.1.tgz", + "integrity": "sha512-URnTneIU3ZjRSaf906cvf6Hpox3hIeJXRnz3VDSw5/X93gR8ycdfSIEy19FlVx8NFmpN7fe3Gb1xF+NjXaQLWg==", "dev": true, - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dependencies": { - "debug": "4" + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.1", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.6.1", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.6.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" }, "engines": { - "node": ">= 6.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "ajv": "^8.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, - "peerDependencies": { - "ajv": "^8.0.0" + "engines": { + "node": ">=10" }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.3" + "color-name": "~1.1.4" }, - "peerDependencies": { - "ajv": "^8.8.2" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "color-convert": "^1.9.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "node_modules/@jest/types": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", + "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", "dev": true, "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "@jest/schemas": "^29.6.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" }, "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, - "node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "engines": { - "node": ">=8" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/axios": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/babel-loader": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", - "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "find-cache-dir": "^4.0.0", - "schema-utils": "^4.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 14.15.0" + "node": ">=8" }, - "peerDependencies": { - "@babel/core": "^7.12.0", - "webpack": ">=5" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.4.tgz", - "integrity": "sha512-9WeK9snM1BfxB38goUEv2FLnA6ja07UMfazFHzCXUb3NyDZAwfXvQiURQ6guTTMeHcOsdknULm1PDhs4uWtKyA==", + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.1", - "@nicolo-ribaudo/semver-v6": "^6.3.3" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.2.tgz", - "integrity": "sha512-Cid+Jv1BrY9ReW9lIfNlNpsI53N+FN7gE+f73zLAUbr9C52W4gKLWSByx47pfDJsEysojKArqOtOKZSVIIUTuQ==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.1", - "core-js-compat": "^3.31.0" + "engines": { + "node": ">=10" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.1.tgz", - "integrity": "sha512-L8OyySuI6OSQ5hFy9O+7zFjyr4WhAfRjLIOkhQGYl+emwJkd/S4XXT1JpfrgR1jrQ1NcGiOh+yAdGlF8pnC3Jw==", + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.1" + "color-name": "~1.1.4" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=6.0.0" } }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, "engines": { - "node": ">= 0.8" + "node": ">=6.0.0" } }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/bonjour-service": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", - "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", "dev": true, "dependencies": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, - "node_modules/browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", - "dev": true, - "funding": [ - { + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "node_modules/@nicolo-ribaudo/semver-v6": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz", + "integrity": "sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@remix-run/router": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.7.2.tgz", + "integrity": "sha512-7Lcn7IqGMV+vizMPoEl5F0XDshcdDYtMI6uJLQdQz5CfZAwy3vvGKYSUk789qndt5dEC4HfSjviSYlSoHGL2+A==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", + "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz", + "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.44.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.0.tgz", + "integrity": "sha512-gsF+c/0XOguWgaOgvFs+xnnRqt9GwgTvIks36WpE6ueeI4KCEHHd8K/CKHqhOqrJKsYH8m27kRzQEvWXAwXUTw==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.35", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", + "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "dev": true + }, + "node_modules/@types/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==", + "dev": true + }, + "node_modules/@types/http-proxy": { + "version": "1.17.11", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz", + "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.3", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.3.tgz", + "integrity": "sha512-1Nq7YrO/vJE/FYnqYyw0FS8LdrjExSgIiHyKg7xPpn+yi8Q4huZryKnkJatN1ZRH89Kw2v33/8ZMB7DuZeSLlA==", + "dev": true, + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.4.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.2.tgz", + "integrity": "sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==", + "dev": true + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "node_modules/@types/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", + "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.2.tgz", + "integrity": "sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/ws": { + "version": "8.5.5", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz", + "integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "engines": { + "node": ">=8" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/babel-jest": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.6.1.tgz", + "integrity": "sha512-qu+3bdPEQC6KZSPz+4Fyjbga5OODNcp49j6GKzG1EKbkfyJBxEYGVUmVGpwCSeGouG52R4EgYMLb6p9YeEEQ4A==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.6.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.5.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "dev": true, + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", + "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.4.tgz", + "integrity": "sha512-9WeK9snM1BfxB38goUEv2FLnA6ja07UMfazFHzCXUb3NyDZAwfXvQiURQ6guTTMeHcOsdknULm1PDhs4uWtKyA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.1", + "@nicolo-ribaudo/semver-v6": "^6.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.2.tgz", + "integrity": "sha512-Cid+Jv1BrY9ReW9lIfNlNpsI53N+FN7gE+f73zLAUbr9C52W4gKLWSByx47pfDJsEysojKArqOtOKZSVIIUTuQ==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.1", + "core-js-compat": "^3.31.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.1.tgz", + "integrity": "sha512-L8OyySuI6OSQ5hFy9O+7zFjyr4WhAfRjLIOkhQGYl+emwJkd/S4XXT1JpfrgR1jrQ1NcGiOh+yAdGlF8pnC3Jw==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@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-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", + "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.5.0", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/bonjour-service": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/buffer-writer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", + "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001515", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz", + "integrity": "sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA==", + "dev": true, + "funding": [ + { "type": "opencollective", "url": "https://opencollective.com/browserslist" }, { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/child_process": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz", + "integrity": "sha512-Wmza/JzL0SiWz7kl6MhIKT5ceIlnFPJX+lwUGj7Clhy5MMldsSoJR0+uvRzOS5Kv45Mq7t1PoE8TsOA9bzvb6g==" + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true + }, + "node_modules/clean-css": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", + "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", + "dev": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/cookiejar": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", + "dev": true + }, + "node_modules/core-js-compat": { + "version": "3.31.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.1.tgz", + "integrity": "sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.9" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-loader": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", + "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.21", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.3", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-loader/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-loader/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dev": true, + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/diff-sequences": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", + "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "node_modules/dns-packet": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", + "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", + "dev": true, + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", + "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/motdotla/dotenv?sponsor=1" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.461", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.461.tgz", + "integrity": "sha512-1JkvV2sgEGTDXjdsaQCeSwYYuhLRphRpc+g6EHTFELJXEiznLt3/0pZ9JuAOQ5p2rI3YxKTbivtvajirIfhrEQ==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/envinfo": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz", + "integrity": "sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", + "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.45.0.tgz", + "integrity": "sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.1.0", + "@eslint/js": "8.44.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.6.0", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.1.tgz", + "integrity": "sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.6.1.tgz", + "integrity": "sha512-XEdDLonERCU1n9uR56/Stx9OqojaLAQtZf9PrCHH9Hl8YXiEIka3H4NXJ3NOIBmQJTg7+j7buh34PMHfJujc8g==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.6.1", + "@types/node": "*", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-util": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "node_modules/fast-text-encoding": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz", + "integrity": "sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==" + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "dev": true, + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/ai" + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formidable": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", + "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", + "dev": true, + "dependencies": { + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0", + "qs": "^6.11.0" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.4.tgz", + "integrity": "sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/gaxios": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.1.3.tgz", + "integrity": "sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==", + "dependencies": { + "extend": "^3.0.2", + "https-proxy-agent": "^5.0.0", + "is-stream": "^2.0.0", + "node-fetch": "^2.6.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/gcp-metadata": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.3.0.tgz", + "integrity": "sha512-FNTkdNEnBdlqF2oatizolQqNANMrcqJt6AAYt99B3y1aLLC8Hc5IOBb+ZnnzllodEEf6xMBp6wRcBbc16fa65w==", + "dependencies": { + "gaxios": "^5.0.0", + "json-bigint": "^1.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/google-auth-library": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-8.9.0.tgz", + "integrity": "sha512-f7aQCJODJFmYWN6PeNKzgvy9LI2tYmXnzpNDHEjG5sDNPgGb2FXQyTBnXeSH+PAtpKESFD+LmHw3Ox3mN7e1Fg==", + "dependencies": { + "arrify": "^2.0.0", + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "fast-text-encoding": "^1.0.0", + "gaxios": "^5.0.0", + "gcp-metadata": "^5.3.0", + "gtoken": "^6.1.0", + "jws": "^4.0.0", + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/google-auth-library/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/google-auth-library/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/google-p12-pem": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-4.0.1.tgz", + "integrity": "sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ==", "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" + "node-forge": "^1.3.1" }, "bin": { - "browserslist": "cli.js" + "gp12-pem": "build/src/bin/gp12-pem.js" }, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": ">=12.0.0" } }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + "node_modules/googleapis": { + "version": "122.0.0", + "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-122.0.0.tgz", + "integrity": "sha512-n8Gt7j9LzSkhQEGPOrcLBKxllTvW/0v6oILuwszL/zqgelNsGJYXVqPJllgJJ6RM7maJ6T35UBeYqI6GQ/IlJg==", + "dependencies": { + "google-auth-library": "^8.0.2", + "googleapis-common": "^6.0.0" + }, + "engines": { + "node": ">=12.0.0" + } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "node_modules/googleapis-common": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-6.0.4.tgz", + "integrity": "sha512-m4ErxGE8unR1z0VajT6AYk3s6a9gIMM6EkDZfkPnES8joeOlEtFEJeF8IyZkb0tjPXkktUfYrE4b3Li1DNyOwA==", + "dependencies": { + "extend": "^3.0.2", + "gaxios": "^5.0.1", + "google-auth-library": "^8.0.2", + "qs": "^6.7.0", + "url-template": "^2.0.8", + "uuid": "^9.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/googleapis-common/node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "node_modules/buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + }, + "node_modules/gtoken": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-6.1.2.tgz", + "integrity": "sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==", + "dependencies": { + "gaxios": "^5.0.1", + "google-p12-pem": "^4.0.0", + "jws": "^4.0.0" + }, "engines": { - "node": ">=4" + "node": ">=12.0.0" } }, - "node_modules/bytes": { + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { - "node": ">= 0.8" + "node": ">=4" } }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "engines": { - "node": ">=6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "dev": true, "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001515", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz", - "integrity": "sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA==", + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", + "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", "dev": true, "funding": [ { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + "type": "github", + "url": "https://github.com/sponsors/mdevils" }, { - "type": "github", - "url": "https://github.com/sponsors/ai" + "type": "patreon", + "url": "https://patreon.com/mdevils" } ] }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dev": true, + "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" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz", + "integrity": "sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@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" }, "engines": { - "node": ">=4" + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "webpack": "^5.20.0" } }, - "node_modules/child_process": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz", - "integrity": "sha512-Wmza/JzL0SiWz7kl6MhIKT5ceIlnFPJX+lwUGj7Clhy5MMldsSoJR0+uvRzOS5Kv45Mq7t1PoE8TsOA9bzvb6g==" - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", "dev": true, "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "type": "github", + "url": "https://github.com/sponsors/fb55" } ], "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" } }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, - "engines": { - "node": ">=6.0" - } + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true }, - "node_modules/clean-css": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", - "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", - "dev": true, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dependencies": { - "source-map": "~0.6.0" + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" }, "engines": { - "node": ">= 10.0" + "node": ">= 0.8" } }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" }, "engines": { - "node": ">=6" + "node": ">=8.0.0" } }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", "dev": true, "dependencies": { - "color-name": "1.1.3" + "@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" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } } }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dependencies": { - "delayed-stream": "~1.0.0" + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">= 0.8" + "node": ">= 6" } }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "dev": true - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, "engines": { - "node": ">= 0.6" + "node": ">=10.17.0" } }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "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" + "safer-buffer": ">= 2.1.2 < 3" }, "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, - "dependencies": { - "ms": "2.0.0" + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "engines": { + "node": ">= 4" + } }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", "dev": true }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "dev": true, - "engines": { - "node": ">=0.8" - } + "node_modules/immutable": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.1.tgz", + "integrity": "sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A==", + "dev": true }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dependencies": { - "safe-buffer": "5.2.1" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "engines": { - "node": ">= 0.6" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "engines": { - "node": ">= 0.6" + "node": ">=4" } }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/core-js-compat": { - "version": "3.31.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.1.tgz", - "integrity": "sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA==", + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "dependencies": { - "browserslist": "^4.21.9" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "node_modules/import-local/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/css-loader": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", - "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", + "node_modules/import-local/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.21", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.3", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" + "p-locate": "^4.1.0" }, "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" + "node": ">=8" } }, - "node_modules/css-loader/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/import-local/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "p-try": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/css-loader/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/import-local/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/css-loader/node_modules/yallist": { + "node_modules/import-local/node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "node_modules/import-local/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" + "find-up": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/fb55" + "engines": { + "node": ">=8" } }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" + "node": ">=0.8.19" } }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, "engines": { - "node": ">=4" + "node": ">=10.13.0" } }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, + "node_modules/ipaddr.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "dev": true, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">= 10" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "dependencies": { - "execa": "^5.0.0" + "binary-extensions": "^2.0.0" }, "engines": { - "node": ">= 10" + "node": ">=8" } }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "node_modules/is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, "engines": { - "node": ">=0.4.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=8" } }, - "node_modules/detect-node": { + "node_modules/is-generator-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true - }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", - "dev": true - }, - "node_modules/dns-packet": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", - "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, "engines": { "node": ">=6" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dependencies": { - "esutils": "^2.0.2" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">=6.0.0" + "node": ">=0.10.0" } }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "dependencies": { - "utila": "~0.4" + "engines": { + "node": ">=0.12.0" } }, - "node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" } }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "dev": true, - "dependencies": { - "domelementtype": "^2.2.0" - }, "engines": { - "node": ">= 4" + "node": ">=10" }, "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" + "isobject": "^3.0.1" }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dev": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/dotenv": { - "version": "16.3.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", - "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, "dependencies": { - "safe-buffer": "^5.0.1" + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.461", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.461.tgz", - "integrity": "sha512-1JkvV2sgEGTDXjdsaQCeSwYYuhLRphRpc+g6EHTFELJXEiznLt3/0pZ9JuAOQ5p2rI3YxKTbivtvajirIfhrEQ==", + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, "engines": { - "node": ">=10.13.0" + "node": ">=8" } }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/envinfo": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz", - "integrity": "sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==", + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, - "bin": { - "envinfo": "dist/cli.js" + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/es-module-lexer": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", - "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", - "dev": true + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, "engines": { - "node": ">=0.8.0" + "node": ">=8" } }, - "node_modules/eslint": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.45.0.tgz", - "integrity": "sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==", + "node_modules/jest": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.6.1.tgz", + "integrity": "sha512-Nirw5B4nn69rVUZtemCQhwxOBhm0nsp3hmtF4rzCeWD7BkjAXRIji7xWQfnTNbz9g0aVsBX6aZK3n+23LM6uDw==", + "dev": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.1.0", - "@eslint/js": "8.44.0", - "@humanwhocodes/config-array": "^0.11.10", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.6.0", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "@jest/core": "^29.6.1", + "@jest/types": "^29.6.1", + "import-local": "^3.0.2", + "jest-cli": "^29.6.1" }, "bin": { - "eslint": "bin/eslint.js" + "jest": "bin/jest.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://opencollective.com/eslint" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/jest-changed-files": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", + "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", "dev": true, "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "execa": "^5.0.0", + "p-limit": "^3.1.0" }, "engines": { - "node": ">=8.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "node_modules/jest-changed-files/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=10" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "node_modules/jest-changed-files/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/ansi-styles": { + "node_modules/jest-circus": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.6.1.tgz", + "integrity": "sha512-tPbYLEiBU4MYAL2XoZme/bgfUeotpDBd81lgHLCbDZZFaGmECk0b+/xejPFtmiBP87GgP/y4jplcRpbH+fgCzQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.6.1", + "@jest/expect": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.6.1", + "jest-matcher-utils": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-runtime": "^29.6.1", + "jest-snapshot": "^29.6.1", + "jest-util": "^29.6.1", + "p-limit": "^3.1.0", + "pretty-format": "^29.6.1", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -3687,10 +6738,11 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/eslint/node_modules/chalk": { + "node_modules/jest-circus/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3702,10 +6754,11 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/eslint/node_modules/color-convert": { + "node_modules/jest-circus/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -3713,52 +6766,28 @@ "node": ">=7.0.0" } }, - "node_modules/eslint/node_modules/color-name": { + "node_modules/jest-circus/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/eslint/node_modules/escape-string-regexp": { + "node_modules/jest-circus/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.1.tgz", - "integrity": "sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { - "node": ">=4.0" + "node": ">=8" } }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/jest-circus/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "yocto-queue": "^0.1.0" }, "engines": { "node": ">=10" @@ -3767,98 +6796,127 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "is-glob": "^4.0.3" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=10.13.0" + "node": ">=8" } }, - "node_modules/eslint/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dependencies": { - "type-fest": "^0.20.2" - }, + "node_modules/jest-circus/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/jest-cli": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.6.1.tgz", + "integrity": "sha512-607dSgTA4ODIN6go9w6xY3EYkyPFGicx51a69H7yfvt7lN53xNswEVLovq+E77VsTRi5fWprLH0yl4DJgE8Ing==", + "dev": true, "dependencies": { - "p-locate": "^5.0.0" + "@jest/core": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/types": "^29.6.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^29.6.1", + "jest-util": "^29.6.1", + "jest-validate": "^29.6.1", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/eslint/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "yocto-queue": "^0.1.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { - "p-limit": "^3.0.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/eslint/node_modules/path-exists": { + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-cli/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/eslint/node_modules/supports-color": { + "node_modules/jest-cli/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -3866,1254 +6924,1405 @@ "node": ">=8" } }, - "node_modules/eslint/node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "node_modules/jest-config": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.6.1.tgz", + "integrity": "sha512-XdjYV2fy2xYixUiV2Wc54t3Z4oxYPAELUzWnV6+mcbq0rh742X2p52pii5A3oeRzYjLnQxCsZmp0qpI6klE2cQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.6.1", + "@jest/types": "^29.6.1", + "babel-jest": "^29.6.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.6.1", + "jest-environment-node": "^29.6.1", + "jest-get-type": "^29.4.3", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.6.1", + "jest-runner": "^29.6.1", + "jest-util": "^29.6.1", + "jest-validate": "^29.6.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.6.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "color-convert": "^2.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=8" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { - "estraverse": "^5.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { - "estraverse": "^5.2.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=4.0" + "node": ">=7.0.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "node_modules/jest-diff": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.6.1.tgz", + "integrity": "sha512-FsNCvinvl8oVxpNLttNQX7FAq7vR+gMDGj90tiP7siWw1UdakWUGqrylpsYrpvj908IYckm5Y0Q7azNAozU1Kg==", "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.6.1" + }, "engines": { - "node": ">=0.8.x" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "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" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } }, - "node_modules/fast-text-encoding": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz", - "integrity": "sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==" + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">= 4.9.1" + "node": ">=8" } }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "reusify": "^1.0.4" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "node_modules/jest-docblock": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", + "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", "dev": true, "dependencies": { - "websocket-driver": ">=0.5.1" + "detect-newline": "^3.0.0" }, "engines": { - "node": ">=0.8.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "node_modules/jest-each": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.6.1.tgz", + "integrity": "sha512-n5eoj5eiTHpKQCAVcNTT7DRqeUmJ01hsAL0Q1SMiBHcBcvTKDELixQOGMCpqhbIuTcfC4kMfSnpmDqRgRJcLNQ==", + "dev": true, "dependencies": { - "flat-cache": "^3.0.4" + "@jest/types": "^29.6.1", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "jest-util": "^29.6.1", + "pretty-format": "^29.6.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "to-regex-range": "^5.0.1" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { - "ms": "2.0.0" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/find-cache-dir": { + "node_modules/jest-each/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", - "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "common-path-prefix": "^3.0.0", - "pkg-dir": "^7.0.0" - }, "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "node_modules/jest-environment-node": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.6.1.tgz", + "integrity": "sha512-ZNIfAiE+foBog24W+2caIldl4Irh8Lx1PUhg/GZ0odM1d/h2qORAsejiFc7zb+SEmYPn1yDZzEDSU5PmDkmVLQ==", + "dev": true, "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "@jest/environment": "^29.6.1", + "@jest/fake-timers": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "jest-mock": "^29.6.1", + "jest-util": "^29.6.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" + "node_modules/jest-get-type": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", + "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], + "node_modules/jest-haste-map": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.6.1.tgz", + "integrity": "sha512-0m7f9PZXxOCk1gRACiVgX85knUKPKLPg4oRCjLoqIm9brTHXaorMA0JpmtmVkQiT8nmXyIVoZd/nnH1cfC33ig==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.1", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.6.1", + "jest-worker": "^29.6.1", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, "engines": { - "node": ">=4.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "optionalDependencies": { + "fsevents": "^2.3.2" } }, - "node_modules/form-data": { + "node_modules/jest-haste-map/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-haste-map/node_modules/jest-worker": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.1.tgz", + "integrity": "sha512-U+Wrbca7S8ZAxAe9L6nb6g8kPdia5hj32Puu5iOqBCMTMWFHXuK6dOV2IFrpedbTV8fjMFLdWNttQTBL6u2MRA==", + "dev": true, "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "@types/node": "*", + "jest-util": "^29.6.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { - "node": ">= 6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "node_modules/jest-haste-map/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "node_modules/jest-leak-detector": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.6.1.tgz", + "integrity": "sha512-OrxMNyZirpOEwkF3UHnIkAiZbtkBWiye+hhBweCHkVbCgyEy71Mwbb5zgeTNYWJBi1qgDVfPC1IwO9dVEeTLwQ==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.4.3", + "pretty-format": "^29.6.1" + }, "engines": { - "node": ">= 0.6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/fs-monkey": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.4.tgz", - "integrity": "sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ==", - "dev": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "node_modules/jest-matcher-utils": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.6.1.tgz", + "integrity": "sha512-SLaztw9d2mfQQKHmJXKM0HCbl2PPVld/t9Xa6P9sgiExijviSp7TnZZpw2Fpt+OI3nwUO/slJbOfzfUMKKC5QA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.6.1", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.6.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/gaxios": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.1.3.tgz", - "integrity": "sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==", + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.6.9" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=12" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/gcp-metadata": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.3.0.tgz", - "integrity": "sha512-FNTkdNEnBdlqF2oatizolQqNANMrcqJt6AAYt99B3y1aLLC8Hc5IOBb+ZnnzllodEEf6xMBp6wRcBbc16fa65w==", + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { - "gaxios": "^5.0.0", - "json-bigint": "^1.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=12" + "node": ">=7.0.0" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=6.9.0" + "node": ">=8" } }, - "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-flag": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "node_modules/jest-message-util": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.6.1.tgz", + "integrity": "sha512-KoAW2zAmNSd3Gk88uJ56qXUWbFk787QKmjjJVOjtGFmmGSZgDBrlIL4AfQw1xyMYPNVD7dNInfIbur9B2rd/wQ==", "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.6.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "*" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 6" + "node": ">=7.0.0" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/google-auth-library": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-8.9.0.tgz", - "integrity": "sha512-f7aQCJODJFmYWN6PeNKzgvy9LI2tYmXnzpNDHEjG5sDNPgGb2FXQyTBnXeSH+PAtpKESFD+LmHw3Ox3mN7e1Fg==", + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^5.0.0", - "gcp-metadata": "^5.3.0", - "gtoken": "^6.1.0", - "jws": "^4.0.0", - "lru-cache": "^6.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/google-auth-library/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/jest-mock": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.6.1.tgz", + "integrity": "sha512-brovyV9HBkjXAEdRooaTQK42n8usKoSRR3gihzUpYeV/vwqgSoNfrksO7UfSACnPmxasO/8TmHM3w9Hp3G1dgw==", + "dev": true, "dependencies": { - "yallist": "^4.0.0" + "@jest/types": "^29.6.1", + "@types/node": "*", + "jest-util": "^29.6.1" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/google-auth-library/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/google-p12-pem": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-4.0.1.tgz", - "integrity": "sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ==", - "dependencies": { - "node-forge": "^1.3.1" + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" }, - "bin": { - "gp12-pem": "build/src/bin/gp12-pem.js" + "peerDependencies": { + "jest-resolve": "*" }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", + "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", + "dev": true, "engines": { - "node": ">=12.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/googleapis": { - "version": "122.0.0", - "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-122.0.0.tgz", - "integrity": "sha512-n8Gt7j9LzSkhQEGPOrcLBKxllTvW/0v6oILuwszL/zqgelNsGJYXVqPJllgJJ6RM7maJ6T35UBeYqI6GQ/IlJg==", + "node_modules/jest-resolve": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.6.1.tgz", + "integrity": "sha512-AeRkyS8g37UyJiP9w3mmI/VXU/q8l/IH52vj/cDAyScDcemRbSBhfX/NMYIGilQgSVwsjxrCHf3XJu4f+lxCMg==", + "dev": true, "dependencies": { - "google-auth-library": "^8.0.2", - "googleapis-common": "^6.0.0" + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.6.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.6.1", + "jest-validate": "^29.6.1", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" }, "engines": { - "node": ">=12.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/googleapis-common": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-6.0.4.tgz", - "integrity": "sha512-m4ErxGE8unR1z0VajT6AYk3s6a9gIMM6EkDZfkPnES8joeOlEtFEJeF8IyZkb0tjPXkktUfYrE4b3Li1DNyOwA==", + "node_modules/jest-resolve-dependencies": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.1.tgz", + "integrity": "sha512-BbFvxLXtcldaFOhNMXmHRWx1nXQO5LoXiKSGQcA1LxxirYceZT6ch8KTE1bK3X31TNG/JbkI7OkS/ABexVahiw==", + "dev": true, "dependencies": { - "extend": "^3.0.2", - "gaxios": "^5.0.1", - "google-auth-library": "^8.0.2", - "qs": "^6.7.0", - "url-template": "^2.0.8", - "uuid": "^9.0.0" + "jest-regex-util": "^29.4.3", + "jest-snapshot": "^29.6.1" }, "engines": { - "node": ">=12.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/googleapis-common/node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "bin": { - "uuid": "dist/bin/uuid" + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } }, - "node_modules/gtoken": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-6.1.2.tgz", - "integrity": "sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==", + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { - "gaxios": "^5.0.1", - "google-p12-pem": "^4.0.0", - "jws": "^4.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=12.0.0" + "node": ">=7.0.0" } }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { - "node": ">= 0.4.0" + "node": ">=8" } }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "engines": { - "node": ">= 0.4" + "node_modules/jest-runner": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.6.1.tgz", + "integrity": "sha512-tw0wb2Q9yhjAQ2w8rHRDxteryyIck7gIzQE4Reu3JuOBpGp96xWgF0nY8MDdejzrLCZKDcp8JlZrBN/EtkQvPQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.6.1", + "@jest/environment": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.4.3", + "jest-environment-node": "^29.6.1", + "jest-haste-map": "^29.6.1", + "jest-leak-detector": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-resolve": "^29.6.1", + "jest-runtime": "^29.6.1", + "jest-util": "^29.6.1", + "jest-watcher": "^29.6.1", + "jest-worker": "^29.6.1", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" + "engines": { + "node": ">=8" } }, - "node_modules/html-entities": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", - "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ] - }, - "node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "node_modules/jest-runner/node_modules/jest-worker": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.1.tgz", + "integrity": "sha512-U+Wrbca7S8ZAxAe9L6nb6g8kPdia5hj32Puu5iOqBCMTMWFHXuK6dOV2IFrpedbTV8fjMFLdWNttQTBL6u2MRA==", "dev": true, "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" - }, - "bin": { - "html-minifier-terser": "cli.js" + "@types/node": "*", + "jest-util": "^29.6.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/html-minifier-terser/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "node_modules/jest-runner/node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">= 12" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/html-webpack-plugin": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz", - "integrity": "sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==", + "node_modules/jest-runner/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "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" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=10.13.0" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/html-webpack-plugin" - }, - "peerDependencies": { - "webpack": "^5.20.0" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "node_modules/jest-runner/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "dev": true - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-runtime": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.6.1.tgz", + "integrity": "sha512-D6/AYOA+Lhs5e5il8+5pSLemjtJezUr+8zx+Sn8xlmOux3XOqx4d8l/2udBea8CRPqqrzhsKUsN/gBDE/IcaPQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.6.1", + "@jest/fake-timers": "^29.6.1", + "@jest/globals": "^29.6.1", + "@jest/source-map": "^29.6.0", + "@jest/test-result": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-mock": "^29.6.1", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.6.1", + "jest-snapshot": "^29.6.1", + "jest-util": "^29.6.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" }, "engines": { - "node": ">= 0.8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "dev": true - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "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" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" + "node": ">=10" }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { - "agent-base": "6", - "debug": "4" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 6" + "node": ">=7.0.0" } }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=10.17.0" + "node": ">=8" } }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "node_modules/jest-snapshot": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.6.1.tgz", + "integrity": "sha512-G4UQE1QQ6OaCgfY+A0uR1W2AY0tGXUPQpoUClhWHq1Xdnx1H6JOrC2nH5lqnOEqaDgbHFgIwZ7bNq24HpB180A==", "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.6.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.6.1", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-util": "^29.6.1", + "natural-compare": "^1.4.0", + "pretty-format": "^29.6.1", + "semver": "^7.5.3" }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "engines": { - "node": ">= 4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", - "dev": true - }, - "node_modules/immutable": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.1.tgz", - "integrity": "sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A==", - "dev": true - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=6" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "engines": { - "node": ">=4" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/import-local/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "color-name": "~1.1.4" }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/import-local/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/jest-snapshot/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "yallist": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/import-local/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { - "p-try": "^2.0.0" + "lru-cache": "^6.0.0" }, - "engines": { - "node": ">=6" + "bin": { + "semver": "bin/semver.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=10" } }, - "node_modules/import-local/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/import-local/node_modules/path-exists": { + "node_modules/jest-snapshot/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/jest-util": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.6.1.tgz", + "integrity": "sha512-NRFCcjc+/uO3ijUVyNOQJluf8PtGCe/W6cix36+M3cTFgiYqFOOW5MgN4JOOcvbUhcKTYVd1CvHz/LWi8d16Mg==", "dev": true, + "dependencies": { + "@jest/types": "^29.6.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/import-local/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "find-up": "^4.0.0" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=0.8.19" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/interpret": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=10.13.0" + "node": ">=8" } }, - "node_modules/ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">= 10" + "node": ">=8" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "node_modules/jest-validate": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.6.1.tgz", + "integrity": "sha512-r3Ds69/0KCN4vx4sYAbGL1EVpZ7MSS0vLmd3gV78O+NAx3PDQQukRU5hNHPXlyqCgFY8XUk7EuTMLugh0KzahA==", "dev": true, "dependencies": { - "binary-extensions": "^2.0.0" + "@jest/types": "^29.6.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "leven": "^3.1.0", + "pretty-format": "^29.6.1" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "has": "^1.0.3" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "bin": { - "is-docker": "cli.js" - }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { - "is-extglob": "^2.1.1" + "color-name": "~1.1.4" }, "engines": { - "node": ">=0.10.0" + "node": ">=7.0.0" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=0.12.0" + "node": ">=8" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "node_modules/jest-watcher": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.6.1.tgz", + "integrity": "sha512-d4wpjWTS7HEZPaaj8m36QiaP856JthRZkrgcIY/7ISoUWPIillrXM23WPboZVLbiwZBt4/qn2Jke84Sla6JhFA==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "@jest/test-result": "^29.6.1", + "@jest/types": "^29.6.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.6.1", + "string-length": "^4.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "isobject": "^3.0.1" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "is-docker": "^2.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/jest-worker": { @@ -5247,6 +8456,15 @@ "node": ">=0.10.0" } }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/launch-editor": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", @@ -5257,6 +8475,15 @@ "shell-quote": "^1.7.3" } }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -5269,6 +8496,12 @@ "node": ">= 0.8.0" } }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -5339,6 +8572,30 @@ "yallist": "^3.0.2" } }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -5539,6 +8796,12 @@ "node": ">= 6.13.0" } }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, "node_modules/node-releases": { "version": "2.0.13", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", @@ -5825,10 +9088,28 @@ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dependencies": { - "callsites": "^3.0.0" + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" }, "engines": { - "node": ">=6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/parseurl": { @@ -5994,6 +9275,15 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/pkg-dir": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", @@ -6168,12 +9458,51 @@ "renderkid": "^3.0.0" } }, + "node_modules/pretty-format": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", + "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -6213,6 +9542,22 @@ "node": ">=6" } }, + "node_modules/pure-rand": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz", + "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, "node_modules/qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", @@ -6308,6 +9653,12 @@ "react": "^18.2.0" } }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, "node_modules/react-router": { "version": "6.14.2", "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.14.2.tgz", @@ -6469,6 +9820,15 @@ "strip-ansi": "^6.0.1" } }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -6522,6 +9882,15 @@ "node": ">=8" } }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", @@ -6959,6 +10328,21 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/sockjs": { "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", @@ -7036,6 +10420,33 @@ "node": ">= 10.x" } }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -7053,6 +10464,33 @@ "safe-buffer": "~5.2.0" } }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -7064,6 +10502,15 @@ "node": ">=8" } }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", @@ -7100,6 +10547,85 @@ "webpack": "^5.0.0" } }, + "node_modules/superagent": { + "version": "8.0.9", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.9.tgz", + "integrity": "sha512-4C7Bh5pyHTvU33KpZgwrNKh/VQnvgtCSqPRfJAUdmrtSYePVzVg4E4OzsrbkhJj9O7SO6Bnv75K/F8XVZT8YHA==", + "dev": true, + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.4", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.1.2", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=6.4.0 <13 || >=14" + } + }, + "node_modules/superagent/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/superagent/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/superagent/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/superagent/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/supertest": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.3.tgz", + "integrity": "sha512-EMCG6G8gDu5qEqRQ3JjjPs6+FYT1a7Hv5ApHvtSghmOFJYtsU5S+pSb6Y2EUeCEY3CmEL3mmQ8YWlPOzQomabA==", + "dev": true, + "dependencies": { + "methods": "^1.1.2", + "superagent": "^8.0.5" + }, + "engines": { + "node": ">=6.4.0" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -7234,6 +10760,20 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -7245,6 +10785,12 @@ "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -7308,6 +10854,15 @@ "node": ">= 0.8.0" } }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -7457,6 +11012,20 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/v8-to-istanbul": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -7465,6 +11034,15 @@ "node": ">= 0.8" } }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, "node_modules/watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", @@ -7798,11 +11376,74 @@ "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", "dev": true }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/ws": { "version": "8.13.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", @@ -7832,12 +11473,48 @@ "node": ">=0.4" } }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/yocto-queue": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", diff --git a/package.json b/package.json index 5e31de6..a42a65a 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,8 @@ "start": "nodemon server/server.js", "client": "webpack-dev-server --mode development --open --hot", "build": "webpack --mode production", - "dev": " nodemon ./server/server.js & webpack-dev-server --mode development" + "dev": " nodemon ./server/server.js & webpack-dev-server --mode development", + "test": "jest --verbose" }, "keywords": [], "author": "", @@ -16,13 +17,16 @@ "@babel/core": "^7.22.9", "@babel/preset-env": "^7.22.9", "@babel/preset-react": "^7.22.5", + "@types/jest": "^29.5.3", "babel-loader": "^9.1.3", "css-loader": "^6.8.1", "html-webpack-plugin": "^5.5.3", + "jest": "^29.6.1", "nodemon": "^3.0.1", "sass": "^1.63.6", "sass-loader": "^13.3.2", "style-loader": "^3.3.3", + "supertest": "^6.3.3", "webpack": "^5.88.1", "webpack-cli": "^5.1.4", "webpack-dev-server": "^4.15.1" diff --git a/server/models/sqlModels.js b/server/models/sqlModels.js index 78c4dac..187e3bf 100644 --- a/server/models/sqlModels.js +++ b/server/models/sqlModels.js @@ -3,8 +3,7 @@ const { Pool } = require('pg'); //pg uri // static model URI for testing // (see sqlController.js for dynamic db creation) - -const PG_URI = process.env.POSTGRES_URI; +const PG_URI = "postgres://qveexumj:2o4MNak11B7N78RFhwwC3ozXVyTvWqHQ@mahmud.db.elephantsql.com/qveexumj"; const pool = new Pool({ connectionString: PG_URI From 483b1101fc094051463467a467bdafbbb3672a76 Mon Sep 17 00:00:00 2001 From: gschussler Date: Wed, 19 Jul 2023 10:30:40 -0500 Subject: [PATCH 08/29] stored pg uri in env --- server/models/sqlModels.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/server/models/sqlModels.js b/server/models/sqlModels.js index 187e3bf..b507151 100644 --- a/server/models/sqlModels.js +++ b/server/models/sqlModels.js @@ -1,12 +1,11 @@ +require('dotenv').config(); const { Pool } = require('pg'); -//pg uri -// static model URI for testing +//Postgres static model URI for testing +//stored in env // (see sqlController.js for dynamic db creation) -const PG_URI = "postgres://qveexumj:2o4MNak11B7N78RFhwwC3ozXVyTvWqHQ@mahmud.db.elephantsql.com/qveexumj"; - const pool = new Pool({ - connectionString: PG_URI + connectionString: process.env.PG_URI }); module.exports = { From e23b48b468d167c183b528be1338316642f6bafd Mon Sep 17 00:00:00 2001 From: Alexandra Ashcraft Date: Wed, 19 Jul 2023 08:45:19 -0700 Subject: [PATCH 09/29] deleted env file --- .env | 7 ------- .gitignore | 1 + 2 files changed, 1 insertion(+), 7 deletions(-) delete mode 100644 .env diff --git a/.env b/.env deleted file mode 100644 index 0bfee53..0000000 --- a/.env +++ /dev/null @@ -1,7 +0,0 @@ -# Path to service account credentials -GOOGLE_APPLICATION_CREDENTIALS="./server/credentials.json", -GOOGLE_CLIENT_ID= "726458599776-5igokrklbpevk563t8amvd3pcr8cc9b5.apps.googleusercontent.com", -GOOGLE_CLIENT_SECRET="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" - - -{"web":{"client_id":"726458599776-5igokrklbpevk563t8amvd3pcr8cc9b5.apps.googleusercontent.com","project_id":"ctri-17-iteration-hsdc","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"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","redirect_uris":["https://localhost:3000","https://localhost:8080"],"javascript_origins":["https://localhost:3000","https://localhost:8080"]}} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 305434d..93bfce2 100644 --- a/.gitignore +++ b/.gitignore @@ -79,6 +79,7 @@ web_modules/ .env.test.local .env.production.local .env.local +.env # parcel-bundler cache (https://parceljs.org/) .cache From dfc21e8d17c1d5723ff12f764bc000446d428dcd Mon Sep 17 00:00:00 2001 From: gschussler Date: Wed, 19 Jul 2023 10:52:01 -0500 Subject: [PATCH 10/29] repaired package lock on test branch --- package-lock.json | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..e69de29 From 6ae541e77e5c65bad81922d6a2e91719f1fe92f0 Mon Sep 17 00:00:00 2001 From: Alexandra Ashcraft Date: Wed, 19 Jul 2023 10:41:40 -0700 Subject: [PATCH 11/29] lunch weds --- client/components/Callback.js | 54 ++++++++++ client/components/Signin.js | 26 +++++ server/controllers/authController.js | 150 +++++++++++++++++++++++++++ server/routes/authRoute.js | 30 ++++++ server/server.js | 68 ++++++------ 5 files changed, 297 insertions(+), 31 deletions(-) create mode 100644 client/components/Callback.js create mode 100644 client/components/Signin.js create mode 100644 server/controllers/authController.js diff --git a/client/components/Callback.js b/client/components/Callback.js new file mode 100644 index 0000000..fc41340 --- /dev/null +++ b/client/components/Callback.js @@ -0,0 +1,54 @@ +import React, {useEffect, useState} from 'react'; +import { useNavigate } from 'react-router-dom'; + +//user is redirected to '/callback' from Google after entering their credentials +//if the user's credentials were authenticated by Google, will make a GET request here to obtain the access token and refresh token(used as cookie) from Google + +export default function Callback(){ + const [email, setEmail] = useState(''); + const [fetched, setFetched] = useState(false); + const navigate = useNavigate(); + + //get the redirect URL path (including the code query (authentication code) required to send to retrieve user specific tokens) + const href = window.location.href; + const index = href.indexOf('callback'); + const path = '/api/authentication/' + href.slice(index); + console.log('path: ', path); + + //use authentication code in request query to get access/refresh tokens from Google + const getTokens = async() => { + try { + + } catch (error) { + + } + } + + + //get user email from Google and check our SQL database to see if user exists on our application. redirect user to sign up page or home page based on user status + const checkUserType = async(accessToken) => { + try { + + } catch (error) { + + } + } + + if (fetched === false) { + setFetched(true); + } + + useEffect(()=>{ + getTokens(); + }, [fetched]); + + return ( +

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

} /> - } /> + } /> }/> }/> }/> diff --git a/client/components/Signin.js b/client/components/Signin.js index 013b3e7..889e8ab 100644 --- a/client/components/Signin.js +++ b/client/components/Signin.js @@ -37,6 +37,7 @@ export default function Signin(){ //redirect user to google with the supplied Url const handleRedirect = () => { + window.location.replace(url) } diff --git a/server/routes/authRouter.js b/server/routes/authRouter.js index 3cb9a6e..558caae 100644 --- a/server/routes/authRouter.js +++ b/server/routes/authRouter.js @@ -8,15 +8,17 @@ const authController = require('../controllers/authController.js'); const authRouter = express.Router(); //this request generates the authorization URL, which is returned out on the response body and provided to the front end where the user is redirected to the URL. +authRouter.use('/callback', authController.handleCallback, (req, res) => { + console.log('reached authRouter.get to handleCallback '); + return res.status(200).json(); +}); + authRouter.get('/', authController.initializeAuth, (req, res) => { console.log('reached authRouter.get to initialize authentication'); return res.status(200).json(res.locals.authUrl); }); -authRouter.use('/callback', authController.handleCallback, (req, res) => { - console.log('reached authRouter.get to handleCallback '); - return res.status(200).json(); -}); + //step 1 the initial get request from client to server // router.get('/', authController.initializeAuth, (req, res) => { From b28949e0d8a41f2d7f5dac78a7bd133023f634aa Mon Sep 17 00:00:00 2001 From: annni11 Date: Wed, 19 Jul 2023 23:14:14 -0400 Subject: [PATCH 16/29] Annabelle and Tristan working still on update feature --- server/controllers/gSheetsController.js | 216 +++++++++++++++++++++++- 1 file changed, 211 insertions(+), 5 deletions(-) diff --git a/server/controllers/gSheetsController.js b/server/controllers/gSheetsController.js index 755039c..dbe8362 100644 --- a/server/controllers/gSheetsController.js +++ b/server/controllers/gSheetsController.js @@ -81,21 +81,22 @@ gSheetsController.createSheet = async (req, res, next) => { auth: auth, }; try { - console.log('hello world'); - console.log('request!!!!!!!!!!', request); + // console.log('hello world'); + // console.log('request!!!!!!!!!!', request); const response = (await sheets.spreadsheets.create(request)).data; //spreadsheet id console.log(response); // const spreadsheetID = sheets.spreadsheets.data.spreadsheetId; const spreadID = response.spreadsheetId; + res.locals.sheetId = spreadID; // console.log(spreadsheetID); //create object with role and type const permission = { type: 'user', role: 'writer', - emailAddress: 'ann.j.ni@gmail.com', // Please set the email address you want to give the permission. + emailAddress: 'yukiokrause@gmail.com', // Please set the email address you want to give the permission. }; const permissionResponse = await drive.permissions.create({ auth: auth, //adding this and now we have a different error "insufficient permission" @@ -111,7 +112,10 @@ gSheetsController.createSheet = async (req, res, next) => { //console.log(JSON.stringify('THIS IS THE RESPONSE!!!!!', response, null, 2)); } catch (err) { console.log(err, 'ERROR in createSheet'); + next(err); } + + next(); }; // const response = await gsapi.spreadsheets.create(request_); @@ -131,9 +135,211 @@ gSheetsController.createSheet = async (req, res, next) => { // fields: "id", // }); +//make a GET request from DB SQL //populates sheet with DB data -//make a GET request from DB //at this point i think we can get the new sheet URL and next() the URL to the router -gSheetsController.updateSheet = async (req, res, next) => {}; +gSheetsController.updateSheet = async (req, res, next) => { + const auth = res.locals.auth; + console.log('this is auth', auth); + + // var ss = SpreadsheetApp.openById(res.locals.sheetId); + // // Logger.log(ss.getName()); + // ss.insertSheet('My New Sheet'); + + // The code below creates a new spreadsheet "Finances" with 50 rows and 5 columns and logs the + // URL for it + // var ssNew = SpreadsheetApp.create("Finances", 50, 5); + // Logger.log(ssNew.getUrl()); + // const test = {}; + // const data = {[ + // { + // majorDimension: 'COLUMNS', + // range: 'Sheet1!A4:C4', + // values: [['3'], ['OR3'], ['paid']], + // }, + // ], + // valueInputOption: 'USER_ENTERED',} + + // const json = JSON.stringify(data) + // console.log(json) + + // const request = { + // // The spreadsheet to apply the updates to. + // spreadsheetId: res.locals.sheetId, // TODO: Update placeholder value. + // auth: auth, + // resource: { + // // A list of updates to apply to the spreadsheet. + // // Requests will be applied in the order they are specified. + // // If any request is not valid, no requests will be applied. + + // "updatedRange": "Sheet1!A4", + // "updatedData": { + // "range": "Sheet1!A4:C4", + // "majorDimension": "ROWS" + + // } + // // // TODO: Add desired properties to the request body. + // }, + // }; + + // const request = { + // spreadsheetId: '180Ir80nuDycvrQSYKbVJKdhGxTtM9DQ8M2HbxiJg5Ps', + // auth: auth, + // resource: { + // data: [ + // { + // updatedRange: 'Sheet1!A4', + // updatedRows: 1, + // updatedColumns: 1, + // updatedCells: 1, + // updatedData: { + // range: 'Sheet1!A4:C4', + // majorDimension: 'ROWS', + // values: [['123423']], + // }, + // }, + // ], + // }, + // }; + const request = { + spreadsheetId: '180Ir80nuDycvrQSYKbVJKdhGxTtM9DQ8M2HbxiJg5Ps', + updatedRange: 'Sheet1!A4', + updatedRows: 1, + updatedColumns: 1, + updatedCells: 1, + updatedData: { + range: 'Sheet1!A4:C4', + majorDimension: 'ROWS', + values: [['123423']], + }, + auth: authClient, + }; + + // { + // "spreadsheetId": "180Ir80nuDycvrQSYKbVJKdhGxTtM9DQ8M2HbxiJg5Ps", + // "updatedRange": "Sheet1!A4", + // "updatedRows": 1, + // "updatedColumns": 1, + // "updatedCells": 1, + // "updatedData": { + // "range": "Sheet1!A4:C4", + // "majorDimension": "ROWS", + // "values": [ + // [ + // "123423" + // ] + // ] + // } + // } + + // async function main () { + // + // const request = { + // // The ID of the spreadsheet to update. + // spreadsheetId: 'my-spreadsheet-id', // TODO: Update placeholder value. + + // // The A1 notation of the values to update. + // range: 'my-range', // TODO: Update placeholder value. + + // // How the input data should be interpreted. + // valueInputOption: '', // TODO: Update placeholder value. + + // resource: { + // // TODO: Add desired properties to the request body. All existing properties + // // will be replaced. + // }, + + // auth: authClient, + // }; + + // }; + try { + // // Request + // Sheets.Spreadsheets.batchUpdate(batchReq, ); + // const result = JSON.stringify(request); + const response = await sheets.spreadsheets.values.batchUpdate(request).data; + // TODO: Change code below to process the `response` object: + + console.log(JSON.stringify(response, null, 2)); + } catch (err) { + console.error(err); + } +}; + +// // The code below creates a new spreadsheet "Finances" with 50 rows and 5 columns and logs the +// // URL for it +// var ssNew = SpreadsheetApp.create("Finances", 50, 5); +// Logger.log(ssNew.getUrl()); + +// async function main () { +// const authClient = await authorize(); +// const request = { +// // The spreadsheet to apply the updates to. +// spreadsheetId: 'my-spreadsheet-id', // TODO: Update placeholder value. + +// resource: { +// // A list of updates to apply to the spreadsheet. +// // Requests will be applied in the order they are specified. +// // If any request is not valid, no requests will be applied. +// requests: [], // TODO: Update placeholder value. + +// // TODO: Add desired properties to the request body. +// }, + +// auth: authClient, +// }; + +// try { +// const response = (await sheets.spreadsheets.batchUpdate(request)).data; +// // TODO: Change code below to process the `response` object: +// console.log(JSON.stringify(response, null, 2)); +// } catch (err) { +// console.error(err); +// } +// } module.exports = gSheetsController; + +// Set range +// var range = Sheets.newGridRange(); +// range.dimension = "COLUMNS"; +// range.startIndex = 1; +// range.endIndex = 3; +// range.sheetId = ss.getSheetId(); + +// // Create request of addDimensionGroup +// var p1 = Sheets.newAddDimensionGroupRequest(); +// p1.range = range; +// var req1 = Sheets.newRequest(); +// req1.addDimensionGroup = p1; + +// // Create request of updateDimensionGroup +// var p2 = Sheets.newUpdateDimensionGroupRequest(); +// p2.dimensionGroup = Sheets.newDimensionGroup(); +// p2.dimensionGroup.collapsed = true; +// p2.dimensionGroup.depth = 1; +// p2.dimensionGroup.range = range; +// p2.fields = "*"; +// var req2 = Sheets.newRequest(); +// req2.updateDimensionGroup = p2; + +// let batchReq = Sheets.newBatchUpdateSpreadsheetRequest(); +// batchReq.requests = [req1, req2]; + +// const request = { +// "spreadsheetId": "180Ir80nuDycvrQSYKbVJKdhGxTtM9DQ8M2HbxiJg5Ps", +// "updatedRange": "Sheet1!A4", +// "updatedRows": 1, +// "updatedColumns": 1, +// "updatedCells": 1, +// "updatedData": { +// "range": "Sheet1!A4:C4", +// "majorDimension": "ROWS", +// "values": [ +// [ +// "123423" +// ] +// ] +// } +// auth: authClient, +// } From c70c26e2dc8dbd7f966cec86a2223f2264448c84 Mon Sep 17 00:00:00 2001 From: tristanyukio Date: Wed, 19 Jul 2023 23:22:55 -0400 Subject: [PATCH 17/29] update --- build/index.html | 1 + package.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 build/index.html diff --git a/build/index.html b/build/index.html new file mode 100644 index 0000000..37b49d0 --- /dev/null +++ b/build/index.html @@ -0,0 +1 @@ +RLBF GROUP

\ No newline at end of file diff --git a/package.json b/package.json index bb9e73a..5e31de6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "scratch-project", "version": "1.0.0", - "description": "Welcome to the Google Sheets to SQL app.", + "description": "", "main": "index.js", "scripts": { "start": "nodemon server/server.js", From 398c0736e159e459d3f6b8d328919e8d5ca9423a Mon Sep 17 00:00:00 2001 From: Alexandra Ashcraft Date: Wed, 19 Jul 2023 20:35:24 -0700 Subject: [PATCH 18/29] not working still --- client/components/Callback.js | 71 +++++++++++++++--------- package-lock.json | 9 +++- package.json | 4 +- server/controllers/authController.js | 81 +++++++++++++++++++++++----- server/routes/authRouter.js | 12 ++--- 5 files changed, 130 insertions(+), 47 deletions(-) diff --git a/client/components/Callback.js b/client/components/Callback.js index 759338c..8193318 100644 --- a/client/components/Callback.js +++ b/client/components/Callback.js @@ -20,36 +20,59 @@ export default function Callback() { console.log('path: ', path); //use authentication code in request query to get access/refresh tokens from Google - const getTokens = async () => { - try { - const response = await fetch(path, { - method: 'GET', - headers: { - 'Content-Type': 'Application/JSON', - }, - }); - - console.log('getTokens fetch response: ', response); - const accessToken = await response.json(); - - console.log('Access Token: ', accessToken); - console.log(typeof accessToken); - - return redirect('/form'); - } catch (error) { - console.log( - 'Error when making fetch request to URL for access token and refresh token', - error - ); - } - }; + // const getTokens = async () => { + // try { + // const response = await fetch(path, { + // method: 'GET', + // headers: { + // 'Content-Type': 'Application/JSON', + // }, + // }); + + // console.log('getTokens fetch response: ', response); + // const accessToken = await response.json(); + + // console.log('Access Token: ', accessToken); + // console.log(typeof accessToken); + + // return redirect('/form'); + // } catch (error) { + // console.log( + // 'Error when making fetch request to URL for access token and refresh token', + // error + // ); + // } + // }; + + const handleCallback = async () => { + try { + const response = await fetch(path, { + method: 'POST', + headers: { + 'Content-Type': 'Application/JSON' + } + }) + const permission = await response.json(); + + if (permission === 'granted'){ + console.log('login successful') + return redirect('/form'); + } + } catch (error) { + console.log('Error, could not authenticate user with Google', error) + } + + } + + + if (fetched === false) { setFetched(true); } useEffect(() => { - getTokens(); + handleCallback(); }, [fetched]); return ( diff --git a/package-lock.json b/package-lock.json index 80bceaf..76539be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "axios": "^1.4.0", "child_process": "^1.0.2", "cookie-parser": "^1.4.6", + "destroy": "^1.2.0", "dotenv": "^16.3.1", "eslint": "^8.45.0", "express": "^4.18.2", @@ -22,7 +23,8 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.14.1", - "request": "^2.88.2" + "request": "^2.88.2", + "server-destroy": "^1.0.1" }, "devDependencies": { "@babel/core": "^7.22.9", @@ -7119,6 +7121,11 @@ "node": ">= 0.8.0" } }, + "node_modules/server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==" + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", diff --git a/package.json b/package.json index 4cc5e75..ae845c8 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "axios": "^1.4.0", "child_process": "^1.0.2", "cookie-parser": "^1.4.6", + "destroy": "^1.2.0", "dotenv": "^16.3.1", "eslint": "^8.45.0", "express": "^4.18.2", @@ -41,6 +42,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.14.1", - "request": "^2.88.2" + "request": "^2.88.2", + "server-destroy": "^1.0.1" } } diff --git a/server/controllers/authController.js b/server/controllers/authController.js index d65f984..7e185e1 100644 --- a/server/controllers/authController.js +++ b/server/controllers/authController.js @@ -2,9 +2,16 @@ const express = require('express'); // Express web server framework //const request = require('request'); // "Request" library //const cors = require('cors'); //const querystring = require('querystring'); -const cookieParser = require('cookie-parser'); +// const cookieParser = require('cookie-parser'); const { google } = require('googleapis'); const { OAuth2Client } = require('google-auth-library'); +const { oauth2 } = require('googleapis/build/src/apis/oauth2'); +const path = require('path'); +const http = require('http'); +const url = require('url'); +const opn = require('open'); +const destroyer = require('server-destroy'); +const destroy = require('destroy'); require('dotenv').config(); //We are requesting authorization from the user so our app can access their Google Sheets. Our app must build and send a GET request to the /authorize endpoint with the following parameters: @@ -44,13 +51,17 @@ const generateRandomString = function (length) { return text; }; -const authController = {}; +const authController = { + +}; //this middleware function creates the oauth2 client as well as the url that will be used for the consent dialog + authController.initializeAuth = async (req, res, next) => { console.log('in authController createAuthUrl'); - + console.log(process.env.GOOGLE_CLIENT_ID); + console.log(process.env.GOOGLE_CLIENT_SECRET); try { //creates a new instance of a OAuth2 client const oauth2Client = new google.auth.OAuth2( @@ -64,25 +75,25 @@ authController.initializeAuth = async (req, res, next) => { const state = generateRandomString(16); //generate a code_verifier and code_challenge - //const codes = await OAuth2Client.generateCodeVerifierAsync(); - //console.log('the codes are ', codes); + // const codes = await OAuth2Client.generateCodeVerifierAsync(); + // console.log('the codes are ', codes); //passes in an options object to generateAuthUrl - const url = oauth2Client.generateAuthUrl({ + const authUrl = oauth2Client.generateAuthUrl({ //recommended: indicates whether your app can refresh access tokens when the user is not present at the browser. default is 'online', 'offline' is if your app needs to refresh access tokens when user is not present at browser access_type: 'offline', //gets a refresh token //required: identify resources that pp can access on user's behalf scope: scopes, state: state, - // response_type: code, - // //when using generateCodeVerifierAsync, make sure to use code_challenge_method 'S256'; - // code_challenge_method: 'S256', - // //pass along the generated code challenge - // code_challenge: codes.codeChallenge, + // response_type: code, + // //when using generateCodeVerifierAsync, make sure to use code_challenge_method 'S256'; + // code_challenge_method: 'S256', + // //pass along the generated code challenge + // code_challenge: codes.codeChallenge, }); - console.log('auth url is ', url); - res.locals.authUrl = url; + console.log('auth url is ', authUrl); + res.locals.authUrl = authUrl; next(); } catch (error) { return next({ @@ -95,7 +106,49 @@ authController.initializeAuth = async (req, res, next) => { } }; -authController.handleCallback = () => {}; +authController.handleCallback = async (req, res, next) => { + //let state = req.params.state; + let code = req.params.code; + console.log('Authorization code :', code); + + const { tokens } = await oAuth2Client.getToken(code); + oauth2Client.setCredentials(tokens); + + + google.options({ auth: oauth2Client }); + + // const server = http + // .createServer(async (req, res) => { + // try { + // if (req.url.indexOf('/callback') > -1) { + // //acquire the authorization code on the request URL's search params object and extract the authorization code + // const qs = new URL(req.url, 'http://localhost:1111').searchParams; + // console.log('qs is ', qs); + // const code = qs.get('code'); + // console.log('authorization code is ', code); + // //end response cycle and close the server + // //res.end('Authentication successful! Please return to the console.'); + // server.destroy(); + + // //use authorization code to acquire tokens from authorization endpoint, passing along the generated code verifier that will match our code challenge + // const tokens = await oauth2Client.getToken({ + // code, + // //codeVerifier: codes.codeVerifier, + // }); + + //set the credentials(tokens) returned from the endpoint on the client + oauth2Client.setCredentials(tokens.tokens); + console.log(tokens); + res.locals. + } + } catch (error) {} + }) + .listen(1111, () => { + opn(authUrl, { wait: false }).then((cp) => cp.unref()); + }); + destroyer(server); + +}; // // authController.initializeAuth = (req, res, next) => { diff --git a/server/routes/authRouter.js b/server/routes/authRouter.js index 558caae..0aa133c 100644 --- a/server/routes/authRouter.js +++ b/server/routes/authRouter.js @@ -8,18 +8,16 @@ const authController = require('../controllers/authController.js'); const authRouter = express.Router(); //this request generates the authorization URL, which is returned out on the response body and provided to the front end where the user is redirected to the URL. -authRouter.use('/callback', authController.handleCallback, (req, res) => { - console.log('reached authRouter.get to handleCallback '); - return res.status(200).json(); -}); +// authRouter.post('/callback', authController.handleCallback, (req, res) => { +// console.log('reached authRouter.get to handleCallback '); +// return res.status(200).json(); +// }); -authRouter.get('/', authController.initializeAuth, (req, res) => { +authRouter.get('/', authController.makeOAuthClient, authController.initializeAuth, (req, res) => { console.log('reached authRouter.get to initialize authentication'); return res.status(200).json(res.locals.authUrl); }); - - //step 1 the initial get request from client to server // router.get('/', authController.initializeAuth, (req, res) => { // console.log('reached authentication router.get redirect'); From d8e70a920803a3b7bce75991f25f529417daa9c9 Mon Sep 17 00:00:00 2001 From: Alexandra Ashcraft Date: Wed, 19 Jul 2023 21:54:49 -0700 Subject: [PATCH 19/29] maybe have the get token working? --- client/components/Callback.js | 1 + server/controllers/authController.js | 236 +++++++++++++++++++-------- server/routes/authRouter.js | 23 ++- 3 files changed, 185 insertions(+), 75 deletions(-) diff --git a/client/components/Callback.js b/client/components/Callback.js index 8193318..8320302 100644 --- a/client/components/Callback.js +++ b/client/components/Callback.js @@ -51,6 +51,7 @@ export default function Callback() { headers: { 'Content-Type': 'Application/JSON' } + }) const permission = await response.json(); diff --git a/server/controllers/authController.js b/server/controllers/authController.js index 7e185e1..a520796 100644 --- a/server/controllers/authController.js +++ b/server/controllers/authController.js @@ -2,7 +2,7 @@ const express = require('express'); // Express web server framework //const request = require('request'); // "Request" library //const cors = require('cors'); //const querystring = require('querystring'); -// const cookieParser = require('cookie-parser'); +const cookieParser = require('cookie-parser'); const { google } = require('googleapis'); const { OAuth2Client } = require('google-auth-library'); const { oauth2 } = require('googleapis/build/src/apis/oauth2'); @@ -31,7 +31,7 @@ require('dotenv').config(); // ! SET REDIRECT URL TO 8080 TO RUN IN DEV MODE. CHANGE TO 3000 IF IN PRODUCTION -// const stateKey = 'google_auth_state'; +const stateKey = 'google_auth_state'; /** * Generates a random string containing numbers and letters @@ -51,45 +51,57 @@ const generateRandomString = function (length) { return text; }; -const authController = { - -}; +const authController = {}; //this middleware function creates the oauth2 client as well as the url that will be used for the consent dialog - -authController.initializeAuth = async (req, res, next) => { - console.log('in authController createAuthUrl'); +authController.getOAuthClient = (req, res, next) => { + console.log('in authController getOathClient'); console.log(process.env.GOOGLE_CLIENT_ID); console.log(process.env.GOOGLE_CLIENT_SECRET); + let store = []; try { - //creates a new instance of a OAuth2 client - const oauth2Client = new google.auth.OAuth2( - process.env.GOOGLE_CLIENT_ID, - process.env.GOOGLE_CLIENT_SECRET, - 'http://localhost:8080/callback' - ); + if (!store[0]) { + const oauth2Client = new google.auth.OAuth2( + process.env.GOOGLE_CLIENT_ID, + process.env.GOOGLE_CLIENT_SECRET, + 'http://localhost:8080/callback' + ); + store.push(oauth2Client); + } + const client = store[0]; + console.log(client); + res.locals.client = client; + next(); + } catch (error) { + return next({ + log: 'error in authController.getOauthClient: ', + message: { + error: 'An error occured while creating/fetching the oauth client', + error, + }, + }); + } +}; + +authController.generateAuthUrl = async (req, res, next) => { + try { + const oauth2Client = res.locals.client; console.log(oauth2Client); + const scopes = 'https://www.googleapis.com/auth/spreadsheets'; const state = generateRandomString(16); + res.cookie(stateKey, state); + console.log('state', state); + console.log('cookie: ', res.cookie[stateKey]); - //generate a code_verifier and code_challenge - // const codes = await OAuth2Client.generateCodeVerifierAsync(); - // console.log('the codes are ', codes); - - //passes in an options object to generateAuthUrl const authUrl = oauth2Client.generateAuthUrl({ //recommended: indicates whether your app can refresh access tokens when the user is not present at the browser. default is 'online', 'offline' is if your app needs to refresh access tokens when user is not present at browser access_type: 'offline', //gets a refresh token //required: identify resources that pp can access on user's behalf scope: scopes, state: state, - // response_type: code, - // //when using generateCodeVerifierAsync, make sure to use code_challenge_method 'S256'; - // code_challenge_method: 'S256', - // //pass along the generated code challenge - // code_challenge: codes.codeChallenge, }); console.log('auth url is ', authUrl); @@ -97,9 +109,9 @@ authController.initializeAuth = async (req, res, next) => { next(); } catch (error) { return next({ - log: 'error in authController.createAuthUrl: ', + log: 'error in authController.generateAuthUrl: ', message: { - error: 'An error occured while redirecting to Google ', + error: 'An error occured while creating auth url', error, }, }); @@ -107,49 +119,141 @@ authController.initializeAuth = async (req, res, next) => { }; authController.handleCallback = async (req, res, next) => { - //let state = req.params.state; - let code = req.params.code; - console.log('Authorization code :', code); - - const { tokens } = await oAuth2Client.getToken(code); - oauth2Client.setCredentials(tokens); - - - google.options({ auth: oauth2Client }); - - // const server = http - // .createServer(async (req, res) => { - // try { - // if (req.url.indexOf('/callback') > -1) { - // //acquire the authorization code on the request URL's search params object and extract the authorization code - // const qs = new URL(req.url, 'http://localhost:1111').searchParams; - // console.log('qs is ', qs); - // const code = qs.get('code'); - // console.log('authorization code is ', code); - // //end response cycle and close the server - // //res.end('Authentication successful! Please return to the console.'); - // server.destroy(); - - // //use authorization code to acquire tokens from authorization endpoint, passing along the generated code verifier that will match our code challenge - // const tokens = await oauth2Client.getToken({ - // code, - // //codeVerifier: codes.codeVerifier, - // }); - - //set the credentials(tokens) returned from the endpoint on the client - oauth2Client.setCredentials(tokens.tokens); - console.log(tokens); - res.locals. - } - } catch (error) {} - }) - .listen(1111, () => { - opn(authUrl, { wait: false }).then((cp) => cp.unref()); - }); - destroyer(server); + // try { + // const state = req.query.state || null; + // console.log('state returned from spotify: ', state); + + // if (state === null || state !== storedState) { + + try { + // const storedState = req.cookies ? req.cookies[stateKey] : null; + // const state = req.query.state || null; + // console.log(state); + // console.log(storedState); + // if (state === null || state !== storedState) + // return next({ + // log: 'State did not match, error found', + // message: { error: 'An error occurred due to state mismatch' }, + // }); + + const oauth2Client = res.locals.client; + console.log(oauth2Client); + console.log(req.query); + let code = req.query.code; + console.log('Authorization code :', code); + + //!Wednesday night: this getToken is not working. when await is removed it properly console.logs a promise. once it did return the tokens outside of the deconstructed obj so i am assuming it has something to do with the number of requests in a span of time + const { tokens } = await oauth2Client.getToken(code); + //const { tokens } = await oauth2Client.getToken(code); + console.log(tokens); + //have not yet been able to test this. passing in tokens or tokens.tokens + oauth2Client.setCredentials(tokens); + console.log(oauth2Client.credentials); + + res.locals.permission = 'granted'; + next(); + } catch (error) { + return next({ + log: 'error in authController.handleCallback', + message: { + error: 'An error occured while handling callback', + error, + }, + }); + } }; +// authController.initializeAuth = async (req, res, next) => { +// console.log('in authController createAuthUrl'); +// console.log(process.env.GOOGLE_CLIENT_ID); +// console.log(process.env.GOOGLE_CLIENT_SECRET); +// try { +// //creates a new instance of a OAuth2 client +// const oauth2Client = new google.auth.OAuth2( +// process.env.GOOGLE_CLIENT_ID, +// process.env.GOOGLE_CLIENT_SECRET, +// 'http://localhost:8080/callback' +// ); + +// console.log(oauth2Client); +// const scopes = 'https://www.googleapis.com/auth/spreadsheets'; +// const state = generateRandomString(16); + +// //generate a code_verifier and code_challenge +// // const codes = await OAuth2Client.generateCodeVerifierAsync(); +// // console.log('the codes are ', codes); + +// //passes in an options object to generateAuthUrl +// const authUrl = oauth2Client.generateAuthUrl({ +// //recommended: indicates whether your app can refresh access tokens when the user is not present at the browser. default is 'online', 'offline' is if your app needs to refresh access tokens when user is not present at browser +// access_type: 'offline', //gets a refresh token +// //required: identify resources that pp can access on user's behalf +// scope: scopes, +// state: state, +// // response_type: code, +// // //when using generateCodeVerifierAsync, make sure to use code_challenge_method 'S256'; +// // code_challenge_method: 'S256', +// // //pass along the generated code challenge +// // code_challenge: codes.codeChallenge, +// }); + +// console.log('auth url is ', authUrl); +// res.locals.authUrl = authUrl; +// next(); +// } catch (error) { +// return next({ +// log: 'error in authController.createAuthUrl: ', +// message: { +// error: 'An error occured while redirecting to Google ', +// error, +// }, +// }); +// } +// }; +// authController.handleCallback = async (req, res, next) => { +// //let state = req.params.state; +// let code = req.params.code; +// console.log('Authorization code :', code); + +// const { tokens } = await oAuth2Client.getToken(code); +// oauth2Client.setCredentials(tokens); + +// google.options({ auth: oauth2Client }); + +// // const server = http +// // .createServer(async (req, res) => { +// // try { +// // if (req.url.indexOf('/callback') > -1) { +// // //acquire the authorization code on the request URL's search params object and extract the authorization code +// // const qs = new URL(req.url, 'http://localhost:1111').searchParams; +// // console.log('qs is ', qs); +// // const code = qs.get('code'); +// // console.log('authorization code is ', code); +// // //end response cycle and close the server +// // //res.end('Authentication successful! Please return to the console.'); +// // server.destroy(); + +// // //use authorization code to acquire tokens from authorization endpoint, passing along the generated code verifier that will match our code challenge +// // const tokens = await oauth2Client.getToken({ +// // code, +// // //codeVerifier: codes.codeVerifier, +// // }); + +// //set the credentials(tokens) returned from the endpoint on the client +// oauth2Client.setCredentials(tokens.tokens); +// console.log(tokens); +// res.locals. +// } +// } catch (error) {} +// }) +// .listen(1111, () => { +// opn(authUrl, { wait: false }).then((cp) => cp.unref()); +// }); +// destroyer(server); + +// }; + // // authController.initializeAuth = (req, res, next) => { // try { diff --git a/server/routes/authRouter.js b/server/routes/authRouter.js index 0aa133c..afad7f4 100644 --- a/server/routes/authRouter.js +++ b/server/routes/authRouter.js @@ -7,17 +7,22 @@ const authController = require('../controllers/authController.js'); const authRouter = express.Router(); -//this request generates the authorization URL, which is returned out on the response body and provided to the front end where the user is redirected to the URL. -// authRouter.post('/callback', authController.handleCallback, (req, res) => { -// console.log('reached authRouter.get to handleCallback '); -// return res.status(200).json(); -// }); - -authRouter.get('/', authController.makeOAuthClient, authController.initializeAuth, (req, res) => { - console.log('reached authRouter.get to initialize authentication'); - return res.status(200).json(res.locals.authUrl); +authRouter.post('/callback', authController.getOAuthClient, authController.handleCallback, (req, res) => { + console.log('reached authRouter.get to handleCallback '); + return res.status(200).json(); }); +//this request generates the authorization URL, which is returned out on the response body and provided to the front end where the user is redirected to the URL. +authRouter.get( + '/', + authController.getOAuthClient, + authController.generateAuthUrl, + (req, res) => { + console.log('reached authRouter.get to initialize authentication'); + return res.status(200).json(res.locals.authUrl); + } +); + //step 1 the initial get request from client to server // router.get('/', authController.initializeAuth, (req, res) => { // console.log('reached authentication router.get redirect'); From 484e551bb5d463e5b81081fc96e6f0599ad00759 Mon Sep 17 00:00:00 2001 From: gschussler Date: Thu, 20 Jul 2023 07:44:48 -0500 Subject: [PATCH 20/29] cleaned up route testing --- __tests__/routes.test.js | 16 ++++++++++++++-- __tests__/sqlController.test.js | 0 2 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 __tests__/sqlController.test.js diff --git a/__tests__/routes.test.js b/__tests__/routes.test.js index 8baf9d6..f012502 100644 --- a/__tests__/routes.test.js +++ b/__tests__/routes.test.js @@ -7,8 +7,7 @@ const app = require('../server/server'); // Google API Authentication is essential to server-side operations in the application, but using Jest to mock that authentication here seemed to be unnecessary and inefficient. Google API docs will be of more help - -describe("server endpoints", () => { +xdescribe("server startup", () => { let server; beforeAll(() => { @@ -28,4 +27,17 @@ describe("server endpoints", () => { expect(res.status).toBe(404); expect(res.text).toBe('Not Found'); }) + + it('should catch all invalid routes and return a status 404', async () => { + const res = await request(app).get('/api/invalid-route'); + expect(res.status).toBe(404); + }) +}) + +describe('/api', () => { + describe('POST', () => { + it('responds with 200 status and application/json content type', async () => { + return request(app).post('/api').expect('Content-Type', /application\/json/).expect(200); + }) + }) }) \ No newline at end of file diff --git a/__tests__/sqlController.test.js b/__tests__/sqlController.test.js new file mode 100644 index 0000000..e69de29 From ed3d935748fcb6836d8c8749f9d1217e2e255b98 Mon Sep 17 00:00:00 2001 From: gschussler Date: Thu, 20 Jul 2023 07:54:46 -0500 Subject: [PATCH 21/29] added to .gitignore --- .gitignore | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index fc64bc3..71f6408 100644 --- a/.gitignore +++ b/.gitignore @@ -131,5 +131,5 @@ dist .yarn/install-state.gz .pnp.* -# environment variables -.env \ No newline at end of file +# MacOS files +.DS_Store \ No newline at end of file From fcd148bb34ffa49c327cac9d532d0c83bd5cce97 Mon Sep 17 00:00:00 2001 From: tristanyukio Date: Thu, 20 Jul 2023 13:06:46 -0400 Subject: [PATCH 22/29] updated version 1:06 pm before react --- server/controllers/gSheetsController.js | 185 +++++++++--------------- server/controllers/sqlController.js | 19 +++ server/routes/gSheetsRoutes.js | 3 +- 3 files changed, 92 insertions(+), 115 deletions(-) diff --git a/server/controllers/gSheetsController.js b/server/controllers/gSheetsController.js index dbe8362..14d948b 100644 --- a/server/controllers/gSheetsController.js +++ b/server/controllers/gSheetsController.js @@ -96,7 +96,7 @@ gSheetsController.createSheet = async (req, res, next) => { const permission = { type: 'user', role: 'writer', - emailAddress: 'yukiokrause@gmail.com', // Please set the email address you want to give the permission. + emailAddress: 'LASH211@gmail.com', // Please set the email address you want to give the permission. }; const permissionResponse = await drive.permissions.create({ auth: auth, //adding this and now we have a different error "insufficient permission" @@ -139,133 +139,52 @@ gSheetsController.createSheet = async (req, res, next) => { //populates sheet with DB data //at this point i think we can get the new sheet URL and next() the URL to the router gSheetsController.updateSheet = async (req, res, next) => { + console.log('entered update sheet') const auth = res.locals.auth; - console.log('this is auth', auth); - - // var ss = SpreadsheetApp.openById(res.locals.sheetId); - // // Logger.log(ss.getName()); - // ss.insertSheet('My New Sheet'); - - // The code below creates a new spreadsheet "Finances" with 50 rows and 5 columns and logs the - // URL for it - // var ssNew = SpreadsheetApp.create("Finances", 50, 5); - // Logger.log(ssNew.getUrl()); - // const test = {}; - // const data = {[ - // { - // majorDimension: 'COLUMNS', - // range: 'Sheet1!A4:C4', - // values: [['3'], ['OR3'], ['paid']], - // }, - // ], - // valueInputOption: 'USER_ENTERED',} - - // const json = JSON.stringify(data) - // console.log(json) - - // const request = { - // // The spreadsheet to apply the updates to. - // spreadsheetId: res.locals.sheetId, // TODO: Update placeholder value. - // auth: auth, - // resource: { - // // A list of updates to apply to the spreadsheet. - // // Requests will be applied in the order they are specified. - // // If any request is not valid, no requests will be applied. - - // "updatedRange": "Sheet1!A4", - // "updatedData": { - // "range": "Sheet1!A4:C4", - // "majorDimension": "ROWS" - - // } - // // // TODO: Add desired properties to the request body. - // }, - // }; +const data = res.locals.value + +const columnTitle = Object.keys(data[0]) +//console.log(columnTitle) - // const request = { - // spreadsheetId: '180Ir80nuDycvrQSYKbVJKdhGxTtM9DQ8M2HbxiJg5Ps', - // auth: auth, - // resource: { - // data: [ - // { - // updatedRange: 'Sheet1!A4', - // updatedRows: 1, - // updatedColumns: 1, - // updatedCells: 1, - // updatedData: { - // range: 'Sheet1!A4:C4', - // majorDimension: 'ROWS', - // values: [['123423']], - // }, - // }, - // ], - // }, - // }; - const request = { - spreadsheetId: '180Ir80nuDycvrQSYKbVJKdhGxTtM9DQ8M2HbxiJg5Ps', - updatedRange: 'Sheet1!A4', - updatedRows: 1, - updatedColumns: 1, - updatedCells: 1, - updatedData: { - range: 'Sheet1!A4:C4', - majorDimension: 'ROWS', - values: [['123423']], - }, - auth: authClient, - }; - - // { - // "spreadsheetId": "180Ir80nuDycvrQSYKbVJKdhGxTtM9DQ8M2HbxiJg5Ps", - // "updatedRange": "Sheet1!A4", - // "updatedRows": 1, - // "updatedColumns": 1, - // "updatedCells": 1, - // "updatedData": { - // "range": "Sheet1!A4:C4", - // "majorDimension": "ROWS", - // "values": [ - // [ - // "123423" - // ] - // ] - // } - // } +const row0 = Object.values(data[0]) +//console.log(row0) - // async function main () { - // - // const request = { - // // The ID of the spreadsheet to update. - // spreadsheetId: 'my-spreadsheet-id', // TODO: Update placeholder value. +const restOftable = [...columnTitle, ...row0] - // // The A1 notation of the values to update. - // range: 'my-range', // TODO: Update placeholder value. +for (let i = 1; i { // } // } + // { + // "spreadsheetId": "180Ir80nuDycvrQSYKbVJKdhGxTtM9DQ8M2HbxiJg5Ps", + // "updatedRange": "Sheet1!A4", + // "updatedRows": 1, + // "updatedColumns": 1, + // "updatedCells": 1, + // "updatedData": { + // "range": "Sheet1!A4:C4", + // "majorDimension": "ROWS", + // "values": [ + // [ + // "123423" + // ] + // ] + // } + // } + + // async function main () { + // + // const request = { + // // The ID of the spreadsheet to update. + // spreadsheetId: 'my-spreadsheet-id', // TODO: Update placeholder value. + + // // The A1 notation of the values to update. + // range: 'my-range', // TODO: Update placeholder value. + + // // How the input data should be interpreted. + // valueInputOption: '', // TODO: Update placeholder value. + + // resource: { + // // TODO: Add desired properties to the request body. All existing properties + // // will be replaced. + // }, + + // auth: authClient, + // }; + + // }; module.exports = gSheetsController; // Set range diff --git a/server/controllers/sqlController.js b/server/controllers/sqlController.js index f35fdc3..3322436 100644 --- a/server/controllers/sqlController.js +++ b/server/controllers/sqlController.js @@ -93,4 +93,23 @@ sqlController.createTable = async (req, res, next) => { return next(); }; +sqlController.readTable = async (req, res, next) => { + +try { + const text = `SELECT * FROM public.sheet1`; + const data = await db.query(text) + //console.log('here is the data', data.rows) + res.locals.value = data.rows + next() +} +catch (err) { + console.log(err) +} +} + + module.exports = sqlController; + + +// pool.query(text1) +// .then(result => console.log(result)) \ No newline at end of file diff --git a/server/routes/gSheetsRoutes.js b/server/routes/gSheetsRoutes.js index 9b94496..16bdf8b 100644 --- a/server/routes/gSheetsRoutes.js +++ b/server/routes/gSheetsRoutes.js @@ -21,7 +21,8 @@ router.post( router.post( '/new', sqlController.linkDb, //establish connection to SQL database - gSheetsController.createSheet, //creates a new sheet + sqlController.readTable, //reads data from SQL + // gSheetsController.createSheet, //creates a new sheet gSheetsController.updateSheet, //make a get request to populates the sheet with DB (req, res) => { res.status(200).json(res.locals.data); //send new sheet URL to user From 85a1f2e063f1deebd65e8e6339004c1e2df05b91 Mon Sep 17 00:00:00 2001 From: tristanyukio Date: Thu, 20 Jul 2023 13:30:27 -0400 Subject: [PATCH 23/29] updated before lunch --- client/App.jsx | 6 +- client/components/Home.js | 14 +++ client/components/Reverse.js | 126 ++++++++++++++++++++++++ server/controllers/gSheetsController.js | 4 +- 4 files changed, 147 insertions(+), 3 deletions(-) create mode 100644 client/components/Home.js create mode 100644 client/components/Reverse.js diff --git a/client/App.jsx b/client/App.jsx index 6bd1722..33b39d6 100644 --- a/client/App.jsx +++ b/client/App.jsx @@ -5,6 +5,8 @@ import About from './components/About.js' import ReadMe from './components/ReadMe.js' import Output from './components/Output.js' import Form from './components/Form.js' +import Home from './components/Home.js' +import Reverse from './components/Reverse.js' import './styles/LandingPage.scss' @@ -14,7 +16,9 @@ const App = () => {
- }/> + }/> + }/> + }/> }/> }/> }/> diff --git a/client/components/Home.js b/client/components/Home.js new file mode 100644 index 0000000..3aa5955 --- /dev/null +++ b/client/components/Home.js @@ -0,0 +1,14 @@ +import React from 'react' +import { Link } from "react-router-dom"; + +const Home = () => { + return ( +
+ + +
+ ) +} + + +export default Home; \ No newline at end of file diff --git a/client/components/Reverse.js b/client/components/Reverse.js new file mode 100644 index 0000000..8ba2323 --- /dev/null +++ b/client/components/Reverse.js @@ -0,0 +1,126 @@ +import React, { useState, useEffect } from 'react' +import GoogleSheetsUrl from './GoogleSheetsUrl'; +import DataRange from './DataRange'; +import SqlDatabaseUrl from './SqlDatabaseUrl'; +import PrimaryKeyAndName from './PrimaryKeyAndName'; + +const Form = props => { + const [page, setPage] = useState(0); + const [formData, setFormData] = useState({ + googleSheetsUrl: "", + dataRange: "", + sqlDatabaseUrl: "", + primaryKey: "", + columnName: "" + }); + const FormTitles = ["Please Enter Google Sheets URL", "Please Enter Data Range for Google Sheets", "Please Enter SQL Database URL", "Please Enter Primary Key and Column Name"]; + const [googleSheetsErrorMessage, setGoogleSheetsErrorMessage] = useState(); + const [successClassName, setSuccessClassName] = useState("submitSuccessHide"); + + const [submitDisabled, setSubmitDisabled] = useState(true); + + useEffect(()=> { + const {googleSheetsUrl, dataRange, sqlDatabaseUrl, primaryKey, columnName} = formData; + if (googleSheetsUrl.startsWith('https://docs.google.com/spreadsheets/') && + dataRange.startsWith('Sheet') && + sqlDatabaseUrl.startsWith('postgres://') && primaryKey && columnName + ) + setSubmitDisabled(false); + else { + if (!submitDisabled) setSubmitDisabled(true); + } + }, [formData]) + + const personalPage = () => { + if(page === 0) { + return + } else if(page === 1) { + return + } else if(page === 2) { + return + } else if(page === 3) { + return + } + } + + const handleClick = e => { + const url = '/api' + fetch(url, { + method: 'POST', + body: JSON.stringify({ + googleSheetsUrl: formData.googleSheetsUrl, + dataRange: formData.dataRange, + sqlDatabaseUrl: formData.sqlDatabaseUrl, + primaryKey: formData.primaryKey, + columnName: formData.columnName + }), + headers: { + 'Content-Type': 'application/json' + } + }) + + } + + return ( +
+
+
+

Successfully Submitted

+
+
+

{FormTitles[page]}

+
+
+ {personalPage()} +
+
+ + +
+
+

{page + 1}/4

+
+
+

{googleSheetsErrorMessage}

+
+
+
+ ) +} + +export default Form \ No newline at end of file diff --git a/server/controllers/gSheetsController.js b/server/controllers/gSheetsController.js index 14d948b..ce6f132 100644 --- a/server/controllers/gSheetsController.js +++ b/server/controllers/gSheetsController.js @@ -149,8 +149,8 @@ const columnTitle = Object.keys(data[0]) const row0 = Object.values(data[0]) //console.log(row0) -const restOftable = [...columnTitle, ...row0] - +const restOftable = [] +restOftable.push(columnTitle, row0) for (let i = 1; i Date: Thu, 20 Jul 2023 14:08:52 -0500 Subject: [PATCH 24/29] reverted a few steps to keep redirect working --- client/components/Signin.js | 1 - package-lock.json | 29 +++++++++++++++++++++++++++- package.json | 4 +++- server/controllers/authController.js | 2 +- 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/client/components/Signin.js b/client/components/Signin.js index 889e8ab..013b3e7 100644 --- a/client/components/Signin.js +++ b/client/components/Signin.js @@ -37,7 +37,6 @@ export default function Signin(){ //redirect user to google with the supplied Url const handleRedirect = () => { - window.location.replace(url) } diff --git a/package-lock.json b/package-lock.json index 536ebbb..d5cd549 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@googleapis/docs": "^2.0.1", "axios": "^1.4.0", "child_process": "^1.0.2", + "cookie-parser": "^1.4.6", "dotenv": "^16.3.1", "eslint": "^8.45.0", "express": "^4.18.2", @@ -22,7 +23,8 @@ "pg-format": "^1.0.4", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-router-dom": "^6.14.2" + "react-router-dom": "^6.14.2", + "server-destroy": "^1.0.1" }, "devDependencies": { "@babel/core": "^7.22.9", @@ -4442,6 +4444,26 @@ "node": ">= 0.6" } }, + "node_modules/cookie-parser": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", + "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", + "dependencies": { + "cookie": "0.4.1", + "cookie-signature": "1.0.6" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/cookie-parser/node_modules/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", @@ -10485,6 +10507,11 @@ "node": ">= 0.8.0" } }, + "node_modules/server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==" + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", diff --git a/package.json b/package.json index d2a33e0..10d6151 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "@googleapis/docs": "^2.0.1", "axios": "^1.4.0", "child_process": "^1.0.2", + "cookie-parser": "^1.4.6", "dotenv": "^16.3.1", "eslint": "^8.45.0", "express": "^4.18.2", @@ -45,6 +46,7 @@ "pg-format": "^1.0.4", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-router-dom": "^6.14.2" + "react-router-dom": "^6.14.2", + "server-destroy": "^1.0.1" } } diff --git a/server/controllers/authController.js b/server/controllers/authController.js index a520796..b92471b 100644 --- a/server/controllers/authController.js +++ b/server/controllers/authController.js @@ -65,7 +65,7 @@ authController.getOAuthClient = (req, res, next) => { const oauth2Client = new google.auth.OAuth2( process.env.GOOGLE_CLIENT_ID, process.env.GOOGLE_CLIENT_SECRET, - 'http://localhost:8080/callback' + 'http://localhost:8080/api/authentication/callback' ); store.push(oauth2Client); } From b1c10d954a8dfdc8ad6bf03f5b41cf9c5a2fd262 Mon Sep 17 00:00:00 2001 From: gschussler Date: Thu, 20 Jul 2023 14:26:59 -0500 Subject: [PATCH 25/29] authController update --- server/controllers/authController.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/controllers/authController.js b/server/controllers/authController.js index b92471b..a520796 100644 --- a/server/controllers/authController.js +++ b/server/controllers/authController.js @@ -65,7 +65,7 @@ authController.getOAuthClient = (req, res, next) => { const oauth2Client = new google.auth.OAuth2( process.env.GOOGLE_CLIENT_ID, process.env.GOOGLE_CLIENT_SECRET, - 'http://localhost:8080/api/authentication/callback' + 'http://localhost:8080/callback' ); store.push(oauth2Client); } From e9fa90c1e8eea5160b5734115b947621a9784217 Mon Sep 17 00:00:00 2001 From: gschussler Date: Thu, 20 Jul 2023 16:10:05 -0500 Subject: [PATCH 26/29] able to get access and refresh tokens, need to finish auth for user --- client/components/Callback.js | 4 ++-- server/controllers/authController.js | 7 ++++--- server/routes/authRouter.js | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/client/components/Callback.js b/client/components/Callback.js index 8320302..bdd9d6a 100644 --- a/client/components/Callback.js +++ b/client/components/Callback.js @@ -1,5 +1,5 @@ import React, { useEffect, useState } from 'react'; -import { redirect } from 'react-router-dom'; +import { redirect, useParams } from 'react-router-dom'; //once a user has given permissions on the consent page, if the user's credentials were authenticated by Google, Google redirects the user to the redirect URL we provided ('/callback') along with an authorization code query parameter on the URL //GET /oauthcallback?code={authorizationCode} @@ -55,7 +55,7 @@ export default function Callback() { }) const permission = await response.json(); - if (permission === 'granted'){ + if (permission.permissions === 'granted' && permission.access_token && permission.refresh_token){ console.log('login successful') return redirect('/form'); } diff --git a/server/controllers/authController.js b/server/controllers/authController.js index a520796..e0791e2 100644 --- a/server/controllers/authController.js +++ b/server/controllers/authController.js @@ -52,14 +52,13 @@ const generateRandomString = function (length) { }; const authController = {}; - +let store = []; //this middleware function creates the oauth2 client as well as the url that will be used for the consent dialog authController.getOAuthClient = (req, res, next) => { console.log('in authController getOathClient'); console.log(process.env.GOOGLE_CLIENT_ID); console.log(process.env.GOOGLE_CLIENT_SECRET); - let store = []; try { if (!store[0]) { const oauth2Client = new google.auth.OAuth2( @@ -143,7 +142,9 @@ authController.handleCallback = async (req, res, next) => { console.log('Authorization code :', code); //!Wednesday night: this getToken is not working. when await is removed it properly console.logs a promise. once it did return the tokens outside of the deconstructed obj so i am assuming it has something to do with the number of requests in a span of time + console.log('1'); const { tokens } = await oauth2Client.getToken(code); + console.log('2') //const { tokens } = await oauth2Client.getToken(code); console.log(tokens); @@ -151,7 +152,7 @@ authController.handleCallback = async (req, res, next) => { oauth2Client.setCredentials(tokens); console.log(oauth2Client.credentials); - res.locals.permission = 'granted'; + res.locals.credentials = oauth2Client.credentials; next(); } catch (error) { return next({ diff --git a/server/routes/authRouter.js b/server/routes/authRouter.js index afad7f4..becb831 100644 --- a/server/routes/authRouter.js +++ b/server/routes/authRouter.js @@ -9,7 +9,7 @@ const authRouter = express.Router(); authRouter.post('/callback', authController.getOAuthClient, authController.handleCallback, (req, res) => { console.log('reached authRouter.get to handleCallback '); - return res.status(200).json(); + return res.status(200).json(res.locals.credentials); }); //this request generates the authorization URL, which is returned out on the response body and provided to the front end where the user is redirected to the URL. From cb0afb6f51e7395c9a127566574a9752a56ff8fa Mon Sep 17 00:00:00 2001 From: tristanyukio Date: Thu, 20 Jul 2023 18:18:47 -0400 Subject: [PATCH 27/29] everything working except for quota --- client/components/Email.js | 17 ++++++ client/components/Reverse.js | 71 ++++++++++++++----------- client/components/TableName.js | 19 +++++++ client/components/Url.js | 17 ++++++ server/controllers/gSheetsController.js | 43 +++++++++++---- server/controllers/sqlController.js | 5 +- server/routes/gSheetsRoutes.js | 2 +- 7 files changed, 130 insertions(+), 44 deletions(-) create mode 100644 client/components/Email.js create mode 100644 client/components/TableName.js create mode 100644 client/components/Url.js diff --git a/client/components/Email.js b/client/components/Email.js new file mode 100644 index 0000000..2c89131 --- /dev/null +++ b/client/components/Email.js @@ -0,0 +1,17 @@ +import React from 'react' + +const Email = ({formData, setFormData}) => { + return ( +
+ { + setFormData({ ...formData, email: e.target.value }) + }} + > +
+ ) +} + +export default Email diff --git a/client/components/Reverse.js b/client/components/Reverse.js index 8ba2323..9a4ca28 100644 --- a/client/components/Reverse.js +++ b/client/components/Reverse.js @@ -3,81 +3,90 @@ import GoogleSheetsUrl from './GoogleSheetsUrl'; import DataRange from './DataRange'; import SqlDatabaseUrl from './SqlDatabaseUrl'; import PrimaryKeyAndName from './PrimaryKeyAndName'; +import TableName from './TableName'; +import Email from './Email'; +import Url from './Url'; const Form = props => { const [page, setPage] = useState(0); const [formData, setFormData] = useState({ - googleSheetsUrl: "", - dataRange: "", sqlDatabaseUrl: "", - primaryKey: "", - columnName: "" + tableName: "", + email: "", }); - const FormTitles = ["Please Enter Google Sheets URL", "Please Enter Data Range for Google Sheets", "Please Enter SQL Database URL", "Please Enter Primary Key and Column Name"]; + const FormTitles = ["Please Enter SQL Database URL", "Please Enter Table Name From SQL Database", "Please Enter Email Address", "Here Is Your Google Sheet:"]; + const [googleSheetsErrorMessage, setGoogleSheetsErrorMessage] = useState(); const [successClassName, setSuccessClassName] = useState("submitSuccessHide"); - const [submitDisabled, setSubmitDisabled] = useState(true); + const [updatedURL, setUpdatedURL] = useState('') useEffect(()=> { - const {googleSheetsUrl, dataRange, sqlDatabaseUrl, primaryKey, columnName} = formData; - if (googleSheetsUrl.startsWith('https://docs.google.com/spreadsheets/') && - dataRange.startsWith('Sheet') && - sqlDatabaseUrl.startsWith('postgres://') && primaryKey && columnName - ) - setSubmitDisabled(false); - else { + const {sqlDatabaseUrl, tableName, email} = formData; + if (sqlDatabaseUrl.startsWith('postgres://') && tableName && email){ + setSubmitDisabled(false); + } else { if (!submitDisabled) setSubmitDisabled(true); } }, [formData]) const personalPage = () => { if(page === 0) { - return } else if(page === 1) { - return } else if(page === 2) { - return + } else if(page === 3) { - return } } const handleClick = e => { - const url = '/api' + const url = '/api/new' + console.log('entered post for backend') fetch(url, { method: 'POST', body: JSON.stringify({ - googleSheetsUrl: formData.googleSheetsUrl, - dataRange: formData.dataRange, sqlDatabaseUrl: formData.sqlDatabaseUrl, - primaryKey: formData.primaryKey, - columnName: formData.columnName + tableName: formData.tableName, + email: formData.email, }), headers: { 'Content-Type': 'application/json' } - }) - - } + } + ) + // .then(response => { + // console.log('entered response', response) + // // response.json() + // }) + // .then(data => { + // console.log('data jsoned', data) + // setUpdatedURL(data) + } + + return (
-

Successfully Submitted

+

{FormTitles[page]}

@@ -102,15 +111,17 @@ const Form = props => { (page === FormTitles.length -1 ) && (submitDisabled) } onClick={() => { - if(page === 3) { + + if(page === 2) { {handleClick()} setSuccessClassName("submitSuccess"); + setPage((currPage) => currPage += 1) } else { setPage((currPage) => currPage += 1) setSuccessClassName("submitSuccessHide"); } } - }>{page === 3 ? 'Submit' : 'Next'} + }>{page === 2 ? 'Submit' : 'Next'}

{page + 1}/4

diff --git a/client/components/TableName.js b/client/components/TableName.js new file mode 100644 index 0000000..f26626f --- /dev/null +++ b/client/components/TableName.js @@ -0,0 +1,19 @@ +import React from 'react' + +const TableName = ({formData, setFormData}) => { + return ( +
+ { + setFormData({ ...formData, tableName: e.target.value }) + }} + > +
+ ) +} + +export default TableName + + diff --git a/client/components/Url.js b/client/components/Url.js new file mode 100644 index 0000000..1e3f5df --- /dev/null +++ b/client/components/Url.js @@ -0,0 +1,17 @@ +import React from 'react' + +const Url = ({updatedURL}) => { + console.log('updatedURL', updatedURL) + + + + return ( +
+ ) +} + + +export default Url diff --git a/server/controllers/gSheetsController.js b/server/controllers/gSheetsController.js index ce6f132..9550267 100644 --- a/server/controllers/gSheetsController.js +++ b/server/controllers/gSheetsController.js @@ -80,24 +80,31 @@ gSheetsController.createSheet = async (req, res, next) => { const request = { auth: auth, }; + const { email } = req.body; + console.log('email is here', email) + console.log('req body', req) try { // console.log('hello world'); // console.log('request!!!!!!!!!!', request); - const response = (await sheets.spreadsheets.create(request)).data; + //COMMENT BACK IN WHEN READY------ + const response = (await sheets.spreadsheets.create(request)).data; //spreadsheet id console.log(response); // const spreadsheetID = sheets.spreadsheets.data.spreadsheetId; const spreadID = response.spreadsheetId; res.locals.sheetId = spreadID; + const sheetURL = response.spreadsheetUrl; + res.locals.sheetURL = sheetURL; // console.log(spreadsheetID); //create object with role and type const permission = { type: 'user', role: 'writer', - emailAddress: 'LASH211@gmail.com', // Please set the email address you want to give the permission. + emailAddress: email, // Please set the email address you want to give the permission. }; + //COMMENT BACK IN WHEN READY------- const permissionResponse = await drive.permissions.create({ auth: auth, //adding this and now we have a different error "insufficient permission" resource: permission, @@ -107,15 +114,15 @@ gSheetsController.createSheet = async (req, res, next) => { /////I THINK ITS WORKING!!!! but im going to change it to my email ..... ///// IT WORKS!!!!!! - - console.log('THIS IS JUST RES, NO STRINGIFY', response); + next(); + //console.log('THIS IS JUST RES, NO STRINGIFY', response); //console.log(JSON.stringify('THIS IS THE RESPONSE!!!!!', response, null, 2)); } catch (err) { console.log(err, 'ERROR in createSheet'); next(err); } - next(); + }; // const response = await gsapi.spreadsheets.create(request_); @@ -141,11 +148,19 @@ gSheetsController.createSheet = async (req, res, next) => { gSheetsController.updateSheet = async (req, res, next) => { console.log('entered update sheet') const auth = res.locals.auth; -const data = res.locals.value - -const columnTitle = Object.keys(data[0]) + const data = res.locals.value + const sheetID = res.locals.sheetId +// MOCK sheet ID: +mockSheetID = '180Ir80nuDycvrQSYKbVJKdhGxTtM9DQ8M2HbxiJg5Ps' //console.log(columnTitle) + +// sqlDatabaseUrl: formData.sqlDatabaseUrl, +// tableName: formData.tableName, +// email: formData.email, + + +const columnTitle = Object.keys(data[0]) const row0 = Object.values(data[0]) //console.log(row0) @@ -156,17 +171,22 @@ for (let i = 1; i { }; sqlController.readTable = async (req, res, next) => { + const {tableName} = req.body; try { - const text = `SELECT * FROM public.sheet1`; + const text = `SELECT * FROM ${tableName}`; const data = await db.query(text) - //console.log('here is the data', data.rows) + console.log('here is the data', data.rows) res.locals.value = data.rows next() } diff --git a/server/routes/gSheetsRoutes.js b/server/routes/gSheetsRoutes.js index 16bdf8b..24e9f38 100644 --- a/server/routes/gSheetsRoutes.js +++ b/server/routes/gSheetsRoutes.js @@ -25,7 +25,7 @@ router.post( // gSheetsController.createSheet, //creates a new sheet gSheetsController.updateSheet, //make a get request to populates the sheet with DB (req, res) => { - res.status(200).json(res.locals.data); //send new sheet URL to user + res.status(200).json(res.locals.sheetURL); //send new sheet URL to user } ); From e8f03b2c40130824badca8b6c31374b2021e2b4d Mon Sep 17 00:00:00 2001 From: gschussler Date: Thu, 20 Jul 2023 17:32:14 -0500 Subject: [PATCH 28/29] trying to store tokens and redirect user to the right page --- client/components/Callback.js | 17 +++++++++-------- server/controllers/authController.js | 27 +++++++++++++++++++-------- server/routes/authRouter.js | 4 ++-- 3 files changed, 30 insertions(+), 18 deletions(-) diff --git a/client/components/Callback.js b/client/components/Callback.js index bdd9d6a..5f98082 100644 --- a/client/components/Callback.js +++ b/client/components/Callback.js @@ -17,7 +17,7 @@ export default function Callback() { const index = href.indexOf('callback'); //append authorization code to the path for the GET request for user's access/refresh tokens const path = '/api/authentication/' + href.slice(index); - console.log('path: ', path); + // console.log('path: ', path); //use authentication code in request query to get access/refresh tokens from Google // const getTokens = async () => { @@ -49,16 +49,17 @@ export default function Callback() { const response = await fetch(path, { method: 'POST', headers: { - 'Content-Type': 'Application/JSON' + 'Content-Type': 'application/json' } }) - const permission = await response.json(); - - if (permission.permissions === 'granted' && permission.access_token && permission.refresh_token){ - console.log('login successful') - return redirect('/form'); - } + // const permission = await response.json(); + + // console.log('in callback component') + // if (permission.status === 200){ + // console.log('login successful') + // return redirect('/form'); + //} } catch (error) { console.log('Error, could not authenticate user with Google', error) } diff --git a/server/controllers/authController.js b/server/controllers/authController.js index e0791e2..b7518d4 100644 --- a/server/controllers/authController.js +++ b/server/controllers/authController.js @@ -7,11 +7,6 @@ const { google } = require('googleapis'); const { OAuth2Client } = require('google-auth-library'); const { oauth2 } = require('googleapis/build/src/apis/oauth2'); const path = require('path'); -const http = require('http'); -const url = require('url'); -const opn = require('open'); -const destroyer = require('server-destroy'); -const destroy = require('destroy'); require('dotenv').config(); //We are requesting authorization from the user so our app can access their Google Sheets. Our app must build and send a GET request to the /authorize endpoint with the following parameters: @@ -150,9 +145,7 @@ authController.handleCallback = async (req, res, next) => { console.log(tokens); //have not yet been able to test this. passing in tokens or tokens.tokens oauth2Client.setCredentials(tokens); - console.log(oauth2Client.credentials); - - res.locals.credentials = oauth2Client.credentials; + console.log(oauth2Client); next(); } catch (error) { return next({ @@ -165,6 +158,24 @@ authController.handleCallback = async (req, res, next) => { } }; +// authController.apiCall = async (req, res, next) => { +// try { +// const accessToken = res.locals.credentials['access_token']; + +// const confirmation = await fetch('https://sheets.googleapis.com', { +// method: 'POST', +// Authorization: accessToken, +// }) + +// console.log(confirmation); + + +// } catch (error) { +// console.log(error); +// } + +// } + // authController.initializeAuth = async (req, res, next) => { // console.log('in authController createAuthUrl'); // console.log(process.env.GOOGLE_CLIENT_ID); diff --git a/server/routes/authRouter.js b/server/routes/authRouter.js index becb831..2735847 100644 --- a/server/routes/authRouter.js +++ b/server/routes/authRouter.js @@ -7,9 +7,9 @@ const authController = require('../controllers/authController.js'); const authRouter = express.Router(); -authRouter.post('/callback', authController.getOAuthClient, authController.handleCallback, (req, res) => { +authRouter.post('/callback', authController.getOAuthClient, authController.handleCallback, authController.apiCall, (req, res) => { console.log('reached authRouter.get to handleCallback '); - return res.status(200).json(res.locals.credentials); + return res.status(200); }); //this request generates the authorization URL, which is returned out on the response body and provided to the front end where the user is redirected to the URL. From 1448b44c7054f46ad1232384c1105c8ba2e5e0d6 Mon Sep 17 00:00:00 2001 From: tristanyukio Date: Thu, 20 Jul 2023 18:39:39 -0400 Subject: [PATCH 29/29] updated 6:39 --- client/components/Home.js | 6 +++--- client/styles/LandingPage.scss | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/client/components/Home.js b/client/components/Home.js index 3aa5955..7379d8f 100644 --- a/client/components/Home.js +++ b/client/components/Home.js @@ -3,9 +3,9 @@ import { Link } from "react-router-dom"; const Home = () => { return ( -
- - +
+ +
) } diff --git a/client/styles/LandingPage.scss b/client/styles/LandingPage.scss index 4047d79..e98c6d7 100644 --- a/client/styles/LandingPage.scss +++ b/client/styles/LandingPage.scss @@ -167,4 +167,21 @@ body { .submitSuccessHide p { display: none; +} + +.rev-button { + padding-top: 5px; + padding-bottom: 10px; + padding-left: 10px; + padding-right: 10px; + margin-left: 25px; +} + +.button-home { + + width: 250px; +} + +.button-home > h2 { + margin-left: 25px; } \ No newline at end of file

*K4 z_p;;5-|7*rf*J-WOr9=wgvg&~G!>FxQg?@^Hdg@bTAEa_`XN$O^)4{T)Mccf{A(~) zx`j=nj$b??pz~kzQ6jh6pu7;x`Hc5LeFFA+Pf$&X;2TEG8B96{r*vK5tSoNgcbxbC z7nituix}NE(o(!qQ`C7#O;I}{ouJtPIzPMS7CDW1-KKbr4%P{A8KvuNA$!n3;_lpG zA4XEco#~>Oe~xdnVo)Rl%coQsE7NS-h8kOrdPa!1A%&r0DN`z?VP&c`k_Z3pR4WT| zmGT5xGu6FB3c7Z5gCN4u!tnOB2 zWFtG)bLl_9@a(@a;@k)A1@V855h0iuazE!k&=oMLAiRLZ$jx8g*a`nO!U8TuSF{kd zf;*~Tbb49+exu*f`>WQ?seE~d{%e6tRS4hA&Z^i~x(t;8?-*s>?h6CI;vZ4)-KsxY z^4HLTXE{P=%fE;0Dolq*L}(0%x2`h7{eQ}F8gO_F;XB!g58Z+9yvfgmr<*4LoZwrc zhb+LtPG@!{|Jg}IT<2f}G@fY>xYC6jUCaV7dqo68%meQH`P zuGNxjf}*0|P5Ya$JP*%MVq(apT%E8cz{vL=0imf#x@Y^NJOPvEydBUCm z)=y2Vgt&F;=T;;y`~t&Wz4+c20k?G5mlU^(x0TvTOzo;JgViG&N$m8MAKy(UEv&o; zlc&M1sE{VYl~d--VPKy5hvnVRd*{*E0_4*ZDE7nMnGkzPl9gf&j7dOQ%FbIAAq-i9 zEb2ow&@-*#gJ-fA5}Uy|I3Dq{Ek5>neCjOq;)j)ffWewU565)pWDgY)>Qt=>VHRu6 z@Cf7=54fE}WW2Gi6#0p%Bt5tIpj=m>Iw;COiN$Y$+lD-|fvlnO_6CI!pJUw){b=lK z+WV4afl<%L`$tB(ANR=g`R0k9D5tT7Agn@68lU+!^5W1(S`|D#8)h}?KwB?4hyxar zDTV++$AWULZ(l<9aEccG?YwZ!sozZf_Z3nZhCIqxMJ#2Hf%Xdb%5Qa-jG9_1+_A>k ziFL{HleN7>EIP}Nv=yij=S*Cz8UsaBBx+~EK&A|mMG*+u7!w-&HhN-|uLK;NH@Suo zCa{GueX>l<$xo+YXH}0g83#xXKRUFGUHZ4ON^s>-*#4@p)tLvh1xXomO;|AqxJ#}H$xE@bV zhPXl?IrAqf@*hXQ+8u#R)MFAh!)36Jfl5@}PDk>95I!tz@;bcE?|6nrxu$8oX``W^ z7diKwh@EG+WUzpZAq_IWAKT=ulk!`e!jCS`;S#oFNa2t7ID zpi+RBB}UHI3{Vyz%UHZ7!RG_z#`kFP?4}+hjPXehp%HkkWE-hF2qN1rm_|y3wI|FA z;^B2GQ)zKLPh#x*_SeSOm13P8uf<+`GMfYgFw1dwUM|;4hZBb<{*rs))G@Xw-U~e{ z(%0Aql9e5{Nu;3&fl?CRpWj1bCLuqC8xD2gI&+LyU^FsKZKzT`XKhvk3^&e%|E*ol zvE-(GuNu-IfB-{EX>?Q-YkE(*y^K~Ma6&*s6Jqfq*I8uSbHc?>7J`wLQprz^osS{% zg6}{V?mJHF@1ONqWE)aQVjz*?fk@lb=jCxf!)`GOvYDLgQqVINJ-#G?gwPV%4fZw2 zwgpAn($?Z5_kE^oxV3nzyGXxA4m;dkEW7Sq8|r;q$RGDrq0r*QvNyRSME;JTNF#-T zr<&V}tHdRO_Ol&nZ8DEhOl9zMRIqkHYrULbALskFlDoO?&p7WY#FR`gTVjCd7b8Fm zn@JR8VMI-DM(nJ6HP{XR882@R4&*HsHD(3Q?0(!CJ1 z1N;or?t-Zw{SJ?V>=3NeH$N3U>@!$pkp+qgi>kX!+XBqc$zb4xrWtdyhURPW7$+9{ z&}v}Vl6CAh{q@eZ{ZPR=k1nd{aT(*L2)xO#2s%{?62&kkE6}+9&_brNucEl@Gu}py zETk^+ZBkp4i`_pUofr9FbU)i3u;aHj&ddRSgEs@HA>qcvh210cjV{45iAgX{!69h~ zj;ne0jI~0Di(lEQ`K)>p1^% ziu~p;{QZVjfowcd!|CdO67=kobOV<6Us(9JME#M(;zB9eC7QI$_~iH^8NO;*sn)tW znPkB{qzpKZr+-w$oPH33f0}2DJ$)zqu9Tk^5yRIWOev~nxH!az|}&%l<;f@F0efW zBBbY-vF*ROo6A#lLiDjQ-j{VgV`VT;-A!RIJ`Z!%U+#9Uk=OJOw6?Z2v$-JOx&MG@ zn_X4vNw@2fEp0Hz2;7MQZSoZg;Z!>R5~3T2{bQ5>f0x%Ht7w*=Zon_kO)rm)uRGm} zkgK&ul8I=m(A6P9lE3~aug1BT6lq87Yw=!U#_VGxs1 z;zsu0T2ds-9bo)i!Tmu-Uc^-Rl2^oQ?5n|;RXPgO&?4O`W9e!M)h`uqQFGDFKW%~h zUnh&vRu4kiOzWB)Uw}kQ%OZr!<0+Ym={o20es5n18EuV;md_xY8?}S7A&r`}{UZ5D zER;y_4~{nfV2hla8%WAvRf@iBOZxQz&=FhUIqDWZB4n=tYoJs%NtV zWw`11f_{Hp%P${YPL_&*h2z$dVGP6y%>S^=8q4qwf5K1&&!jz30iKs`7?(>3>zHCO z^g(4bAVki}U*GmdX)LDm-`XZy3_oE}=bwJmrko8g133sz1h(Q?rDt+kb4hGA676VC z_lqN)6xzC)mfMs`4ZCZbZc{Jd+i>itFaD~qscsVG>%9xP=3C#gptrqDV*qi8wv|zT z(BxJbVV`nV`k4Lf$1!HgajG5&hW$DL;ZUmN)x-g(W3ncOO{xH&$J0z$e0?Or@h6GJ4JbPJh#G ztP%S-oOcPgfK6Nxh*w`&PLRquWD3n@;%F%C!_z>s4dra3p4m;;LPt>)bWFyL&d@aU z0l&6cRNj7qDusUAMRjV+eG=PZ^e{5sJe6pl>2f|h%lVP^l@XHe)~xKE-|ECTMxsS# zX=SB{#Nq$Oy_jt%zvk$Vw54qX)O|ThE-ZYa7!&~OrN6ii9fm}g()9hK!1z5c*|v0H zH7KA?9qmjP9?yrL#VC@xPV~I=QYszsROW>N>;Qj|~%e#&SyKw8lCeru!g#(4?)*Vn`RJliy+zKRnXt$2A;Z7IIG4%pWQEVW8v?u=a& zu7#>-tNg*LEfD{RY0It44D@2`F{Wh9r0@F2O5+M$%j^8T)HA`0J!WaiM5p)7etsq5 zl-&tKgz^)lAy*ydKwhVrt8~CvGZwC^Py7oWFDAK2uD_{L@+}s571K$$$0opWAK55D zGp4TD&HeSbX@^3`Ee-n@F~En|n*ron`n{#C=3@;R<=1&%*X_D)Y6nCWsk<%4vVwSWG0=@O(O| z^#Tkh~YBY_~0XApmIQ|M7t$L!${UDJjBezJSII|CY|e} zG1wjic7a^=U;eoa)NU*bNTb>`cxogY>q?5mq`nSV2a82&y5}pr%9Y+N--^Dh&liiRkKF0SvD^SA)y>?T&FBW>kp`khYgSpd_hUSfnkNdsr@#NA_AqJBE=k9D zNl7g{SH+E|SRFYuvcqgqXfoPPIZy%hd}03ra9Ch|N(X3f;6>Xy6;d3*1qBA zxMDru4?VjgY~7uVcnWrI)lB)!H)9j+9N2PpN($@1Oj&BRr7GI3#udAn+rPyvX>*zE z*I2831lBQR8sz(!w4=L0{^o4f;!M5V8e7`?JP(d$G;)tbDuOTAO%pJt5fZt{E&0K= zL6tFO9~1dA6hRd}7xiyHty8L#tNe~Ky^JAa%pI9uQI`oo>HPeYi3h#yLhbe4rbvNy z&M+52zcxMUOa*h!mU}x%PTVY&`04X9p@Wx!z zwMA;=qo(K$7Gtq3r6&y@;5wF*Y&2FGd}yWch2L0@T;qdAbRp(v?~_jD)SplEbT$S) z59|Pu#0x4B+&ByKX5=dIFas*{MLVRu?{OF>l@`KZqp`^o*^T}Qy&NzuO8!|Vt}${I z;lD8I3o;=9{>+G^%>&jLUx%MFKk6r8QEL)hy;d)4t?UDBJV>t%2DO_~ZA?^((WPEl zOyJp5P_;zK;4S@$W;_*@cKv39;;BI``?qA6 zF*?9_;UWcq5rC#X)^%B?6kTsonLxlJMwF!3VZjDT{N$*zv z8kQ%{i3&X=;+>H65Ra9 zLC=K$oKvq+>9tDOGp00DeDboQtKd%#)fyJ@y}&!aB;g%DEhefX{k7%i%wwW49`uW; zJUtx$rFdfAU3)3~%&6lJJ72b7a@Dt;5iK<6HEI8@z?|VqG+Df5Bbq@w`d$60Zmwya zpRoC}|MP0_`O$h9%k!aNpbGo!Ejds$hFZ(K4D@g@-69eSB-_01_J$Q6{4Z2!nu#ky z^M8yK0^bb;pFv<+%VZrouVLLRzA9FMKkB0Mer%#mb(YQO+eyL*PIghEupqcUuv6eS zucG1rZHxozm2E5l$WWw$8)6?F1EGDm*i93snrrjEN{BucsREWdW$0Jf-F?YEhI8;a zuG^yp++a@M2h+3y)1KPxY^`g$k6|2bxXvnlXX{8l@6K%m+x_@{2VHs?5y_Ew0mp-0 z&5T$dNm!PrLeEVKu|m?M>dyZXuw!^jX+0wT{l>Anj0i@_X(n2^wo6}bN|6k{He%l+ z(!H_>VJ-t*l-h%uLgZ~oGj8vrE8mWKh|p_VSAe;oG^r;zkAyW_Jr786toq|l^~Im= zr;TBsw{m&UYd9^M>!OWFdE%GD!~ZvfP%k3VSe!$;`bzduP^BceF*3S^>hBuF&f7C-oCkS|_F)3zswFBQk;%>8Pz{nc4!}*@~~ofj2bcr3@(V6p)3F zI69bc>?WvAfOEGc7sSG7k5M9-9T{?Y<}xW0ra;OAUNbV#5dEFp6BDIRo@cz>Bv0r zhV&iSRxhm@f{M=Ue=#$Q2RP>w`CgMLzv39<2fq~~v^(S=uG{|=sohJLQ`Loqwo0`W z?LGw;(3sz!pfpA`EnPZywYf4#0;42`mafrv|Gr}pPYf#<^@f(zP1Qa>?r*C8@niDl zsqoEWWz0ZLV|A-P;JpW#zm1()bQbmbH=cEk9R7fuvA(^xLhVNX7X>(by!?Irzlb4p zROD=*N?;>Ry&U){OzSk@@&Z$v^1-4xbx9;PJ3{Q#dE5vEV5JM1rW9?yMJ6;+JD^tR z8!SrJ{bdRQ9dz$v82WNE(B^k_!t44{aL53VV=}C&2EU0u@H=?@IZ+{;{b*T$VkLTI zt+h%@dY*-sef2sTje(xN3@uQ8#=F79V0q8Yr=+;v{sEl3h@HY;_*x+chTuMr0`pRk zbYFY+G1v%!M#NxS^Oso zd6FJvoa5?-K^bj1$>51iDcSV&6-=BF@4tyaFZmhQJ6K?H5QeyeaOLqF;qKP{h)T5D z5Bc*czGhS>kQ#XF`_>%|A@jXtcC=cJdD~eQeqG5sjg#Hlu+nK>`FX7YDiABv5R7e| z@Tgp9NJWA2g9bApCms}G zCKi=W{pE+-aNCQ#ebDFd9N&#eQq#R{3I5ggm<9g3FJ$YAqL zz#d#r8zBW{>?LYb6B8(N_mFJXiDD2Q$$SutW0g3R3Ajc_*ll^4-l$gc8K_t2FxX-I znmE_O)3-xo-8iz1@WKj)%5PspHh!XjmB~atz?Np-Qz}OS50wp98UX6*ZumtfTeT6f zFi*HdVKHOTj%g{#nHwdS#G|lFfyJ8Dd76foY3b%E|Gpq^SA(xJMrM;Y2y-)%#=9DW z_sU~#2KWfhBVDVm`Gu&KyJvd|6KsDbdThbhxnaPsR#bk^DMKVu2~m8x#uTEwQ;xAE z^~$k*3V+qm*>LDxo`CBy+JU*G3mFJ9L@DDrnw@VMSuLq&lQ?RFxgIb4{H%#f!8SgF zDKLz7NWWa+q{=PY_oR^&$>h$UHqPsRjm4H45Lz1yeiIl{z3U!(In-Z&tckLX{JB|N zh@i}W^Od*CGU-U;c1^w~q3k)?=0nMv-{ zZ8j{wCfCu&jmwAR0(xyYf3`%&tWnUB1RS^wq)&#-+awYhZ2zCi_b%bRfA77VcBJ?I zmk*#;S`_x3odU?WW8t{KY=f&hAgK#p=t$PrGEX{5A{CeX)i+Eci3)cFc;oLuCPhw7 z{)2Xb#C8PEsGtFKTSOJT4$TR*!*q~I*$95FTw6(Kv(fo=Nt%(P%}Ct2v3$!9h>bkw zA6gfkN;Dt^(yW=0y0sO$v@g#Y6XS@`Fp@r#S!`Y2jwYibaQ^vMfOPQ>C~dw3ME)e7QDFnc`y2(1zr|}3dnP_vhp7=R%A;5G zgvo83)a&6WC0eAE5Z>3t?7w|x$3;|!M1a9an_|dywbgRO2`lIm4Y&)S-4uMDuC(P; zrenC+1|*bIl?fG`o}cDL5`0vm9cB22zJA7+3&hV0zO4-b2}Ryl6+h6kT~9AirrVbq zor?nsG1ua$NtK6tLO#djRNG!qD}KX-jg_hx@)&is#6Q7RiXbd(r5_>ysfTp1)7uOL zC^(v60E~;r!U7KRBjpD-bDt=C{7X&5e;dToMOnvTX?7UYAG#JAril7w63z?2X3j46pdj?! z>P1m?*bvm`v0v?r!tMQDh5s1>R)`0XAZ|R!5QSl3ZO+xANqkEK4%t0%s$k2S8p#Bc6uED{ZN@@W!FK?dA18k>MyIbZ#;Qt{G*Q0c_xT@t%diMgCDvG~NET*)~P1OQ-+R~*p;A*D4>)sYL+#(wz z7SH1wvszX$xwLFn`G{HmO}MkWtQe2708#(mizKgG~N#vzh*Y zebW|wqn<*=FR5ZBk$08C)5m zgtldYTho~&04Js)kr(v|dM^3xX*|F~<1b83wdN0}2c7)X&nN^wnws|B9=^vCzo;3 z{?MwtdZoxAtxrE$U;pz1^ZY0ITNV$ZkN+>N&yx^{PyssBQGcO-$515!=dkt#@n?pyPA!WV+srjDq=IWA?82? zqK?J2u-n`%ryffZI~%n$_xV0JQjtibZz;*pk=Hgx9WHkFP5gsAe&3g{!EvL}%|m3xJc zNZrEY09LxzP>kC}%0FFMs*N45A8s|qACx@F&4@Vazq8nXNuIH6DLCv6ci|8^ z1U|B{L^%n>Vy<%Pb9YW)+RxHm9y|HK_Mki!Jq+ ze?NV#pl+0Q1p%HN`T`{>PlE(WB!yV z3wAU?J5;O7`B+{aWm~9oh}op>^>3io-%ismFQo1b?)f$mbvmRAa3=BJh)?yO<4^bs z>8k&Kj`&ci9v~w)fl3*T7T5;X0(}FjsOr|=aKU{V+lCXw>q&v|!Vd7%ZS|aYz#X;4 zaF1-gJY;Y9>NNjdwmtmRJ49ymb~(#pG--E-riaa>__IUOI2R)QtaiY3k@i{)xaNsc z6?BL40%zDskFf#ww_`RIkLnw#BwWv;&*|?5v2L1x7ucg;;zci+@SWJOenCVd@t6_6 zg}Qdln%&d|pKg}VMB3#KIE`(&DCEhiUABKT>F~>A@)g*DgD-3#DgbvxIN7Yh3dap| z&an_*7tZF9=kYQHd#v~mSObZ}F>?@`Te3Kyjha5czWEsPf z+15%sKpHBOhXos5C67EJ?43h{Z1F*1jCBie+Dpq@mLv_o+*xK++&FvA5X7hpkM?GHvaX15cQD2!J*+->6KeR{CJ%>Dh0l&5mhQtzCm0VxUNgqMrzd-8p4Mf_VQ(F22oVJtrll%4A<^g2CI zZ907^++Z@0&xTMqWg}+HCWTT$R6DafkWf?d6Bk!9IeD$*l3&;FU8^~ijBM_u6plA@ zs!zQ|#;7CJTaVZE*xXx5#OsdDcRGXL zC9banqFapPw$VM&mwZaN%4&U+j~02>@CZ+7UzB=Y|HEWT{n#cG%Nn!OP=32K>k`F znGPm{yF!A-JH}7@9!fhCqOfNL0!`28- zXIH-~Yi)vGcTBx5)^B{&E=l?s1VB6NixH-ICbC3#w~w{U=Ig$QV!jmZhW{n}hSlwh z)p>q%cOiN{eDg;D(3s#UB*=fn?~nx16sWq^!-L3nNEz=P>Rm(Q|A={IZ8{vXE9vTG;+l6lIbB|Y!UpK*O6nGb4wUtd7`B9kXM5tBfxpcz0BO`G{` z+!(JJM^0Pr$1d_YmolKy0qSFp{qmHg*#UY<*g?l}dxyE+d`uxY5XfFG{QmV5UM`9r zg3^y1iY>-k_EPXTG2UkQ2XLrIWP2!4q_+ou?c-Wr;nGLslaIH&GK3b2x-X(ey&BBI zJ_6mIQBun8EROKoA$OQ~W4+si=+-f| zPwDYbrMXq;VSiAEiGn|*>CZP`QB!F$f*?Hl-qus%BumtpH7?u69|0}r_1(Jorvkd| zEi@C7Gs0B@>GLt3ajw1}jBr9a?>1>cTVGF_|E*bWQAOS@pg9vSqK7XQ5DT8N|lw~H-B$kIiDqP?B}?z!_mJB zJfJw$vl5MFC(XWG@McjqXonyT@k?9dlq$vRzSK2LWDi-K{`2Ckmufk4S>NnDKmYLt ziFtM;JNot)&?{^$BlFgB(76TuT%88J+<1PjSb!I{cudW%6((bTIQ6li;cHF|kOSu+ zuN=VBi<@V2Vq2>rzHN#5Rv%mZeG?4n=~{TSZ|ZTI1FZlrHa@1Tm)ZLLpU?d=sE!?o zZ!gn~h~%e)WQBxzAB%>Qv}cOdu*;W$P`34;#8#4W5Eq917bEtvc z(dok;Cj7?-ZbT1o7K(TZ{YlFC|}41X${J^sEPHkQ3Q1HN%+}u^Y00CJfU&xC3&9_o$5(q%6XEx_1G{ zcU5ema=d!cm7t*$mzq6SqNRB*%XRKu><`B@if-F>w*^E)BLAdPLS5l|co$#ywt(iLbhx<=JTtO`XON!!!8htY1fHom1=)&*T6LF#hCMiwGjEAmv zClxt=$ps<_`yB15{cqwZlSKNpBxDc0=k1pyUJuitwkeAVmjD)z=;Cx=yxB;`ABJg?sNp}RlyF_j4WOWGz`(_tSHjOWmMp&MU>x2OmFc)bQa_a8Z}Qf)wZPoU2jiSsrqIKt?uhG{-3Mupgso+m zgY(eK&pnS)c;FRW0RY5FbA&T`q1Vz?G;17V=?>*^LvY)Ez8ej2*x&AbT=b~?ew~*= zlaC$d$Y%fZyu4WgA5_9S6yrZ4Nsq|=(VC|ASx15bl>UX&Dq7zmXPK3SfJ@18J>Fuv z_##9eeh;bIfRgi;|23flhnE0O{*d1;)1kyY3&w&mQjSLBjUPU1S0OB9<0$H<=i^Rw z;l}e&i(;wnC^wyBFjp!A-Kh4D|Gnow2e%CPtSS-vr#83mD;RR7bJJj zZvh@q-sOs>vwTU5hVL3U7ZJ?^`j} z1!nR+fmOgV^XWRU0Ufv&kb)hKd~Yh#83dX+W&X#N31B|q10-U^Mc7+e__1^Env6XX zbI|dq+eTEVMah`NzH2HSfPZVp9KXN^gRfedw}t?rRKIddph7Hseb^Cuk)YX9atHPH(+yV@p)_83bR4cA$F)1Sbx_R zvB5UQU*Vlr<0;4edcX8wdyx$xAk36B#TM#Hzo8z+Sd@b8k%s2|qmwUW=#UGrMK7$i z2JwhfgN%dw(mm?)+woGRWEo^1j~)nBuk$q0r1uG!vCp^x>L_DSC)h2##mkI{Jki>q{wSoAdK)=_IbfjDVYV)0(S1kAe^58`^5yoqLd8|O zIB4dGo@ncQr0V%FR80ls`<>8x>wIkr74ipdJlWWdfpiisiH&2`_Z$P`=DNN4Fz1=p z4F5ro@&YmkOvpd5s&{x32?|mOgN3|C{UdytyBv7haVKRPQQcvuK~6mGhsq+%Tlk#B zYV2-3dMO6a;_}ExBc6}RuaHGtX|*Q1z^&V++x-!^S@JnT-1Qi#mHYBov2O9X(*@w* zjjFz*^ZZS)Grrs`EW})i_!WXKKyi^n0SttRT*~yw?GGG@-|i04-D?hn8L!QVODceN z6SAM@zp85mobKPd<=DAx*1>g^<2@)Z-MBSowHmB|{@2+eL6&I`)Qm4{&S-x*kY7&9 z#T}64DP%$zr6p&I{iGLiJS@V=}=`5r>1F`WY<3*#>g(kWTAS^MwRVNqK( z1dry6$TD#t)?P{~L|R9cOQmiC-4bsPg17nfCbG3uMp_}Lt*3~zpLk6RK$x0a88^u) zPRwPx1Z8wO(6~OV8s88FF*jyZlzuu^hi)GBUO##O#ds< z`8!T8fBT=<1qGSA)M=9r7ykBMs%{Uj`H84=uPZJff@<03VFypzVl-*O#Vr&Y&odpc zQq?>a&?)(SO0} z1jAfklCb>Vb|P0W=Dt+}^Cf(PA)c_>%m|zsrDf*iT&-2;({oo!my)L=rLLLRXW|u# zWa%TSaMIo{btqrslPV;Dv4-) zMQt`rmr<<8WI?Ri)zn}KJJ`M%5c{#8HObo;B7q2EX&z}ptK6Q}m3{JD#U zx1jaef^n7Js?7aA_*Ly)r?mS{!dt^gcN12_l;EO0Wyc8`eSAlTe_@uK!~3hB{8weF zTSEHQ4hrzZDOz&UHOn+IB@pLPR8BrK6a`3(J5-JNlB+AUm7?t{ZNW*ce?oq^~ZNvqj3 z#L`$fS`DA1%nYS@z#>yo&hWS2r8TQk4VqiA3qYpKM9aO9av$8**gLYj_LL`;c+t@T zL_t<(te2AfC)XNKHK3!uz?*N3MD2k}u8qy8F|Om> zKxzj}h7}9nd8vMK3TH{-cZ~s2Ed#6-FnTsMIA!TSv`kJKH)SFfRow3VijuA%JtI4Xu=I&<$mX!sKfJr&5hwV6~J~I zj4!GoUe&aKXp)Y=6s`ys+<1=1@2@3iax3LH{}E$Uh&uEW6IA_tz!kP>#+$f!#^%Ty z8%^vKQzvL4y4ars^ozq!;HFe?O?Qb^Cm^CS2SE-=DfJR!K!SSKxp?wblV-lnvnhEJ zA9s!<%6pvnSW8Q*vu=nI=E07ekDu3w{rRO>os-OCxo3zT=SFA=ikR^Q9)Q)6;+Ws9M+j+ zhm?d;)0R8_>LU?-houY_dh1IXACvb8^w{G~+7^2c-&7*j^+n}>2-3xcq5kEu9rvIS z-#JZm}Q7qP3ODCj{to-7!$AAB{*!RvNBTp$PH&BmK1ElIz4H?&pIP;-5pT9 zk{-`^5lB_Wdt&?fnKdS-!2QQ<&KN9!xut7O^xjEQlHj6NZm8q(T4dpP6P(G+dUhh0 zby}8@{+bj?Owc>Zx12MNfgtEO+KI@I=p_KQeOd^7vzQBOCG4dJ| zOBtJ^(GyLL$5H;b)v%+K-SfhgXgu%qq>C7?xXLZWjj#u8uZb5{e*>CzHp$!UyxrSq z8uFsrqX&(Q9g|$KvdUrKYV2Xxd`EDc9gAC)aySZeigyR*w%EsGyP^bB%h7={5y04T z9Udf}L;LNYP{HlS<&AXhXlb`N>&|mjHr#X+#m6~H9BRp#FBIm>@xr(uQH!8IZ|>@! z3u@?{7C^_LCtpNR%&mMX zrqh3Z@>zO15V&K4(!v7)?#*p!@(2oNJn(zQnAQ*Pfs}%Z4bPdwVXxrsboiweULLwA7v(PBc zUl4R)5L|lmV-&OgUxkDiPsco;AbI(K?Oek5Rrz8*x%T{vRA4=s62IR*B5ty3eAQ>i5O?|wb}PIESpWujq8}H^wET^+yaCP)_ldu@X-8ER z-k;|~)zE#S9Q6nV&L`|F0(Ppp%JbaUGRHZ!1yY^bQ+-vTZnhDEJxN^W{}__h52wT* zKPe!zL;qmQTh9@Qae%&7xhO19?~$qpY1H2D%YLDV>>}z-ucD)07Wzyi6(?8DX?G{whGw&r;yVY$_Z`Q1NSXp9CSg=nELch9y8P3wnTf%w{E zx?|5o=$C}rzmAk80(F4(dvJS!>_a1NU&qDeJ#p{tI#y*V{E^V8X1g>a?2BZ zmB0*`^R6ZGDQ>1G!}FxTUSmwPG1KMlL|E{Zpd9r)+mVP9@dt=mx?cXdK`Uw_29 z7WZVinwyMe4_ax(jV!_bj(kH=^K#)UB9h*$|4qKeAU6NL{BN0(%2^itli0tfmW5S0 zYfvHa_EBh$?@v?C$*@uA>vK-^t`|ck-(qM?!XZx*#R= zIUAl|BRcE%B4VOD_&L8ge*az5`*1j2M>IA;avt%K+^rW)t@t*N#$EcO%)e{_B9qMu zH6HsbSh`j#XFQ!LPYM4Ra~37ame$vROH_rRbSJERn{v024rhlS>M zw}v+EkTE#6Dh%K;4@x3>v`g1h^BFaTM;C>byJ zO_j%q*@Uq1F)W1$gVe~+gi(S^9Ts(*oYS%SEb{3+rxvN55)I~u@y_uRKC9sDV$+}Q~7aGT_CXSo>ek-0{3v17_8;_ zS1?XwX4uUoUxiug4;(;zso4nPK78Z4ZHj!gx<@x*f?M4#jb@Y)8D4TYw z7ztp9V$S1@7DejbNM9u=*7wm_wp(ywObSynBhN*m^#w{;pqy`nbx(ftnfWsZ!;^jj zXFo-@#}hGUe9kRV4EK{NvQo8*A$A#E0?FqjspN4bobk57rdKdCDa;g&W3skdkJv;R zZgCr1m@royxYJX(D`p&W|KUxSu=RSD%q4poDnT(as1?LfIAiM0%`i^PfZdb>rhheA z_JtEKUEGyVS9wC-y=7Ifj!_JfiuX$xKU6x4b_=>Z4kD-=Jx*IK7tVYu2oDP0*Bj9? z4eJ$dME?-L zEe)lk?P;Cr+R3C%ndqRTXt9B9yF{fF+_NR<25;N0n)YU%+(QS7s#&<^nD9>e44Gyr!#UH)Rx&K1OHJEnNJH#ttTa{-=ZapLYz6oo@Y{YX` zahAq{%IqHr0;nm7wg#i5u?@ADsDbKL%p-y*-x7R^PW#?b^^PAP^^HY*b;mt5`N$CN z4xL-$uY41{O}92L2EVOdnnh5c^aV-N^zugMwpaHeyM2Ga2rSS<9>ufKs~u1*JFhk? z>qT*_D{UgUc3Au|oLHuY63=n!KTTlu4R-%^ZKBKS5Pi<6I$@NpI6)IrkeDmxGl8=W zYCMNPj_+S%2LF}(y} z<(^@f=D!+R}w%q#L_}{a%JivFgbX-Ki1|=gcoNOhwej*|rT*9|qX9YIj0;fY z$;o7DegGWmMW`6Et|21$;6TkURPYCU{AIQlgR(rz!zGBOcUKwS=ZH<)j zSVlt>>k4CJd!mDExFJ3c$15@Av!#Z#;bTt9DkwM8wAwP~{cb6I5a{#cPuVzFzJ8l&}Ew z!n$w_QJ?V_2R$4m7Fl2eZ#5Wq_UDZ-NCn^8FBK%4i?&gZ3j4v+hT|}GxZhG6ra_*t zT1ar6f}fPdtDImLqc!@eF4rXKc+*-2`(N_klL%#UmNyF|YyY+4iFCt!7&4)2GwmH) z8P4|t$B8d6lTZVS;uU_SPhHqb`A}d9INc#J-Z+sd3usG{JAa-q%~JklCYjJjN7F}^ zBN;=tBoU`Xr?-ANC3IOSP5T47w8h4T7a)6DXEIJmf_)8~<<1T$8ZXG~Vy_Mj- zY`LWA1HFvua+f6C7-SGf`A@HHMuc<}lH; z{xC~wK!d?UE##itQPZ`EFRu2@3O!9BS8wvWr;~rLbHH$7b=XxMkpbP3Z7{dz!xnXC z0=ez*FWSWRjZHUaln>ajF;uBh68}IO@Gje8Gr?S$mbJMXbQ_tI-?`drc4?@kA;d7bCVG% z;%nx3fvg=+LZa$~k4d#p+w*Sdyp&*~QhgY<{&y-?SbXzs{v?ODp&7oRMyGME8;wdn zst!9A<3Jy=Ft@&6N3}RSE2OFDUG1XsE~J8&Lr7x9#WuGH`c4a7N`qj+d2a{sD((e( zp8)m?{%LB=)@Ap=c0TG>%DK$vGwJ3%X65$@CC1h`Wa!g&njsWg`5K&!!x-R#dI0bV zyCMvSxj{XNB|2n z=ot6hyJ8jZMnFE#ZN39!OdX@6nHg&x^PV*7K<4ig>C>U3vnSldKy+1pKlWbxx!``{ zrX@1#C||kO54ey^k&YoOAZ+h#Qm+r)a;mWGmO`>s*eBp?#oLAIp$v1I6 zSr0c@LIgD_l!fPs`kpCA# zka#^a!p;-C@>f5&g#vURG`iVv`XuCtkuGYq6hsYA!qCBTMwt@Mq{k`z5TCyPzG5}s zTpsJh$TrZs7V=N|N?en<$l)fz^mjJ2YHH!jX$L0ErKi*pel@srHXu~NlOEKM8kc?z z(@Typ90 zJ&qsNGW7_ui<}fmu3+exJguW%JLeD9V_IsBh!dl$biCSrC$WO#@ z>Ruegk}H$+y!30tW3T0;s+-1Pi^5@7OzV*>9&PmN&ykSZ+^(2Y%l9KLR>I@=yKpOe zmo`R|r#{`d+umc-D1_>8gFv-j@71#n&&22t0i9u@Y}i1VCByNblKG;I;oFSBic9}_ z{iF9b51N#Y*}ohs`f9$o(DLbT&0F;e|5PS@>tX{=g*}ix-5Z{?d##@hZ@Rs(5i7R; zOa6OF-=@R=O#WO_@5t~g^3SWp!euB%zdu8X?g^tnI;|)L_vB`>9OgJsPjnM;|L^k(=JtKy7%SFv&(-omD4*y}yQI=qnXqemM_dcrn2 zi)FJG${t?R)m$$eZ?rTKlm#eX!5kU%0BE#-NoGFj0B>s{U~QErumz)#&w8Dvg;Yn< zx#zzQyZchV)LLwC#6oZL+X2sW)csiHJm7*dc6u@m+e4|cC1^#rtv z;A_vbsdFJszuIx8`XyP|ad_e*kG zz?6t!DZS@%ia^1$&o0~&KwsFCHggv#GWFS<2k_Rw=mqj$Yva9nq(u9RboWt0V!rk) z$g~esmNiJ1qi{J?z#gdi2%V7}n9<{)geB`>x6=ah$y5e+P6sTA(Uo|#>Agd7_!U8m z7+@rkxsC@EEgy~dAL;Kv41Zkr0YkOrCdfECRJB{XTD?S4z$gdk=z+A{*L35s?FM52l z=w1bFU$u2iiq&84e>tbhdl+XnK~52upT8YVfSx>)miHL>XCx85@;AJZXWk_q@b-sY z-REMil$_^Fp9hj;?NqQOY-by@cG_oe=v}jEQ)I-(d$uS|!0Hqw>W30g16Y@js$j$) zE}Df*diTrCJbXBxFs0WP_bYZk`TTR+Cat<{{&5m`-J}Lo{F0L3`BYoNF)Wtw%z)cOW<}9?oFT-Py?@x}Rjn>r=`O+RKiQ#1u3N<%s6uCZBiMb|Iph_<2d~`cHS;n$g+g3LjWu3ez zB6$h_diaHexc?M<0PxOH;%$&JrvEDKMBkODUCN|KLfM3`|mrTx)y^435ktjTs`}92=BO0 z10UvM5Nx)maKR03Pp^sBKdfez_Gtzq=h1Ni6*v>zNc~@03>nD;Wkdzi8Gis4NC|mg z_pwYgQwfihQI_}mlaw|v5qi3GNhMM&p1p4(Er{@P=(u%`TvEf>#btJi>R+AC_3SSn z27l&a4itOIFTqleh1BYJjz>H*qi`;s9hs9>dZ1f`~|`D#S6&bcE0x2B(N}rD82p` z>^Dytr8Li{-E)BCum6Sg2b>F#IGUrg4^KV~h8e%gQ*HhO=n{AK#%L**f}7<>8yiIcZMKZDI_)I7&q2gg~}C9vQY_ z(Kk6n!Q9|F$k7M233F;ual!9(sLr${pqvqO4&Wx1mB+)v^9h@FV1P=*fWjB&?=Wa~ z;^L00KXo3$)UjI_>1MCT!{09;jtMA619eKa>*V=3=%yjMUBlaesx|YWuD(Hq*b7ZU z#7Fogk3QANewst3D8@Jxc-2v*^Dls(iuvZxRvW3syAZpPH1f@(MT;2F#N($zNs%HM z8*GCfi{7Q*rS8#94#98==M_Unh5G(89U3+st!_iOhX=>SsedaE;>tVpJg+uJFw+nX zob=tQ?!fs0_Iqu_nQ&Vf!%*v+u^WcD;I)TudNh5a8B&V`Sj-nJN(t`RGQM~`WhBN+ z{I*M5EX-}y-k8?&=J|O0G$qGh?Kvs(^*gmPc9sNK{Ty(dxT9nrYmbKaND0s5H+oCz z{A&!le*kJa|p zEaUuj(vx#rc*jWMLJ_r(DWc%!B_>q1ZshDn04 zsW>I+@O?851^v9sUn7qv;^0S`ErU>7(yw$oqGN0;^s((|2RvYrJx0lP`q7 z*yWh?n5Fu2)cDq6SL9Le==XvY3eW5Tc4(eBo&ZfIqqrzmkiWbJbbA#$e-$kPD3Uq_ zRQSNrtHN)XBrpLh$?z17{$>W<*E>HSwDWMdipQFX z06cY|A9&8MGT|mSG5rT_dwBSd5-iCJ{2Xwhg|E{^WIj`x&;kM3LsM=|T3Yf893ds5 zXMC}YDUqbn9`a{jd=IGqX7(Y$C&6!E3H0Z_1%R@`T_j*PP0QaiUh(;1mk~A9%G)Fb z19-A(B;+G^Z)eFFGT5Y%Yo`y6Co0k@R_dqid}k?JdkJELhNoE!sH~vWj-=^er(Jz> zHY!d1Jna_Jc+uVqr?7sOcz#GIP~nayvS)_5{8mrPw6Bs-iaq?iq(|l=^(WS;pU=lr zbbYbI$||S3TUz@KTQ_Lrag#G2k>(v- z%4EtC>gkjn*pM>Vjuf|a@C?%op%Bn3VieE_FKGNr;ih>Qb@;hsU2h#tqUMM)TTWtj z$$T`^#5H@<@-&ErBinCAlbWv182~tZC7;Zz1TNllx$448+>Y_Sd{B5eBdbKnJT=EQ z(q|OE6E94F*k*D{6}I~el-A_j4N6@TJl|CAr1S*D!5UIY*8)lqm1yR&?U=(7G<3p? zwoRxGj*0kkBDk7Bfw%7T?3O*Mwk^ML#*p*wP3%X-R@5S2ZXaP$8;O(i9R~ix`&3rAi8Ry#M<|L zJFSV)re;3KA=V($GT8Fhr!8bxsS>uniG7brH*-~u;9b}@&A!{~tjID7?pniDWFk;B zQ?;A3>#$u;yq=fnPNip^&1+Yl6PP1>p0f(~TLs<~9><*&=&90MaUS*SLv7Wedd2U$j%zM_Ff(JPre{`9Xp27d{9Iod`F*8j z*ysa@ovl}cN3S{P!<^YqT2*Dc*->NcV7$)MK$q1-8_q!p4~YU7uY zJ)4&>*+jO!#C#TclrFZ~h}vi%RlN7RWetwAdw$jl%Wow5!OI(Ldo)a@E>L2xu)Oix zM>bIQYUk65dS&Q5CjLD8LJ!1Vn_Wr$~zdb4eH!>eB92@1p)fP}QCg*QMy7J}D6YwfRfmpMCNyq(b z*8po zaK=;A;0^LTVG3wK5&49|JI`Y-)h0+^gYI~P2+XpslkOOppj-)J(2QE3fbA8bytP%4 zyZjdz_}YK=+X5Kmzs!x1CP>FAsRTP}c&~b4r!RgrtJy}$3X-u=Yr3^Awv%TMf*(cb{94KqYwL6|b`zlJ%0#ox(Q@!NG;HEen zJl|!o{hn*Lp-4VhEIxwb+%1l2!o$)kh^RSwyUzs0OJhkOfo!;vdn}XY>eobxTxMp; zbcS8^J1&#fDgfW*+Y`C7%*-C>K|ITuy+k#idp@{iX+`1j`A{8tA@`KReM0;H5*^Vw zr177L{@DOf`~^~?=YST)lqe14x@H?kIk_9@Rl0e*h%V1ko#7Vjr$UOPEP|{#60Mwt zw2RV?+BOCZ96VXNBD3p8Aphp$V_sIC6(^J&@?mMa+k3G>0oV{TNpX81@S~HM0M>3F zgNIn)FlCcqE`l+X+z-Fr(fekxU)LzcFdidSR`N#h7yf?f+)zwO5#jelQor^=JL*FB zIu!9(G#LNL8M5S-#|(JmcHdx1K$Q}DP+#kH+Jtl*tQmpc(4gHby8=FoE2c9tWe4B< zBbXGMrZF(>+izZ8ZPn;`+%9`@_lMl)(ypJJY-b>z=eiU&;vN zB49sJ*-U_BnvTPL#|!QLv^m_7AyN4l-{noM7Yc%BVpHahjm_mwDM#Lrf-)Cz<4WE@ z)?I;wKh&zImq=+ZMUQ~jlEjG^qL5o+g`45GI^}RGvyng#NR36H{@z$$`X=%x_&f$% zlshO_WeE)aFu4ZB;_4O2S&1X2Xqixij2I^_1SiPqDiJ>M0YcGQSk>87b@7nlAbn1ksy z6Qs`H@tR4p#TY@}R2z2zsmF@j>!Oz-*&dIHI9)d$^g|p z+}g&Ok%oaa52v9L^T-Dw&#N7Qhuz1EGnQBPb!EM7CC41`G-!bO0*!l6)4iFMcbz8;^I3y}MJP6%j;T)Apbdp4<_Zz^gz83u*MN|DC0wvnTlcP0#+?StYK=ubYT zpVExgAkQ(8Lov6Ng25Fyl02un{QPX~9#FuGa@jEpDq{fsvGr3B~A;{bXFqr@N6;T_B`xrd=TKRxpZn|Az z&M%62#O(1ccJS?`Tn$Uq7K^KQC~BM04fn=JO8Natr;mb_9Oh0&ib!-+T+zyA)N$*l zLFatpmo;fjPVTpNjI+vE!n6n0F&e6o#KIrind&t8}AN6(*JlOU}MV6qEnb6byok>e=+ae%3T{6 z-l9VSF*ZfA+0`x3{s42{!rzoc+=ZytZKKrNe`hQI&Prvetf-t`y2nZ|)#J;3r<;E_ z@bJ4ELX(~%fRj%t$4U8!kntg;BTR1#@FjROlaA}exk+^qdS}-31xGWUYHMfA3H9_c z_l=%pJwA+0!%u+CE>*$LYuWW833pOu&5q6^fm|X}D8&M_VcSZ2Xrp&KR^@5(XuA%I zTR1)!G&aKc2--oOKR&2tZGbdgZj61YQE?*Xfs&FvRO~;h_s8Kmn9Yg9P<3UBL=Jd6>=-))nmF z8z3kYcK=y|hx1{Zt(v72MRvm4A}BfNLrLFT=p_k#>%ACFALW?zQPY-~or`H-XZ{$K zfYMbwkAS*e~JF(@A!yDtvtM?IFx zx08{dEa?-D5G4&Q>ex2{5A>7?YgGX0V~MX&aB(A)eRJ=nKvxMYeRdI82Ms$TmE#%d zc{!i+rc@)*S52jU=)#w1$SH3OWlb&7=y^b~am*_&pC*4r0!X1ze+?OmGy!>zlX+z7 zAc3z~9OFT2Iee4-wiVO?9o}&^_+vTtjPAfp(xbyk8{ir)ALj)ZZPBPLv3k^w5>giXWle!+O!2#8 ze{@(DBY~B>aHM?d9U2f_|wd|=l3TaG`M|H65@v1#J-V|y(E*r z)g@&5KK{m0wbKmx`B&G?B&WjiZVr`P7JZGg4_!iz=Q*0h$=u`dyI8tMR)0;bsIljq z5hTE->9QC?oX9R6$NUjw{Ug(XEAH`eeoRN@JiSO(LTcqULQWAqA>xsgEe7u2CtjX= z+-?c^s-~)*_KBe2ko!q8FTN85ma+D?Y2i)G=O22Fmg!98;k(uH_~CG#%*>DT%{SO3 z`julr`U5@nc2?7|uEmJaBnLg1cU>>Txm6<9ize&)t3}t~(DB!UXf4Kb1q!z8yGhyH z3N`#Ysgsa42Py;q{^U>=R0h28>qHgMF<| zC9?OK*nLZtYE#g~-w!?+s6j6`gftu`Jq27vme&5Ks=uE3pQ=89W?`xF zziMl{7gk3)A^Nuf78Ro0Z~UvjC9Yy`ywSLC0}|50G(f*JVh*GtjIu^Q^g2 z0!A}M+TK^cU>A`g96$5F;JTh+gi+|fM{T==1}Q=6XghSsO;KrQMLaOyuahQfkwp`; zaWyKq2i$+z@vJ=<0-SErXxCaYjz%g9j}hrrKyn;jdu0-|A~7vwXv^g*0t`vY+ZoQ@ z`w%Q@BbC2Rnr3&SD--4-1UsG@-C@5MgfBaM^~PZNYHi3#hP<%~s6y$udaL!PM^``& zkFF;xjnT|K)E^T&E2J8vc+}O3$q|yhzXmI%d7H0kwr7P!UfGgIe_Vmmq2O!#;@G?S zirIj@y1Dms4V{`gCy7EU=3h=AjZ<4-R_&hJi02Z3yifkzX}3L@W6S8vcu$VMMD$E7 z2jGfx_U#G%d!auIxsF+qq$V>!T?IstN`22BG><573NMyOe5NZQ@F3MOU-CsAc!=vhh|n1bptx&)#<*8 z!H$hxBaXY&$kbxX`)lCjvIFi@RsmwBQ2gD{)3KSG?@dvPyMfD!j;^Y&U*1Mlb*qGB z2e@vq_aKmM)ebiwm%a3%yw{e!4ZK_2t5S+-$7nLo?ez^3b}!p_f+-ZvTo!6$7Ha(a zCM$K{>?Iq=>X5OoW^4dzR*7lCYp?$apn0INm+0C^+7I8_{EW~rqytM10=!};NP*MF znXII6Q$F54rcC?kf<`JX_H~H_<7!Z*1Xk?inW6EQ{>9VxaLvGxHmTZw>kUCu*8$B^ zbKBvIPmRHo$4fCDnpaq8?N&U~AA@2&FYLw`_?lx=io5=Z&rEcgl%F_PRg&E0^OpDj zxt6x(Xc!|deU6Yv+OAL}`!O~kZn)-6Wf3WTW-bc7lUV74U5mv>VU5<|hF_|3>5Tp^ zIn|C)8vjg#{6npf;QiT&@o6=xYV@g{>#`7P%d6{x4V}uOu024;y3pE_y9Cgi78GdC zY{xXlV_l1BHO)1Wn753T39_+Z&#*?5)Hh_I$rCjF>CW(}qcy|*2p`Ga`<;CP;V6{R zA##^`uFGNx|JI2cm{UTkG)rW86*-n4@Mb=>;bqC?#VQ;L?kE1c$@srG=%98|{L+DW z3yu3!a*R@BUC?e5#`wejz7w4A6Cdyg59AE?;ZI3NpE&e0?um|S;ZU1g1w$AOM;($o zS{ZNwx!>HdgU6d7O+`-{P>vq3Qa$$J7pWYLiIb%kq$2c6IM@pfOgzed_3sI=ivvA7 zAWXwB$iU2ugTFls-zRfd9e)=bbclbO5!t4z;uY^Py^l@JyUU z04JtR{hkdCeurmcwN)5EPi<8*!;6cgWr{FdNiA6grg%rMSE&*FAV(07dy|qdy z4a$T!o#>go`jkDsE#S&6*zvSpfsf`0Kkc)UH<$R65CGdl>lOe~OKs*3!|$KX78nQxH zs!>^|wcbA5An{`t`rWfV`_ z@1(pJZ0Q2>t#l7DxN5x;e%QtOE=k0keAmyvtbOAZhOmzI`ZTaqpIA|&Buo7uA*6kA zte8WHyp4NseQROn0W&1`>8SGp)7h~iLe)v!a^-U3ZLg$ zP2`4+x6=1vk)0viv2MPDL*?WwExq8~Yrd#AoZq z$s2dxC$Cj2yALWHufn;uIN#Oe(27rkD*jISFFZ@e$s#D_v5)*bF;Mh(q-GlT1Aq4}=`m7Duo0Q#=zxUzSl zzw+eccFp+S@^NoN+dY@v8MEv%!$jG&ZyoqBinmj1Cm9R$YA2F6tTMzFo;NYr`}P<* zsM^rc8}(XgjMlwuk!A=%sp(fd^v6)T)%;z+$cfOD;Z`il)U1=5UU!3Zt zkjfLHV11s@0f!BZqj5k(@855JToXe%_?>N`v&VoJ)5~a>hBFuz97FZVlCLhQ3p7Ln zH>f@IE>&pj=6S>V-n|bmU-RO|=Jg?R$I0SO;HTiSG_qmfb{PKDLPzu6lPc3K6{`k{ z4i@AskYAM@!}%^l$UQnUHfdO`*8xS(5i@}0?1u}!asecjtgQO+E*{<++K^!MS0SGnO!{ZVsJ#X^f#jwtrA)m zO_jC*eZwD_G{8)-eeAdC!>+g}~j2K0TQ5*U$yxg9;k4vdmO2AuzLxIIlG&NX(J z^sYPe{W|;Z^|p(fRMh^f{Lvg-#GOAiFUM%WitQo8wH0ZC55w#$=PXv}(U*MQT@~4X zhdF|I?ARrbuV$+$NC#KgQ9MEg4>=q)Jn-!r>QLc_99X%752bu>IOo3)@sZkWlWQah zCf#%I%!ORJHnl!h5n)l3CMXlehmk(A@1es@2lovg<|)zH8G0z?_UTl0RF<4Jd(w^H zW>aw=7$Ybz^~@KrDfT?ZJ+p*HLkFC{VBX)slm%om_s{!aq*Oncsts5&&|f)=^+tQd z=??l*y}}Hd!tb5&QOAuve>hav-rGiwoTYgDeDXubHa866JSJDt&xzae6%?bL{wa$0HWG zDsfQoBgU1Bl<~Tg$A%&$)N4H>g~$SX+H`eY9Mb-bdQCP0W7%TNxVU~UoxQ~6U;JdVYX~^HA=rX*Q{{Se(9k2(Sh*a&O zyNVS%g^W-Vtj(&=Lnz6h&x}d`zMDlg%Wf~968EmGm!$#JXPA^|!n5v6ZE%{Gk_P}w zlHv{u_bP0hfc5PzELlU9F8qJt$8~F4!x8C`mhBEIwaeeXMMryRS-T}De^l8X1ie}2I zSJa{@Rys|6en=m`d8T|An#Kc|W+*Uz3Pju0uOCs9NWF2yz_(p=mU@qjO?oH+=IkEO z{yJB1b35mCig|*g(VGVHxKB77sD-OuW$QMQp7$M#OSog-V5M50*H9hr7I-aJ^5-?$ zOjmwkcDkuhkK^srj4GFWTg}0C|M^R+_@n8nryhs*(ubqB;wClmQ_)6bq@AX?Nt)|{ zJs3gcktFfIG>{I)ZZ0E+d8>smah$=z464Mg6rnF4}~C=b00ABrK5g~V)V zSvNObo}Xm=!n&+T$;d*z-K3+2hFnZc6V|tIZ2|F>ZMpB!a6C%; z1BKI+aVi{9QFk(fU}ZEbNvLve`WG&}KOtL6!9@IWgN-f+flMAL6~$BGNt<3+$9v3c zuR=S-K4#M3WC>En^V`70pN4I%1B(j-VU1pBRQkY2@z28-Cnh;g!kKm)#^JVaD9Peo zvhUT6s=sYZ`fcq!NQl4`R1E1xSMelAiLAbmA}F-)smDS%bOm$YF%6ZiC?no6@7oOs z?@8iisAk`WA#UA=J*5Ap`$F9&Jj^|z3pk=gRxQrr*c7WIhw~DYJJ>1x!{`!~+&k`j zmAKWb^@mxW?T4u?yvFdyD(IA?BUjt1^wcU%;%W^_^?yd7B@kcSob;yuS>tE)uXha{ z70CWNuW~xp>;PZk9TecgX+)q!a6c&{^yS9QtfRzClDO zStW9B=GYMO4zv)^C05NNNMH2*)C3cNwgj?c86ODP&(wX>O%aV-2{iw*_+!9~1@s41 zr2?sY#-EOndws~xU-tiF>@9=Z4!bwu1b25Y+Tu=d3KT6?T3m~}OVHr%P@rgm7Ft}2 zLvVNZ;Od1iL5e9x!zJLf)^9JY}JH){s<6NtjI8J&N+^%XA!CWzHI zNBw>O(AjGo0#h3>g2=4B($~3fblow{KjY;E%tIWNzLAA-;1Si&M(IhukN&Xt{%`52 z2!6j`zkDKHMgK>ekF%?FWeE0T331|f>v4jbABP&~W??Bxtn}x*+4*#H!~E&^Ro_t(z5D5mX%@?=wXp>)GKX&f6$^g)KBrouY*Fds zR27-!6uTH|rH2WN_Ol)TY)ub`^EsR)P0E>tymi5T^j~SeY)nfEacVxWM1XRg^?(<{ z3eP(0%_~SZn&;k^wlr66bo_3M$Jjc4Lj~0?W7QP@_zum*KmRV)m`jrO^&|^W&WRKd zWT1jDGHE{LHqo(s{{F=idnyN zYdU7DVL>@-5oLabAfhALS0~|BEy7V}KNqA6AQ5u>b~J-)En7U7-;RXE&+|1CE_F<*S$hgdsFUTxjpv>Z~S zIs9NZl#WM`Pt)jsdjZ4HG11C2Q+ayWf&8Fp(MV=>HT;T>;?QM?!3UEsgo@clEd=t# z154MjWiaIpwBPbXJ2`++EdhFmBuZgf{TCv#^yox{Mw5-|vP}bkol2Cn_EdMI9+1?Y zqQvr=3oq~40`MaMg0gOWzI^PlNrdJ%A^n);W}2pfD0Mo~muI9BSueCnrO=Q3J&nTz zHxbKy1fslSPsNU!Y9y=y}#Q1!NTFs481yEd!%M3 zLYbj00T$q86n#DL;}5-p>I5EzTf9W?U`}yQ8~V~uXNZ%-SNmO@@zq;wj%ew=~y(@rD{!S*qibT~#|Tnf0u7oPCiotWy{{Ni;=6D@#Q2nx%4~j4@ti3Erxm#ly}R0UYgZOHq|g6BZ^vI<9VZHwjCiC z%V*|%VT)gxYbXyt6y%I}wq85koV+O302D!e9++u9X|5*(-iBnjBz$SW+Z%tBx;Lc4 z&*3;$OBNbI4dU(|uscIj7gSJW+^d1d-m85m1Ctu_5T>Ar(Gq6ta*XoU8r)sZ&k$?oWG4^L)f{D&r0rEh zl%-RHb32``ChE6_q(<9^`$ke0qADYV&UACwzIPMD(Jr=|9WOP{US_v9;~!D?>p?)Z zW8ascGHjm%Tf&lQe+e`3K0n;Lza-1c4bSNfFdL!bBDc`zjNI|#EuFnAJFUS|e(Pqg zpbN2f9l|p5N|x+?axWEHZ>SN$(7cbzL;Gtd$8i<`pnoGeXhKzEV_UI$j{f%QVCgn$K ze7`Jv-j6t#urmvQVnT=e4UNLj2Ce< ztaw#u+M@N%q5ckl;J`xj&jK}kI|TU& zX#dhQj#?ie?iSG!?~Q(648EB>kbT)gTWr;nvytMjf7KPsFqB!)Q%)nl* zB`6a_WJ3(Ob`emOJnRXP6QUUHw!WqqSQ(jq`mRw0=FRBcCRvEXn!#~ME9`dgJKulJ z|7!yUx{xw3I#fARWqVdHa<2J3@=CmPhTJ{F0*Qo3H8Cbh%wqZE_dZhYC2alFWKd+C zL}QpFq_Z?m@)Rvz-Qz~9H57H#ZMC#4kH4WjR9|;SFqqdR)W_gvgHHRz%52HZE%)z`i6g2@BH!K)LQGF)QcGP`FWb%N zE3+vLoRo^-=g9~whP>ck|0ep+lVjtRd09ClrW=6^`ov~3C^6#mOeV{zE3A`q4B4Ml zs7xFR7B$_Wx_Ae@6jtjkWj}GFs?MfVb2R)-?uf|+`Q}WMh!|Rqza63aav~cTM zqyK%7)yUerA%QmBaqfO~mJYu@Kl(3U5BP>%c6CNNu7<(NEzW|kn*@1;Oe#*bzQjIG zo1V}??ylVr0Leiz4a2cPxlX2jiX7MY-XKy5T$eSKMnSNG?`mL$*?82d9S*RAuj!`YeZRDNAso>^I8%cgc?2RNcq|$K{IcXHyp4-3U8k~xr1S^)mDBP;u zr=peLB5@YaV+O~qeh){Olb7Y<0w!sL=o}&OW*rm_VVA&LfMXSij$@s6k$iy>Yl6(t zCF_z++Av?RhDGj}B93iFAE0mHqTfLck{GIkzOt`VP$sFrUQiO1f^D`@pVSsAOuq_^ z%=%98&@g2BFie9I53Tq@1``eegoi!M>+ab}*OlEmVr!i@PsY|Zh15eB0(hy}8b+@)=Q`Gh)T{qbdb^E!jEa`EW>iI8ev;h5K2j#dLybi9Q|VXIPlt+Hc{ZR z^sdaGq%t6Yx^|LXkx&=@p3HtjpO5Vm&}6sa3_Ba~j2BquZ&Ho|a!JOhS(XlrP{O?X zN|s^+^S9D&jyDk(27>e&Pq6zJT7n%$vGx&n(_yXAJlqc<2{b*E-Fy#U7Tx2w~Tc)PFY5k@G-Y%-`=hfW<_1^;gJEumC;jxp|OS8|*HLX*j z_Wzz9ea&nI@qEq916Qub`=X+{1lMUI3zrFBiVl<4ZxPvj1XT=~zcc&m)|#2lb}X5r zS}mOU1_Z;1?WKrNM}R9N3Dde$&FJnC*M|B1+NbI`;xje+ST&bQIU{^36Rji3tf>$& z0r?KZY|TrPj@u&={23=g{%<+yZPG3<@IK*XG8b0gHhl*l7e)(M27`@X4N~U++aM*! z)*$d7?NN04>!Mb`>g0TlK{A1gxCN3gdIUNqM^0T`^iX}Vf05Q}di2UOK(W823JL?ol(mZH|hdPM(M0b zP_z>KlugHksVStsmM7TqsBgM}@h7oD4aomsuW}ONm#Yeo);8G0A_c#*6&-{F5`aFB zK4?=PvQepi?Fx}fH=|ichL~bl8?CQ^3fiTpQKc>*`wp#G7W9FbX0}Yu3D|gn!F(2d z;&#`!RnzeV^+(1Cq%OJpvfeMG+SO9U@M-vgi+diR>)oY3VlvmnlCiO-8X#gY-j{@$ z>>+jA%=+60cV&P#4zhxorY)I{Y!e#$Sx)_?e4sZ~UZAwi%nAPk=?obiMw8;5KXRfZ z9R)ctxUX?IpkTvNYtq+b0HR{yKYn41sp9oujx3N%9`Yg7-wmlq{92vNSWu?S!_Jx5 z(^*|Z-QO@ScOf76Ags%bI)>8|D`7_1-fi@OS3q4lg?`f$YG-8Y0igNl~-1y>_DXDxxpH5Lm3>m-e%AQp= zS^kJ+z+w5E^Kb1v%|6=RYf>)}j{aZo9y02!m#RgtPN>5s&a0t2{+s;IxAw&CO%r)np$wqC6E`$ zK^%#rz5@SnOBIk{td;uB_j4+DedMXAPiz+p*ZlXIZ}O0U+Jf`abM{|| zj@MlOHqNRdB3j)L?u1_>)nM}fyMMcUcFX&({hLi^ox>!=rn4WQD_4Oq2Qc#G+#}tr zk2(yao2H3b_#{SppR@)<=1U^fUBi3EBC-b}OG;U{&dE8^=EvsabWov1GmhgaNFX5K zMA4IaqeF{9z~t0EjB>yIJ;h35wZsSE4-daSGPJ)hg)>Rr7Hc!CzxiN^u4s&3VStpl z8d3KW@JKg?Mjt4A*k9Vx@|kXK-vz(G#9hVxDO<28QtwnaVhY^;>76KjZd-h!K#=JJ z$9H0LjKW)ufjLnVT8DadyAT)-7=HrSTdR^fa`cf3P=YjqASH>+O7FFzcW?LqX93`_ zZ`*=EIA=f>-`@QdR58N85(Q*u(blF60hj~#sm31*l>0jIJqW5Sqd#)tzvwgjn)*eV zPeR{s(X>e3r)+`5D&!A_eTke-`bR0q$vW!0>HUkM>_r6K(MpP;s0DJf4K^jJF}#ra zn-U6IF%6t>w_`&5i98A2o-E_fTXr>=eMDrOz<;B5*3vOCAEL!4V8{+DcsmYqo%rXM zL`~^3_WnrQ<{~D@rh@*KQzJnoa%uVvKlF>&?TOzGl>%2P-NZ)MlcfR!gbJnMgA||a z`0u4e>F4>Sn)eo={uKV%!VE=O`!++&>IJ}|{nsWwT zT=E_OBW(oGEkc9>#O<)ZukPa>9dJ7G?H{MAgXrW+uez;fa)#IRqJg7ug?r+@6Mt8t z(ORwS6_2gKtgS|W@t$4x47=`I!q0P=X6}t93l|en<{SWl^YWI&nvV;4`4Z0_zcMXS zOgvsCIE~*-B;(%PtlLo_O4M+s5z-e1OQ`O5XE*8f_F42VtJ-y6wJI8>7=Zc!bZ|el$b|+>!XdAbhYZwQ`wx zWZY~dG4``Jb}r!9<;hLSLExq(_-ov4VPsim=ot@tPMsl)x zK1cO^0FQ3EwYL4rWI0wC17JSqQc)#$er8}m+9Sb%oFI$_a$3v6qeI?-n!Q5lvCaLF zpTG*)96C^ij78=-fHEZuM!h+^{hviVWM*+Mm@N^C&u>*~kK8Ki&Li#{m^o`=};!AhU;E{IF`}`IGHw&h2W< zKIpddf3#o{v7a2x{y+6*2fTYN%U{{m(94HqPx#D$0RvfT{jF!|VomzfIw}`@KA>jR zwsPm!-=ccPXvWCjyUk`}ZsxzBXFb^G1V}T7g22B@EEp~feBpe@ZuCueC;kDVx^({+ z)}fM^vdl;ZoBRDGC)i%B?R(fHh3Ipw0QJzuOoN75t+n8yc7+J`2-!xpn++rdE|5_N z?VeO4GPf7P3NrX#;9B0xS>NSIg3xq4|MfBQ}ym;1N!nvg` zt?H!&krq_9JyA>MU_ntqd$)iKNyhu52wC6sMErY!2^S>$Qov6>$YQd{9*BHkI;Jc< zkvtNeN&CG_qangbvg1cn%6F2)B)ulU5AC zIc9)$XP(QYawqRt1c%QBUB|#te59pQVOu*Ch9#5#EIg4Q_2?Yp_>ye>vO6l`K9u5& z&~f@^xF#!cB5k{C)PZ5d1;OuvwxVm)nR>Cceg^c#~q@b28`?%!S|;vu^Z+(xSloenxq_V%``Dm+Y;S|ag~POmC9<>#OmVb@$^L%2-I zj~SdV@~8krD01XjQ-I3P^y7I(YtP<3b|0jY5HalFNkh6#XlNb5)jJU!z(XVRghK;m z8S8p3Gu?7g54Kj(Op+G(yedIU^a{)7XNGam4M$>5<{MZ+s!I4r<&=9Dv_vLKfM7`| zOYs1b1F7kZ2>NS?B--N`hGJpJ`OTq7tQ=z9RdqM|;MYtuNBlp$yZTF6!jno_D@BOS*B8*G3yJ;S>BEAT0{ndRBuxr&O_zmiVIQ6$fYq z@JH%Y;*UD^JPl6*04)q#6)hmWH#n+9CcihSBPPcoSnEf^zRU-1~ zy-U@JOS%Z)s=CTx?9R*O>gJNj+!)9TYY>X%ID7gwOIcfUk90@9(K1Jr-(S5`33H3N zyPXsCYi=Wi=StyOS>u<(Db9D=ZZu{kH_P74_@%7{?u4l?|PWDowkKUL>0&-S-F?A8=$98$-G$@pLKG_ND&iIkYy z6_Z9UgoqXb{W{aMF+y3y|A(=XgK)KZi?8}XBX|es!-Y%PAtH4XuHfkg7)e6n*#x79 zQsVR2^B-kAQ&jEJFnLD~83I~T_utIq@*Zxq36`QO2_z>tc00vB$+bKa`#dXaqW}gU z>af3s%VGs{&5Eph;)a%m7i!WU|FGjop0UJ)2*pQI@G_g_FQPd(hPqC$vxv}sV&x_} z^a}E)9-}0t(qPz&8x))}UigBb(3b{WU_`A1r;3a$(0!$#e?nXVvX3H9-`jhNI#7W2`=O=L$H4b#Q=;|@w5{}@Ezucz&CX^ zS?G9kt^Eq%rRBIKaPPKm&=1*=@hc6t z7A|_**+nauA~bqlw#^CBzJvvn0`-nSEj={lpLpG z*-o$eogk+8*I)jhq=QyIBIF67ORC8DIC`C3#EMF5JL0FbL>F1@l|ueFoZNkh4jN*N zjETI?81zA3mW_Yu-RCa}72W-kk8kU8C6K}csfKd!$C9$tjSM1?r_`3`8Im=*q@&Cm zfBLRw40vf zEP9gN%4rw+TdcXn1PYk+|EyvJ<}U@$T;#MeQm~~0!(g&kNbH%*$^nS=Pw`+_I82C; zPn0xw9qXAq*;4I$7WcZ)A=4lE_R?K)ZpkR#_jjt@$>1u}+;1*5*Hx8@d0V!OyTYSe z#i%R;F&ZUpG!cE>b$}V0nqrDCVw28%EB~j@rBQZ4HTgoE@q_ zDEH%+Sz}=sBE~`S-V{Y9Qxruci(jY&j*v3Gw4xYvswMRd07ZHP`6nA-c(ZW9(uh5w zY3CmXXaJXjIdM8@6mx)0SbJk)1BN?8O*`g^D8nH<6{)FBhE9;%1)V$3Y5*(+<;$n~ zbfJI=WDbg&a?ap)&@!V|S1UyBt6vp|L7uC9?=$Z-WEwAG7iQNeTu%N3i{p7mAWC`L z6gd{fXAH9x%-%^E2;yKBB_vk3%>G!S!GY4a7&t+%R=A^sZmRFxAi|1L0fJKmHbxppd%5+g&a(V?JwU_`OJ&~ zEgp%lStHjX2z9JY=7K1-FLOz&Ht52@LM3%{%Q#1&n(Q|{lLQLIj1_!ZSjR5SkSc~mLqsFe(7JKRg?_TY5!RnAJnO%MRvJ%DvLKpuikhX;)lh_rX*d?fE9U7SX$s;XGGQ)gl!29!c}?J;+Q>8>vZpf zYV$u_dljxSFSQcklt`*7C`}0`9z4D84(#{K*}xl8$SzO$5o*@k9LqZ27aXw4)PzZw zXC;@ojB?gJET!+RL`VI>IPh^X>-_LZq}Au1+3&pYb^*@FPwSzm;E%TdE0xn#$jXg? zalGsJGWuiP*2LGJN~Bg&l+^GsMbdLM1nZ@Sd=BC@9;URp*e2Cz@vFe7wi6kLHMDf0 z!t>oH-d5R)qx)I0RywPWd$iwlt|7-d;spBSl!t6-w;T<0TUoad-;DGdDmj zjomf`7bmw92vkwyGOES^nJynTA@>H3lfPyTOJM{<_)Oj-wO`GLZrx=;Zb8C#WsF); zO`0e#+L_}i7olkg+qvtv!?${S2p@Jwdv&)CzhRG)KyAkIvByuG@%VKVU5AvPF5WYU z2_If%)nXbaj(-)i8nG#bGLgr@c;L6~d?4Hh5Qo>(ZkjGK-DlEz%t!538M^>Bssw}{ z-|Oc7&Dt@9281cne(z+-FhZ$EQvHjjw+$fUREK8??Yh0wf17S1%$R=0Bnq#(xZ$ba zx#mIt8D3)uU3K~>q;Ik(W)*aT^pHOKjcYKVn<^V}%lLI_5uQA**9jG=+szVv8cm z;Q+Lp02LyD3Kt}-pbWR6mGcQb9dvs>R==Jrm3;q(Mf3=T$vO(GlbpCNMj<>i;c7uMIFhQwg<)Dlf zTK~Zs zK)Shy9#BeTJ{?D5Oi8W+A8n~}wg<7E@L3p7yz6`>BG0AJ7}HZ$hg!CRsX)=#U`q@5 z{qdq8a?9Z+mWdC>h{xZsTXeX*>~sHKWOIOdmNQM-_;(EgoBTSwv2W7q3GHzH z?gJoN?njsjs&ZFS&rl5Ohi9Kfco-<#|UmzkaStEzeKGa!|@ zF25J@TEpJyg1XfBBnp$JFteT4!|zmtCpe;GK`6e^GYm?tNj&n?mO5h9Exd)VW-vCD z@*+HN4FhPdlgWEdgPyzpvoKcw!FGmSY@8}6+e!&9P6z+|Cfzu+pH>nlA>a}i4=J2D z$PRUIBiBaGA0_-Yj%v!287BNm+=DS-3B>-f@0e<3y0}fzNm#8q_2dt>7S-Ev7?dn5V`l=>CR;qh?qo z#)UBfrBKVk)Yt?b|3yIVDINTl*=v`2qB?0(;s-n#OhL`#ceAp3;uzYV7xwQZpow@M zqvNc)@y27pI8}GW_x5pq_+16D1u<-zM|b_PO3D@BN2{gk@!ux%R!tH-V)Qmy8wBbQ z{kSnLRm4!Niyh2$0VtQG93mh^sbfLB$`-lGU0cW(u}QPW63toy^#zKQA7>iqCbbyb zRh+1_;bdtogui34%^T`rI3ztLDF$MXz>RMnXu0m9EHDg2)}e||EP7MpsWt;9q+4Y8 zb0dWoi!`}mgDL*}q49GbW!MV=p5cJFOu#^K?7~jcTL$S^FY5*T#fsVfc)xDi+@v4q zE|@G3h(IuR?iA-?y%k{DBQ$#-=GJBltJcO;qz~RU`z+P~fW9h@4Wv;loU75qwYd0w z6lkdDyYQo|_QbN^^>#xEa7|dvB_Tc6liM}kCf3|0-xZE{Cr1!gDXn)L#n95n3dW-2W%Q*hF0{%B1x}jc-5HpY+BH0sJKwQ9Px$!|6eiv# z?ov-~l^(sn$Wz*+#}Ge zNAD=>6Cel_;_H#HB)G}2Bn&Ki1v&PXYn}AG zpxbHJC-IP(3T=)o-fk>1nZocg>!Q~j2zH_Np9p8w~!X(Spf1m zb_@0I9V3~Z4S8`b$*fhuX&0aun3WBc8(mpmvI{D3Qv zn8yFf$onBBVZdqvd@gD>q0!;b%zQ$-$EN^v&hIiM83q0%Uq8#6Zuy3*Gta&Rq^L$b zHN5UEPbus70qc5oqF^*CphbzF*OqAa)8ra<^0QWC87&XjJfl=Dp~~4p6&k`sykV21 z65)m)TT05;m_jqvf-Rm&IOT)IKww(?jPvP1N$q=)Le|#2ifA3vz#NW>Pd2=2kD&3j zqa>^xucHhvaG$U1Xrs#gXzA?Z52axD6!jy(+oT*HMPVLeBscHyE7u*>=dQqIU8%qm zOQIJ;Z`!~VknuttdL~|9_*Q5w^@S1hiBE@4 z81OIabAe;-04mm6 zO$%(~z7U>1c{>nLj`5M2n!S6n+jgJ9*gbq@EMt3cOMndxuoJ;JFOD=t`;SfbiXjfs z-W~z>NVX!q)?y!MZ11$)PbIfbdtPB2mn>O4=7B6<4y<>cW@r zSY)fevS}tRJG(xcq{^BOFEIe!2D1y5y_L6$}o#!#8f*z!MP4_ggZ=yQUo4Spl*2fHzdX8xF1CdzHAYDJCZwV5$+p9=oIi6o zkJYK%9uFaVJmm0CasY{X@n!Oq_<5PFkOA`YfUAl7&GzVtyBkbwj;)@^D!oVN{#lIt z_}nLye))fvgP;_*{8|%atR`-{J{G_x=O;1$Y(zsXlnjP^`^;8jf0LWwal&jn29ulE zbW@9_1^u4W$NuXg672#&9eEtKr|z9FDl80(`Qb2-EA%G>%CqktX6az z7613?@;wWmaziK9jP5qBg&Hi$Fs`Tp>FwiyGuks-uTohc8O`8&>hL zj_32N^%?q!w_M!?7fHzZo`S~{mn4|zWfkf#$sTxttkI<4bPj(h48;{j_(oVT;iN+j zxIQ{>C14kodYXCbsbhkA&K@aykMcG%@`xf5+4J4h{csU4=Wzvz6snJk|d8RZx5&w-mSMW>tY9siQ6}gd&W>3mZ0kwyQ{u z%$P5ie952Bzh!h;(G zMUdWG2cQfG+aK*fi;?Yr-hMDewUui%9`U3f61b_t!p(6AyUqR_Hn zos~^%Xd`@?wgj4adNMW21Gb@cg6-uN`vRH0nCM!Xx*j1H#7GKWhuy z>VO&i%!xiZ6_9MXH>f6cm7X(9)uw8@Jq1IHIsTvKZC?_=3mV)l$2b03y(C;20J5|% zKaPjiyz|`AjW#rDK>gY^3xV#pBHmld_Nq3@ACMQO>~-)Hu5QxOQIKU|(8bc>p)pr4 zBNmuOA-&#Mfczq-JM(EphpK-?q3wkFKG3xWo-ww96$|uEB|ohpXNc$8D^7`EQWt5S zA{Mg9mN@}_^JQZ*nYe{Cm)6BVp3uIkEVUpO>3NZRdktT}O~ekQkJ%DFc-yfR5+gPH zO>s8Bcg8XB|I&UYwK%Kt43iCDl1QKYCjQEs`zc=EX0-o{%syK=3*C~TZ?l0ztQ`q~ zYLj@z`1i)bOhL!K9kKvtu$sB66e)^LChO$DQ75SN{s|e+n??eO$SWaoP2z*}uBrI- z7{$N?9ay@?_=hEyHcQh94IW$K8jql_eO-TMun@Dk3;~PU?vLmk-+|5J1ZR4xi8C4c z;n|T_UOH@glgt*%^83jAbv?+N>+Qo#NdG-5RU6hG<@qx7lbq~}E|D9TY$?7l*Hhf= zG$!H*a<{^^<~xHE_^dq+ zeA(aTvy5PQ<9CiHk0^MTrIrSo;^|Z(SSo+r`> z%G^oJWHLsl|rw6p9c>4E2wL7g|`8dUe8A3-j8}j#_rSIUEKNV8zJEi0hAao`2Z>+a^1wS_Y{@w>g-sIzLrN$jsC{Zpdi&Yl>7*RspibPHpXwSO-66ErpKd+Sl`12;i zv|~5>?baLh7d*0IRtTr7q+#*}PVDyXJvKy$ZhBfm93ukN|Mfq z`tE}7U3XT3D=_Cq3G)#CIX9e@H!l|f#2%wUJy}R%G|=FK*ZOo ziL@n0-OH$`G5BSttb2GYuYemlXH>xfp_sOE5wqf+(P~!pH`1O`UVM{7>Qdp{HsTjc znQ#d^bBG10GEwQ{f7e8rFxt-vam*$K`2UP8s|+7C$dvvS0a8P{C(hN}l$YO;wwg-r zfht^lU4IAg)o&NYd%GzI%|yh-)-mInB2xPN9v zO%wcr@PPSiNkf%^<>X%>b1KqS^v@xL`(7z-bF+p<>Lovd}}^rMvUudD(DLgP_ec_ za*w;2v+n-ptCehjSe17JM%gO^@`>8<_i7mEQYZ0WlMUw8D(xGmpaOiy5+}jRGd|Bu zs`%z#>Z4y6Ze95RPtaz@YAzosrTCTp_a?HUyzkQx8505X0+1>qu(JD0@+=;ced$DU z+F4|x)jgsK?LzElRf7u+;KFyT428=>N1C6;hbmM5CV(dTi>S&=UcX#&Igy6e`q9FK0DBT(qz8p^ZbLG&g43YX@9O&h{FErIm5&pb4al&F;^WaxxvV${ zvKm730*Lhpe^(@QtRN8X&V;F=0#5XogaG?agG@i5ANrLS#(@`N%Cu=phlnG-z=Q#B z%H8qZ4HT?p_Bd%&0Lp{m#R9Sp zxOXKo`qUSVG8aVzn`|$SiiukpD@K?4a$IiK+wRIs@VvmZ^rcl_Oqx%-an!xN=bb_( z^UALym&!@hAh&R8l52-h4y*kEj)>Djbt1cHXrUn6Tkb|MP5vlj+Nk#D zI%f>f3quYX2-fFKL{j&DFKR5D`bbMcx9av5avR(bbadIg{bJ?^Rx>$Tq*2@Lub1J5(37x#pu99gfv%U>v-qiO^i_^ z^I=6@VTk!4l6U~L#h$3YP2`e*N@xMH$6-e-e zd*ebNN@DNUW3$nG6rDY0i1P4kR=D4AHE&)KC(V^%sSo=A8?%$`KLfbARa?Q*84-Xvc9W;yd`sH;Pj6&#N=$|HyyL4fEK zkJhs%fP;Er`uQZ|@Qu6@HPx0Fma8oXeonkGHeyI^Qa^%|O@%OFEP_{1P|~gFlEc%v zVDgN*Re>>jpp%&H#GiXl3_duNamh^B>Qb*a7n= zTI(on>8(g>2l@rkeii!F(jTS;pALgGWs_M>)Ngugt;6u6q8d6zeHoD) zr|SP$d<7IP6kcNv%YCd+s_n>cV#r6>pZ&%Y80rw@?g;rOdeTcL47Ja~dBYSsQ|_e6 zj+MdFiy}4sMl}tXbRr}s^dT!pNk-Yw^UYhFAYOo%3fj$G_&o$^xXp|%Al>>UeY`t^ z3N=nG4Qxa2P=~vUs<25#8?jg~GQa z{grY)N9;bME!b7gv={@Mk>~$qu)J1+Yz31=MQqXhf<4V;!WeaQex-}*+RG#lL5@kT zmFlvWj_3Y5z#8rEeFL*CJlgYlFTLe0^0oOSP6Cb|xXWZcFvP3t&Ds{)(pJ?wJ{~Z~ ztTYBkwvzJk*BWzb$$GCS*<`obSyoiQk);`B#Q?sua$Y8Z>`3iYC$mWWNOa?n8R|zG zLmU~(#ov-vU&dT2Nnft6uFmhf%vThYs?Wf<;LywW`*I^K(hzW)nW}@!(z~b~_YJLM z4e38IQ4THMdG1S@WqJ`(NRRnmo69!6XZ2kbBJXneBv`IVe~Biz)0jg7Xs|4bzy@|i zkDVb+Zhh_P-H~$NNlk{mweG2pxG@|KZF#+f9zDoDg(p4Y^x>{lgw)Y-Sw8Ljx#ugAE`hQZwhkqf5DmsrouZn z5+cd%3Dhd)pq*d@T79~*b?3ng4yj85>$?p_2L5K*GsNzC2;b(W;(2r#3Vvc>2yV7S z4n9w`YLcf@z^^9ml4Gz7+ulK|1vtX0z;l-z%cwD)y)D36gp+1KJT>~GPW?Y~DH!qV z-x@f^1H|UcB;W4Mxzx~6c!~6z@|K2$hz|w?#hl!TAUIv2u}8gKdqX&rTcAA73M_m~ zpa2-sCmb1?fBau`y;V@0QL~0SgS$HnuEE`1g9j4ao#5^;xVyUt5?q1=cMVQ(cOTs0 z@b7cZ&942|ck$I!&0Nh|t5?7M^xFx~){TIHYH&fW?$)PU=@!Js8y{RT1Dj??QddC9 zrf$eX^Kk#E6PhjGc}YziS}x{dx*VRKc<@FK^K=*%7G;p_p|@2>d@eBldKy;@haXoH zW-5#b;)L#do}A!SW{Xsi*;A$j(8z(7m$Gg{!aV-hS8L2DyX@5;Hyv^-Q-bVB1^D-4 z^~+W(5sw`N14@WpO>mMSP`|E}=wdVmW-A9C~AM$L{I2C7&XX?3Uvlx*;iNhKHPd)iP(ni zba@iJ-Cc`6tfVKiLD^aglAuWqN}6Y?H=={}U~MaEx(59pS0|pcPv#Eds1Azi#V5S) zeVcY=599_{Z+w$kCu*?Vc^R%^aM4|gmYPd7TKZcr(@20SBbJcM4v{#3Syq7wld{-M zM7`7CnHMh+wL$qd!r{bdx1mV3ZKhYfNz5fOB#*qNKO(_|oGb93V4gNG_AfHVN_=eS z-w6+@VI|cyFQe&5r#k-n)m<8OmT;3na-k^sRKC4ElYzY^G2lx#d; zyA5lQh>jRtp82(mIvGzvzQDBNAtU5&AZkX9sA};+%l8_j`A?QOtITMq{hvNo0NJ4e ztfOJC&5!dgWtP&SA}InFH}U867xz@a4rs!IjWk+M&hdPeD_jl%KF6p3Dp~eb?P03} z?@E?>p-FpuX&P`CpYkuO)xi4RDdVS>`lcewAe*;AD?Hz56JHZwwx8*HME^0W&m-Z-1&A&b++sC zg4#DM02Os+&((GCVlck4owuzebTKUuC^yO%k}MR)h^2gNE_zuE!fEtP|t1N1m39SGooDpcw=|3 zeURHyH|G@nw03JQ6IrG+hN995!|D>1D_NCiC)s;QxWy#l?zJ&1F6@yE`#ap6)!8xy(eHI`Z74ro$IUq}rv%2^rwN7m}z(4~tJTIz(*{i@;l zpVMI27_7_P{E8#kSd`BsZoLbA_y-C3?dAm@$~?}u65(F>#3zD76KWhDWZ$Fx*&?mreWJDbA+hC&Tgy7~?@>(_>%>gESG);XazEnYl5~aWr^t}C znL#ks{uWV2CA5(=vFi`1pNyyaCgU6$w+Ij)>df^`7%e7RsltW6copw0c=SJ8LEjMb zQTMm7%>p|~So^r|YBuGTuUKL-JOpo(${WTVKI7_UmaKTSFl?0<8pMS9wNxjPNH+CG zrsZD|-LIZs3fNU$R(g@?FnK{bZgR^mwUPoFIk7_=B0}g2Z{Yx)Jzm;dY4D!puD)|x zpVbZw4y=Aht~vSMI_3#e_uLg5a0~5rRJ1^u@*x|N!8K$>Mk+u2^}+f=yO24=Bsuz#uX3t_$`jLPm5L#$C&epkI$_@ z0H00C*RXj}xoj-WV`QGP_pa^ByM$+te-8GnwJ&ezduV&S`zLTm{)Ij4c$d$4*G;P< z9M1h3D1KY-KY*9!{{UX2^*>ktZ@kMa&|?|O@RFx6d-up4TT&VhUGesYIXM<=AG#XF z2*}g_+w1B|l0~g#2gFRZ3oHdzn>qGs2d?ru;1E+?N$0Qcto<|P>KI4?x(p5 z3-%yuwS*VAQ_u|yi>zvE(F!hlC|$y54!*4Bw9c?aQ`&vyvpqaWb4jbJRSfop{XUgGnZ*ZP z3+-Y(_A7iX#>dk_az@)l_G7*rbPmk{A2OVnD$o_=SaCe<=lXAqx@q7HLq;wa<=uFno z1bYP{`u5W2=m8)Et_RgJ*)8wLG3U`<7aMDiNYjDPi*?;T{VD0N@Dl9>zq_A5_ z01+TSlaeXqPLI{tV=p_V$>TVc%^!MFGguE=V5v#Ykz2k25@I$rL`D*RPnsLX8pe3# zuGnYp3d7|1FCiwqHJjaIdsAvEUl%Yo)O1YX@O%P`xsT>t|`Er0+;k0}hF@GO7#^OtE!xg{!@lFP^WJWD`$* zBmgmEBYoKJa$jX&dlX045rGp9uZ)JZodzKx&Quh~OLb%HXE{WAH1z_l@Q7{b&2%&{ zjjIFnq8_xr>5TrlI5nMwT~F=6-thX}BEHQo!O7-Mvu%^?MR)?c|BZ;KOV8q=P%B$^ zcCyUp=gF(o9}JjBdZn>4IK(-I6hVdn>yQ>Gk}t_QL8)EZP-CH2Rfhnvu#m~kvGV7Q z5)pjdN++Cg+D6!;$4`X13RphfC81}D?vaR+k9vi1!bVNYG$Mq|SMvj0C6)vD!xE_x3^T%A%<4{;@kAEOTM!FQku7;Nsg(I5h^DW*95Q$b6#@}4f$9T3#) z2{w(AD;EhzPENf%xTJgwK$tADqf)dS6^GRh>QG|HiBs;|_3afIz^p~&Wt=Id%rEA` zpw1MbsB(^3vqi3uZ=#|O{XyI6Df9eap`OMI-Co@p`CfX8L`fYT``74QMbymD9ziJImqam5}m3d zzF)pSp=4|z1zb)SC%EBBt)TZ!hlg)X2HdeV4sT2i23~qhR`-U$)PEyE-Ph4#K9Fjd z4M1`_e~^)u1si311*LB1II*+_*6$?#5Lh$u2NYj7SKkyURC`W&8RbD!y%XCtz5oX# zDR?(x33wk*zjL8eopPHnk%4$3_80igf#aIU&7`01nZ+RVTy?+e`I)Gozn~3?qIc*c)a-{_|tmk5C4?w*9Ew467?}g*R0wPUPIjl0A`%3~jY_#xYv5?~8 z9kxO7OBA{>2PYh~$b_!EPXKv6b%~BEe5i;tFNG%`qNtP6W z-@{`HKL_W+r_aJN=In3rLSIw0u))D&eQu8T8FoK1gWe_n+trNvf~TC3kI$EC&|t`E zs9hkrQJ!DFdtSY3b*10NoqIoB7YGe!*^@QT$q3R43K$IEH^zMG5nf;U-pmj6>a~@l zDf2w3ZA|`>zXhJYH2Sb^z`qIr?fV!!A9Fb}iupSQ2xa~U;6nZnmHC29P%_v5-y-b$ z8xuxP_VDLp7<%XAu~uYtVJg*IDgRU|fFs(Aw;MmYp->lE6?()-xT5r5`vhImhOuCw z#Nx}B!^~l-4hgSImyoMRk1^J2*;aJ$MOyg=vnnzgnwf66B)}YQkxENYW~{fHN^un+ zQE5u*{HNKtG&zk*j&eQLY+Hw_huyjSy=zFn<%c@C4pq1-o|zBxq<*^v$m^zg z3LVuM1Q?DXcvZnSi6n)E5KgV>9DhH9{-FyVg$0OMHiM182T*i976>`gGo^JJ=VAX6 zxLRUn3+&VM%oOi(#zOAP?CihK-pLc7Pq&Jag;VW$X35nRpt2$`{|vy|Vz5(_kGSIO zU=%X6P~0lfE31?7fc6{%D5f(p0joH5qLWaZ>1Q1m?ZciAr+D#a6K<^+B!u0I&Vf(n zSh(rHU7yBijV=gcGCU)JHMK;AQYP~>QL~ zK1X+7qD+XVGxk3zpZLJC^y@DzaI0CflrFZZ#amh{^V&=Gr~$XllYPZ^K!ImVV~<$Q z&{Qlke_y=8NxZFxbz=hcyA410zrPS}ZhkT{HcPU6=`3;1$?x{3-1itCig6}do$HM>(id?^c~1M|36q&aWO}Oi ztvPRL?4b%cCn$CYhmjjAiFF_Sm3pokT1sBnj)88 z=H9`PNXnY*33Dh&HpMpzO;gM-_r4hIWdW$#M@lO@aX5>0^mD`vtN0BW!V2-|BHkhk zSa?P4YstGm3$|Sxz!>t+?o|!^zBYEG%&hDs+ z{^5{N9y)x89hSbPISMXu+45J;1Ekb*Rz6px%*!{#(S}#_9 z{S;eCw7h6CQ7s}AB<|Fna+3MlL|?fGtxC) z{Z7&|gkf!#(^N*yJQ&sX&59IL+K`_DE5F)bwq_M&40?LwF$=>1lN#4fJa!QT(J znl(|QN4pL##y?VWn5Qw@4jho#ib?5ePm$~##nX26>F=z;A*m4Jnn8AJJKFpui{4fY z0m^ij?EX-H^W&U*`}8$_-1&SPYxn_cO)u_9&_>sWr4X^yGvksJ3}0Nl58YysH&(T5 zGGv>1C#VuR6PUpVcBV~8$TJ?-lzdR;SLdUfOZ&yS{2})qFYQ&d0fY!>ci75;UlJ^9D&dZLw2nPjxo zFgL&(lu2*0eB{sVx_~+uM%{L*;IXez)r5$CTmb?1JTk=P_WTLv5y3Kv<``)^>Z=c{ z?tDZgK;Pdd(H-{(RUxmudx9RRml7`lB9e>of>w^4or@Rs?J1Lrv&Vzr6qm5R^hrpbi%O-tI;O&2d%sWr5AcQ$Xxa_7T6AT~yZqss&0A|-Eov8QI zd8y~y-K6GgqyF83zo&~mwvw6Z3tj|S@lv2Wr5-OZ^YiD__mO0nkCgIjj2zw7y4>cc zFZ=sT1F-1qYQypJ!$W#8LvJommQ(SIs%Ax~0sO`>fAcaP#$2HUIe+n=+|4@EDBK?_6YlL}4 zTHM|YSU?ryf_A@17+k`I%#{e=#_vkJJf>XAG4~b<1ZzGp(;CvAo z!d{0R+ghUUgaBzBB)f>-b9|`{Q2Z*O3`at{796~|Z$oXQxE{@d;sRp{5PJ-Ay6s>W zhtw5bjDs|@*-9yM?58XbXt>!$`Gy3|-UV-1p`57wXaVOa2Zk=NG48hr(=X=xs^jL} zFI+w6L8|vC-8H!PYcz7N6k4mi7wiq}BM8&)1>M9$3yy)oA%yI4wPmkCvjr*RmMa?k5!O3wL@V{iM!sWWu4%{k-+ z6D-xdU@|gPj@cdX%@|yhW?X~w!j586g`{5M2X|@*dv-2@YByd_R@Ug>YYY`Ol3~|j zk*VRk+t{LhqK`oR-_J$`tn)s7&Zwv~)MsSM7Wk`22ARG9g^GP}J!>S-y5UF6-#~-6 z`l>?z9gUA$o)2sAWs)q#D3!7@;{E#9Zocni7sA>rsczrjUbesoCvPW zWEHjoCJ$4aF(JMJ?aE&(Dq@}aA3o!w--1~C!#vq}lvEzJ7qorNA`4Z#3x6tVKTk9V z=?zOTK}N;4g&Xu6QDG48q}-Pud8L zT!d&Y*{&GHCb8UCOhrM!FNTp9x}$5`T8l^KftvLN(8YvRirK(^ZsLK(tlD{IS_^4+ zx_DYkP8pob5wKz57EwnosiwgR3v@=t;p34a(abMdyt4*|tKR92;}aJ}cU&LMQR!QilwwGTzRBqJJJ zO5Z6e^HZ=XGwZriV>&`0{tt?80 ze2~?BKx^bbxjK_rUo656Imy|$JSBopV3gFT{Ktmr2qNZ5g!^=YQGotte_HM%ZxF8I z3dx}BmTF4_CeUsBx7rw)Y7o{gQ__OO^(dBSLtp0Nv%}IModI0z&b3F9MkRK1_EnO5`;X{MbavnAGMZFY-Q99BK}L3Y%^A zAFgSvXygX`vSjvgGolYWCaR@5P8WmHZj$1*F7!hihgc-}kWMSRCf*Us@Pn;LFzmIR zP$tw{1HitrrvJ8w1A&PI*!CADl9mu2_VU-nJcwxAH{kP6NyHp)T~bl=l!2F) z>hCpnuVANaiT?2(C-;V?>LLlB_LZ{y>ysH`dCr$^uxTbtF|DpW){>v|KO{O)vFw+j zf{AC>&cwpM0TKItqNj;1OYI$q`1l8fHv`h;XqXw1Q)G~M)O*?>*g=a$XVd-$YAhMu zACge6REx0h61Hyh3M3=hqx`m;RcV1=$FhV+S%F}iVS;&J=7TYPuybtO+gZ*${BRn; zGPGp$o~hg?v|%eu?v_0cP?{IxOlJ3EE6Y7i8w8mhLU(k`39)owm3S{MhRo)RplI@b z=)lh7?KW7Ku_$Ow($Wk(Yu_+^z{gm+_KsOhN3$6M)eFeGX*|?j%%P^so~xwc@iKC~ zmTwZe-J}K@px+7w3_z6_-j_Y6;ZvYk~55}mhtqBFw|&`=fMy493>a5@7bKa^N4)^e#l=# zUa(}ty5McrzX1J1`M>hU1JS0V?93{hRY*SA=#ZmzthJl+H3mBXj}pzE*b8q) z(7hid8*xYwMhgOY;cv`;OL$|$Cm08V|Ar_Pgvbh8vqXfl={WI-t@93n+e87W8tGHhZFHskERoZf`+6NuEe`riemVmqdL*(hT9$O6~aFOw$S_zolc=#1?{-T8JTbHKI?oM zhH)-BB`y9@qa6uB>aH|y?%qKv+{DFt^!E}*%w?VE>-(@Gnma<*xlu2w4j3K<)3%~> z6jg1slgoBH5@vO;F}p7TPTY=dr%KCu5t>ePhhQEQ9tl--52mB|{X=iY7>l;D8%q~5 z!l@cBC#S*##Co@Ub`cLLDQ5X8)QGiKOIUH!ph;FmQDx)NC7=mjUeXQ2R7SpRj)oe( zJ_)rOh4#8yaOg6Ho0_06;)xw_N+dtJAMtGqnTia4A%9_24LX~DT{KJ; zI>^r+o9n#cjwRQxVO|1q?!ccM0sGHL&ddr!pJfK@FAa| zhbVrTu^Zsfrn&kwKV6{}EWr z2tB6@QWV9r20UUkwORPzodxPWKwg7ZuR=`fb<_809fhlh2zB-=pKWa6y-ZDSn(L*H`-di`+7Q64KQvx4oZ+Oz+K5bB zC9iYeSYe7&zDVNzj1De}{W?y;_8Nom%whC9?k29D?_*D~0><(AsJnj_LX*=NkZE<4 zbmED*k+Fa)G{Gy91?S-1U-yFOiP6?34HggE4aN^AUB1|~H#MP`u?B`46QwkXXS4%r z&{h@Wh@F=p06P6f5~FeCs|(#1(cT4t#5LySncPG@Z-8Q1r9cy(35`rXJ>>Zwt?mP= z+oH5Jq|{HT>dlV++(P-@J+>fO!0a-;+je7`$b6(gR-g=uY1Vm?Kapz11Jq*P5bqC# zsXF1f7QN!c(h{GF;Ow?_=7Wg$ZR3V)*f_G;*xu1wd|XTNJHWv~p9YL&mq*qlw_i0p=P*MO}KKjO&(3L>GcdflCti! zkWRwaA=c!JMg{F0DlC!{z~T&l7p8#VDH`dcEZ}KUc zCtXaICjJI}K=HF?&RE2h!?x-%yQMGh-wsvdn%1!muXx%;;&-vtlnt!81??}>!U9H} zJf<9GcI-J5y*6%Dvf58-q;C&b>>_>nb+ru)R6Z@dE!(1fYna4_nl*AI`#i-J*WSq zh=L;BKYjl11o5NSrw(>g7FIG!wv(|H6UY`Wx(ZGbt35UV*%Ya_dO%OD02kzCfDO2N zuUiexmQl_>k(KEVqR{u8@dl)~x?)F+1+i}Fe*plYJD2@vr=&BY~U)DGedj@4M8<;E-*gv#x+@o!BS4a((#h@JCE6vvUa-|8$AfXn^b$=1$ zXln}h*+3(oz@)U#{f{_Fp3seCPzp78jB!xPPj)GSVolNe?>*w&uFq2FRBcIB32YQt zZ9LFVGZ~i-lYNk6USls2MxQC7k)@c^+aPi1MGeIfyt z$Aiak$XMvE9hJAY818!{i%V2%mcjS-flb<;QY?{W-KSS5ez&heu5p4=n`Gf*CteTX zU0$HKH;0Knx-KH%XKVa02WTDGW5N+_D%&z)0nOu^#_f>Ju9&xFJ`m?OyH@=vJTMD% zFrq2f0|Id>pnakPYb27m)Qitk+yL;THgK*!SQLC3Yqa4sHg%<4w@n^L#Z!NQV9bub zW5n6}C={syTiY{w}*oH~1k4&G(Fil`XzgbV5ab6ivZxncK)yHnSPPB9Z6;6-)<1a(~XkD)Z#%CnYi#p;NMT72Atdm7mSx_XI`LC2i z^i%v<@8PH&Wq z3n-`aRFIgcnP@aNe%f{G#`tiaA<-0RBeI(C{Y&*0z6A&09rBHZc(bdk^zA!?>aJD` zZoNor36Te%tb<3*kk_Oht25A(eUkaPvj02H`_NQ-p!gl5V5-W`?v)?+ zba{+6Niz^f%`Ks8#s5&|IMayvU+Lz>7M!GYYr~T5c}m;)YuxqC@UPm7NlXxroO#ue zq^^sk1ZYH+&dvIP1gG)G1KCvHe6;HaRiC1e0UOhO=d1GT*z3osTm{h z-l)rX1({Di>R0)$lJk?7Y+-sjH=@gs=vG(Iro1iAjO0Rcvtz7CfdZ^@2|lR1?J#1; z2#%at9l@%;6~IL}nRH;n7=?)d)L&)Z#{FBikGf@ZmoK3O_1a&0Q)R9DoQOlXE8cGi zk6D(q!viRRG3PGFvr48uY7G5kyNrv2VZtkJ*wNd`^0_Jf$ zlc|T`1*9|?3rGoSS7W{_fKPFiBWP;d5T|f(Hbia1eLlvGMfts|bz`mI;i~jg}*3-8Z}wRP6}JX|OR~D#xm3 z2U`qcWE;v>3)yn?g%qrcmMEig0|*|3l+G-*Nzf0kOWEmLsMANhe9j_W)G9!iaws!{ z#KWebImH40+CPED@bU}VZWJvO2??Y0nr(ssnI3wY=Og#u#Txxic%16*yGRqe0`DJR zp*6B=1&rgaEdqn(O&|S{dYc;!!-4brXi)o={76Kn)ju3*ViXN5!B|pGmJ`p)<|K5x zvTQ1WUv9FooW)~If6L6Q_F@7mc{O_s9I$rkH=NNY;+S7qcKV%uOX-=5i8>ESkbKWN zYzu8AOwTaG$B4J2tY%vzKD!XB&1@@-bosSzElt-S5i%G&z@bO!zy&?ykU$vCi14D{ zfCfh)55G2gf9kkA_n>Dv{)^d}t}&a*tUQ$GLKa_EMiGFP!&`w$+MFD*d_)721}79#^|y}|$dOx7GSMJa)G5u^DsOga`be0_h>^<2e- zd-K+|qB)6_1GHE*A&&877Qc@1=JxcIPUa~7{&LmgZLcd7%#q&vp}J`O67jARD+&>pJ=w6tEM8Z~W0qQ2QWM40G*v8z| z$|9xq%j`-MPb}9Dy;6}Br!NyjSGr<*Sd-_qWXSX;`8+992s!=30WKgwAp?9IvL0O* zYr?n1Dns+oeP7%bR?pRh0Am5z+T#1JKQM2}Up?Y!<3_x>M{%C?fowH^2~)XuKtY79 zsM|Ig1!XH5x!uQ1rOmqdl%sB`B}&`<5BPa?5N>(y67Te!FkTXlo=Q!Bq=*Bi6{dtK znV}_Yz2nS|_ZV!7^~?Db19xrTTY*hcT#H;lqOmj~?H7S7IZs@OogHBsAN1zY)^(RR zohJ;hZ%{a>qgN7=Q&Z`P{F3ZL84QSz1cC~Tqyo^XI|a9R162@tIkz%BPNC^Di%*7?YL zI10_ogDsAc4eyk3zd=o+Nt-Zl(Xb@QB*@^HC&;g%DirfoU`WuoGlb>#WE|oLe?Q>Lz=?*WYRx2`}JlR6=xG=q$ zNN$pw`~%1KOnPr+(!i5xCOtG-_K}MWAp&`V>BX1kxZ>+rL$*9K7bLGlr6UU70L|6& z-uG?2_Jj{sr@ik#Fsz5Cqx!;sYfX9MX9grbr7^=5><5V6__IaBrINGJRD+`A)KKAIAYD^ff5lk2=lY8Gf?)yGF0`zI6e^`u=KOZl6uiL zevYns4F@~unA-H}IZ`SfLq8k!dCDWm-C2ckt_jm)Ml?HlkZ5(Sfab&3UBR<`d; zO_0j>jchZwh^Ch$j9X8T77K#M3j@?5`sNQ7J3Vs-@v>P2sw7oW5g`PJh?2>Fe5&+5 z(MoKEWAsIKDAJZ71hhbsa+wtu?KOY#&TC2jibYb9AuqYyiKZ5I<;UXHk)ID}o?Ca$ z{_1Zzag4GQGCeC+4j(MP-b>!(RZ#+WCw{3T%o4JYa12}<=AoC*CtX<#qsfK`#H&`C zah8SF{GSG8;eMr8so4%zq$5e%kN({jo~P~}<3 zHSuiw;;@*fZaiK&J3wUdZ2vVK`ION{qC3!4xs5G=@8hPDopEY4KUHv5yRO zj&ReCVav4Z`*LVjy> zkM-uqBr^HaX;bX?MqZdJRsSB}Ihz`FP531&A#}G>m&NK2gU&;LGe>!;@-}A)OZlCY z>zitL%g%6UBYv&Wo(Qwf=`do~!{+|oS&Qz|EXU_ZTe69xHn&6iLPmEAw8${-U)s86 zP1=Gj96`@T*FiSb`Hp)sxKpeBiJPiKN4Y?+l{hkYEest4N}{)xS!fc6-oE1GDI&r; zbSAP`u{F7Y)rsJk6TJu?HGx6qrpRJb3#u2ElDD<}L&vqz)-gFB&A@(Q;cutXpPhns zCx?#uT$&pq1s{gm9j_gu-*-ITH)|l&3+>_j+tU;SA{rORh$@LJK^1yYc9_oUEa3L> z#pRn8lfk?G_p6<_!+;ac`|i0(J}4bu_un$@y)TOf9(na?HVcHB)91U9E#sVTNCND-Q)UkId6K1 zT~S+*`sdl3p#+C1w<5H#_a;|Y>avW-?ztNrVvDW+wm3M^XYwsRxqTW)_G31b(+J6J9vloD6qM_Z;-74ckv;AjoPrtzxl9*p1NOqmFs{ zK)EcwjfLGC58eAU{JlV&`7%CvC~s`P2V1eBlN9=0mbx)-(z0XfJet|J4b4Zu4AMMN$+T=dB1lNAyisP6c!~d_x@?=Z_ z&f;1d!N&D{@XFyNeF7=oZ{pC{T$!g=wYvy0nv*;rPb@VmvF#_Z&gARpQ@P8z3#i)% z86yD6b^`>(lFbJf@$%tYRnpn!{W1g|lBCvYl5$Xyv6?4lh~E!bs&%X$I-jB4Qw+0; zQwiK>6k}K`s+kL&ONg|xyeVWdg7;4Q+`ZDv;0UHFa2Cs+<6#Yc4lEbE+y5{QetqB) z+V(`85;`FZ8=GY5W%YN${ud0Z^FaMie{>=C*PsUYLjz^EZcxTo?yIBfjx&WyIh#qN zT~Nf*g`Zg&;-21MByWsVdM>Y`FEojihyBS+RvM&*s#;fblaDTkNMQ|)VSy;gC&)+n z$&akMseuivo5k@8V}wNvPtgWu&(J;=XDDU+nqT74zPf;(XYxS_@slFakU;!!Gwb84 z)2LS>bKa;5B=kK8VPKzmqU~YLYs9jXFJN`s*9x`N$O?~mQ*GB8btrx=c zVON(>@^_WXoF z6VS`WPHY;%>RK{Oa9_E z^{{gO`Z^KK7fb+G8#Xs`i)KmxSx#of1liFOQUu$JINfo6^tAKWw`HG3_%U?TL7W;x z8G}eOH1*a1hgt8&n)h3T25>gpvyrz~7vxHxl12hWa7*80E4k*`MgE%yfT2^$LJn>| z`wqlt1N*N~gm9INX4UfAZEhl{ob23(o8O!n6N(a~->v7sNcL_O@R|MQEo-0LNI7t* z9u3jDciFUpMwY~ffC@EiksCdrckx|Kh$9FNxSfArG?9U=8(`DjlMFAfl6K1`c{xpL z?ni^i8l1(|)`izMCTrF=dtQIMoP}>NR2BPqT^VUj455#q`wKDFu#4F;$G>IqExy_5 z!vRXU(Sz6@*UpFfLz;+y-qc_>+@MyJ{(44Knh@6>5zHM|b*1UPZ-`)XF1BzneCS9- z4<8?_*6q^j@aE58!47{yBdMhm+(|wrU>y;q3zQkO(bKx z8Pyng!_HK0XOL=MUVG09pyqo74hmz~LXIeN0AzF&E`z-N-_&X#O zM&)J$&$MXGrjjw}C=@m5S+le%VOb=C0k>}#Sa)SZ(evg|zjZR!P+$l2&t-eR@5^En zY{aSxwW|{Z6VYPQO2vC*h4;CC*Fs>#@%s*a$E}t~9(X=Wx=um)mb^+lwLz8=9`a@l zK^y1mA~%b_d}9ufHNE%E3K{F=5cg`gQCz%@@c{F^XFoPpT9~(RB}Dg&~HcrsWgt-2AUj(UK#c7YB(M1g5g+Ngka zkS{kA0^sw+gI)%Jo^y&37wJ=5kn&~&g>*=XgliPsj9Ol7QRP$i!6LiGa}uZ{1a=Jv zxgF-=t`e3Hfq}bm96)b~zbR@We!`l&!o+N?1Mfabl(MEeKbHn6%%264s zLa`1^gfJmda8A><1*&?P5Y}iCil+<#7RhlRy%T!hPd2UwhhF`i6J8?ZO^fhavC3GZ z$Q~F~FPowz2D!(>`j@}(@nd_>mV0Gn0c!uc-_X0BTN<@HAS088DNC+s0Ge^M*Elw= zAidP!xhdRUeCs5HBmOFME(+~KciqW=f)1TZ@Z0rmk|B0KR0!(N-bEPtJ-EUnD3xQ# zjf~aKAv*Cci4g?00(b9Q^5>Y1murM16-dkRZC@-&MOQZW+#n1(Nhm8% z*4^F1+V%NL9FUQOKIO9C$h;$^RhHGVrF|g07b$9h$EtS#eJ{U+*Jh-N&#Jy^eLo}rxM>2QPNSb&NfwGZcIeV;F=o@_ek?ce75{j$5M%O}P>(-GA7 z+fnf1Tjfs*Iw%LGk#zl~`T>lsXWIvs_d<3OO=+fg+`P9F!2(f8Ksct6idEeopA^f- z!>)b|wjui8)ahaaFVU$K>>ATPKcFs1pQIuHptB4{`V^ z2GD~3Rl{_s(*N^2(UJ_X#j-_>XNx-kP$0#{VhjaTRYm}T=23b%(=Tbj-`-O z;ZODhs&mg(8<1P(m*PDg3w<5^05QAL?qU%7Rvnp`X+E*i;-?Vqlp(w+hg?uWvB9|p zNu*}0hEo+XU(DAsJqO7lA3xpDgZ4XKE0@3-YSKD!KnE3$$c4=gOSCucv z^A+_O6QleX_xX7u^zV?Wp;F%ER2!pvv!Hj5$v@12_q^A?6t%t>J!JEkYkm>gOlA{I zgy2brcfTK&8;baHFr^<5kSK%m``p1(A4=58NKt#vY6|cBefHJsMW^gKu(xKlQr>}| zKEDBK%kXWbL5&a(4iwg_DS`O&l?Ym*+qH@+CRp!xaA5B|5cJV4CG_}8W9dNs=$69u zqY>PyyWGs{?PCe7pEklG; zs}aW%M1;Jp<^ZzlN;$E9$=#ATg7C2DOSk%&-EkJ4L7GI-d?=W;DlI6AyiPKbI{ zIWFzx%gyn`N(u|nxz$gtukheB2@j0fIM78Z!s0!Mz)oX$RGLC=R0-a2+=p&9orZlM z^>H3|qhs;IbcqAt5p=^MIYZYrtcxw)&atU8Cm?GjVD;fE!K@8``WKuVV86u3j~0F* zlCOhUms6rm>)x2xrvKhHRo{KOsh*slV_Y~u!Gl+GYR2_Hkbbtgyh%ibE{!t`{THb7 z@3nYhLgMjy6F?k*Lv`x-F0J4VGeyWLJD{&)P zTmrLw-w#3m$RZ+MjMB6f=jwe0bOR?tR}ztsv!RNX<>g8(4an6xkVS7D$s>U(_vZ8z z8^Gi9NgVFZs=7Xpqkt``o5!F>FNThXZVqvd?0~=sKd;w#b=J@D*p5#yM#=n2>=wED zm65OQaIRCCsGyKb%F+FS+fBxkt3Hh=xx#k#o-V^hK;;__iAI*Bx#(f0YbP{j;}p}x z@vGC3iu0N-*(ZMklZRvd8UJ@*5HNWHx?1Mih%4TZF|s#A+@J@isKvpR6TD@G3qY=~ z^qyS{Y6_|-+4Sj2!x~x3dh*N9q=_O~hNxzp3fs5RkB|9tOa9c|P@i1Oi1pI1e`=&avd|8lx|#PoQUHU?P;4*7w_rNB zfpd^77cR4DCiChcB?yiX4^^U8aEEZQso_!c~}wYk^xDjc(eNrnsK-?#E0?4zl0C1XvO zByVf94=z82F6!+3?8oByhK(&T#Nr&{(<%60m-pN)@PtA8H+H4vgp~-`5+pMAKy9dlk_mFpcgCbhebg107~^ok!81E4Y#=< zTKQLS`oBWL0{)}}<5Mm3ekVuzo@4_HjL(OPh!y4>) zE?^xFy&jf`Z_bsghu78y>P8?R+ZY*}zw3Om#qb=*7uprE1t(3_+hL_;Q)rZqkx6}1 z9cPL1j;BOM2(uP;NBwC47V$MX@)F}GEZt~uaV#ERta@p-+}UcNGN2p|LJE+&v?|Ud zR!)PyKnEx_{jQ(?mp|J_Wj)ip8`N0jN|Kj-xwYG*@A}EF4eOvU4kWx z3*+MRjZpsiYxt|Bl`m6zZofAz6(@ESbezv2j1U&O~*{kj!9${c}1C-kaVgF&96x8 zWIJ}os2IbV{*Y(9kQ4khWDCbkO^_vGjhOZ=Dz>ji1gw(KOoC2N<4p`PBj)Q1;_!#= z2y2)P-+eQ7&i5KSXTL@*hBhRL`L%!E=)vlSe=9KrG zI##j&*t0%w!6lX!*Gz)Ey6@`gv9#$bA)&A28JdgVoj0&5qR;b6u@8Fy=6PwQl#i~Q zu3ch#{8YQ6hOJ~tylewu-&rY^lPy6a?gj0qS9 zcWslv%1OWK3xdjF+HZg-b@iVmZ-z`wz8Fe_1`0E{w`n2-yzqtso99Fz6QM#NJFnOQ zHNh{BTuQK!m5G?tjm^yh$DJhM%k2af5~`Pn#AAH828E$$Is_JoCPED#2eiRLvAWM(IS*ANOdyfwmvv(J~ zDt@=iRB;M7Uaw-$GB!QBMB0zkKzOtBs~3-sznN5qm3Axv+eG2Tp@oh3t#R)y3D>i@ zU33|KW$EK4P=5Z~;1n7K9l%)j>mu?$DWi#HBZ%*dx%}dGaK`=-;$l>9feT~zFmmH> z^UOQq5x4CVEgn`H;Ek45q}^R_hZI;!n`KRP2K{nA|ADm5anf&E;huvuO4;()hX~M!oD`;)jQ^Z}Cdj?5L}>fr-#2vI`5PSzfL{RFq3eT!)WELrDIV}wrfsrBFTo`M zCPfPJ)dJ@WMI00lAZ}QRWCyNUYQ{RuoH>#N)ooylIs1%6@ z=BMCck68_;;Nh$Z9@C>I0t^-4>FI7a;k0R`0hCjWXtj(IGcpfJcyaj926ENPD2u;x z+UL!|p?tQJGzwUB+2VB@WhUD*ArIC@gMA}MkA2-3QRs1GtBY!L;QqLVm&bgalr=HP- zOhnkW_}K-@PzZq~G!!zJi?x@~P~-R@9q%9S6JW&hp;rUyezBusV85vn@&8HI7iqpE z%_HTQa2C+rQDxKvYZp1!@|3DvfnLI7-La?R{II$5ZJI%~$oN1+50d#!RU{T9G z(QQKEg1Ew<3|D1i!Y+G&EkW7en`L(_4^CHn4>=cS8J+{^pUlYmwc>bAq+z_Z@lcn& zaO8?wYR`T{_d8`Pf|E}CbjLe^U(akb+3 zA`|<8I0T_;RIqb#hUCzT(dGx`+${fjYcvwM}_g2}(;%_xYM9--yzpC{I4r&CK zNJ>NQR=L5|e3ggMCoR?!z0{md0v{G>*YqWfKP6Le_=mUqK>DY3DBdyKY+_kvlx9ho zL^M1Q&%7{&y4Ni@*w5+F5rorp?(kBHq+nI+_gJU}qq3+`fDhVMQ-QSs z-fY<&bD1u*@L>|g-B!3@MR!hxyByxo`~IJ=;Q2xbK@7aHstmd)+dFQ*$jWK@ZspJ(i8wu4!VAMg2=c;%K30hJWYKx`X#HL%2e@`C zWJNx?L9p-u`3edU9-^nEM0N*kfbX#YaA!{Eo1iC(pz+Bt9}5yGWm9TK=V_u!aQ z*y*n|bN$vp?FI%=3j=JJ0{=NXI5*}@F7`_Pi3>yXq=F`K{}0}NtKdQEh|rd=XB*$@WetV+)3EUA&Z*?5({m8B5ko{bx^;V;ULhYF)aGCMqe4xkgwe9Ci9rT>_wS}AR= zFa!Kj-^}lGt*1IVQ6!FtpU4?9`AU1`zIyDSFET&HCu|0afwj$k5FM$;VQ)9P|2p2- zF+I8tQJtH@_b;%8)VK&uA-2a0mf~I?SgDN>>3rfuq>oW|p!{Kz`E?CO?&~%B+41)n zca&k^leg0ucEuT27g^0O5#zYV}|b3s$hyaogz6vE>s-bEEdhGTeiYGt?#O_}T0=`y45$9T+-0kFSL>vGO+*5;=QqC%a^ zjW=QS=_*GZ8M;TNIKYngV)<;^(86}9>zFZddBECZ49-P|^YbvLwVuv*kPec;`E9{^ z25hUsTb3YSHcq$-O67d*(RAl&1n2m6%-gjk@q?}ImZMmwek_9m?^?=+h+g|~>}sel z=*E>;7K14|qqFXm~+=sgC0$VLd;P`dJPCJfA$DT{W%t2uG7foTBsPc zP>`@RB4@#<4#zx-s$fS0?`PU+l~?ZW*jFouVoeKRi-m_02s=O`O%H3GD3VxNddCRO zN$z(ZOeymn9UgEg$_ivezI9%R{*r1b(er;4R}cHMC{a!z^)i(wX#@ilyMgd8k9jy1 z@SM@Tv;3PUGr^T@x%qC0FjRg@enjWUgAZB)7|+M35P-#*Tsmyl!4|&{(i1g!hJ*Fe z(8~6Q6+4Et)N%rMqbUS)F#uu#p~x%Pzfp0P;;4PzH1##GRUKTPIn>cS+@?33Q?KFB z-20wp%-24jm1(ycV-u6U2M6|k;fQ}!lL4GfQc;nhmSW0G`s?^TMyP@Dc>SjrP}lxU z?Y38z=&6`B3FY^t?}H-JZ2N$q4i38P4f;B^!*6}ZlU^n&+>Ni*T9AD{^ADLI>3CSae@&Yj zK~9^-nq(-4E^;a81&F;8ce`il1trJeNLXg`MqMk54dTGvJ+>W~7@!RPjB0fmt3SFj zMz@X&_0QF`Xzi$ww9Q@%^f?l-**JQvz3N>HqWkG=skZN#pPfXseEo zj4Svw11+Z{f^QZl_%0xe7Qjaa8G1H4m0)>oN1cGKkBXra_VTA@9RM!E{Kdq3Kr<(u z3iK&NEBH6fM2C^gPZ*l`+GcdrbLMT5*O3e_HjZ>pS(w@T?`6rv6yVw>1{g zt^2G1u^9)~K@eL1uD{;ew*h15X+uk#l98PjrDEv`^z-W^Ca@L@e>MKA5%w+AgMv7B z7aVm8WXDkXFg~l&bOGrVTiT5QvM%eqTTYFUKpbuY+{i$O9Bz2C$0#Z0s0ah{A*kY8 zAHiaz*LFZT&=Qnb7DrYSBBYo`&R#Xa+`Onevc?G!VfzW0nrg``vJM%}h z`Id_Tz3DZcM^v|b5By1Br3_BvyrIQ3<|)-ip?=Q@k6;g=wpCn97i-`r$GfxED~;y% z30Q3&@1yaXBtu29$68agrC&#bYensmQ%Mw~uSrKR3fN^M;PFz+^iZ_>#J5@$ZbegBnsIBS^{&Gc6P?yav zH?zVpW`CWWDm0R=nHwJJMh^e5Whn=t{w8JfmP2l%HC9xRT>6%AznAkJP1TU<`Uv)N zwUy;RmP1JXQ+YoeCcd$UoER3jS;73HN2l{KOv)h2&CjtqH03)iAnx6S%=Nfoci$?w`pL6 zci9KiL+9$Qy(K3|0(g{mr8{xLqZP#+j6Tw}7*c{A>llc*u@)yJwwqczyv30|(z`$w zL0MvxVEnVNIWI;jQg5C~rzCa}Li6p45=fkkGat6?2iHHq1SSG%2UQsvGEn)52y4@F;>Z8OW@DvT;8EfuwSJ(Os9K!ZZjBK+Lz{G4n&IZa zY=~Hgq8Yc-3*!-y=YM*26ZI@g4rukaK6gk&e!FCF;SdcmuEAuY60hMtS2c6TcFw{{3R31|RAHvwHAV!^ReA|C!Gm_8-vjTt`3v+O z?4v46e}UMINfL<&A&2brH2;%iw3CW(RE}d$K`&fEvI?>;Cl{8Jn*Y#+%9!I%EGIv- zeEzFV;NOp?>L|#ofI6tvmDsZ6P=IA~6$W|Ojj?plcJr^)+Qn;Mo7!^|G*sLZY#Quq zbhLT_=xf&rjn|Y&o-Po1NoEaRqX@un3?Pm(8T*p&9wz6{4AbUEvU#4(YwYhn*s-P1 z94z$3j))6`0;)k&Ju0o?iV4u>+J?GOQc`}PP|H5jG^N$8z4m0S?>nM5w)OO~7>m84 z9N;AYlRCTaMt-XVOX`#B`xM0W-4c86skV03li9mKC8VXzuh-{=eWQ?iw%S@E(V{CW zS1uOyCEApPmY{cDPgn=njZ7QuwF(>8WLic8=J7J^udQnyl^vBCfhSBCuo6O5UUp)>{9=*aLPk0zw)ddUK$R!xFu~C(mhPEy@SlfqhjX!;t z;a)thv$m4XAi-5_D)ufln+B%f_>4)}bauGHy1LSt?i>)<73Vf~`_#QvzuioNDq3GZ(grsS&=c~wM1DQmcC+QTg{CT!OAG8QLH%TT1tdz){6dPvdBLJHU)Mrm*SBC( zkdLZnwM3R{nX4={$&-8<_KYgg2u*6B;ZcOX9;Nuc+{dDpAw`Y&MVf%7v0qtMm4>?h z(*xPho&4JVpKD;EVSVO*v~`C3f-aC+> zILE*mWlBar{)*3)W0_NxYi6HdwwAnS+&qax&Pj%^u4d!YCM0FqCakugdsI%-i6q^b zeGXml<<-q368y?6AYBIdMhTG0TZ1YGCqhuXBd>yF2^V9kXtL@1t2G&G$KC-II(Y&c zUROPD+W~ke;y}*4TjgFXB1(C3;`$N_H@@mUmIwV|9?B*fYC>wT9KXia5G~p4I%T4f zu;R}y@B3EyMAml-ffhd1W+hi$#rNKis8;`yiw{1Aq-3v+F64YVAcbQJ+tg*y4cnUC zMdA^$Fx=YKHP3w#G1D11{Sm%0qHYYfNlAXS zTHC^&&12>kq*_N0z1-Wx!ASDqhgN4T%op18{;d$TJpb`3UQyEDywzm;Qx4gsQN(++ z(|6B@QUI6p2U;HH91TTrC1NkIaXktzZznBVQ7fevj>QYVQ6OjHQ<%d}DjSd$O%Vs) zIt|6L2de%1Tosgw^GW_=;kSW9L0m4=ah5^NOi&U0d2OsRjfxjR^~5Y#FIEoBNrL5Z z%$uoZe69)?#!v`;k&x4R7r=Od{D#F?|Ap=Z+%$s>gj22+@CITx2{&FN_+5`XQN#V zwwhwVHW)UKAE<`$$2OLb#2$C_&f7^ymCq#f3W?wr7Am{`s5A<71u}7y_m@NVH?UyX z*0OTMn?z%A9bSI&(qKBc*mc&?URF;_2J8c@*2WAZ>9 zhbS?>r8t2080;_Su$dP(XV?(|Ik^~4EbM8-UTR`k#lMX^9KQWb@Pj-F_;o2UJxZ9{ z(hw#+oxCam0)F<*U~1r1Gd+(0%G}GZxR%@qye>MjwhWlSWXF>N9|re*jTf8JzL-8Z znv~6$?y1HJT+VhCKt_)YDLW|5uknjlKeqg!Zyu=rsOD>RJv7EGh@>acg^!f!5-U|% z?JcrNMYF9sJKB~Jm>+)rOKC=Rtx{#AA7823$-S95sU(_zHJx4M2Tf+#NlxJrVAf97 zg)DaUQ$iZ0=<}|D`ocIr*z~&-ngAnx;O7lo!u59vl?PX)ZJgCHK*RBwTS|=wxXzG6 zu|1JVWQnxC%n?lUZ@b&}>!lCnp7Vjhe5h!LC(|~R49;PXsnl?M!~&3H7V#DccSc0V z0v@Xe?9A?{y_%~!L5qGuYeI=1p%!|)o?1dH0rRXA+5nXn-$Pepy`xPJ(|R}hrm3If zHFbGX6|8^xT{^-ml*;1K+XnnO*W=`&{FeJ~zesdjKaqzUpv}HWwppHT2e*kxUcGGk z;#M+<{_rshh6If-1d!JB z34GsXWShrdD+E)2l@2Wp{z-Olia4top+!{jb3;;@?yvsp6MFkza0XsHcnz1ddWs}J z7?y8^{p*~+{!w?eZ6NFU8gE&1!*O!507lmm z6ohRmmv zs`qPVjlnPvERcM!^Je??!UzxLFuMd_Q#^(%ng2N7vS=PJw8N?}^-tDHm-$vP3wx8U zQ&^>w*fJM!tez5QSB$?*sTV!3`xzG!b-JC&jY2JYlE6$e*H6Rwu5c(IQQ>LYx|w?9Bp#)`=(cv!j1j$qDT)KZL)C-nt%DoIrlu z1GZ|a52k;(QnvzBcxnoqy%-jgPs2I;>rd=8E82(knbMS7p!Mpy)F@V|CMM*8#%X=k z-K6qsm=S@b_rp`zRZD32f_db~(3LvgLqpziL!r?qXDYi#N8zrzlkBM~j#wJ#YXq;F z+;th?h|erRw%aJ-YCH%H623#^QKcrRT0cM3O1QllX_&G`qZRBTkYzzd_2dVVL^qdm zjM$uPohKrJuz3Y|@A_E``Rs_UQ~Zi^Fukx^@=$)RJqeX(aq!-}VMFVGG|^Ud6qsX( zL{UbNlQl%Jrqg2OC#`L=Bb z2376l`H=8|R>C}o`*&9=plXp!!#jA}H=tbggRwsOz80oEgES@p`9Acjr;BJ-4X~wKN?13OqVA%z zp$o<+4kZn-v7EfJ>)$Cdj1R7w#yM_~Xme;29PxX5K>=#(le2po(3}zPs-l86GRdo# z(rtreFiw7Fgc_W{7Ds{)sPGOjvNKeFmQA)jY3qMZZqr~BJBPKwMY&KLHJVhH&cly* zIqkbhQ1V&ne}P~Ha92~ps~|*OX(U?fj|4VpD(XsMbI!vr3bv#4OVEY`F78q?+uMRS z-Y%q8;anDVwkbmALGpLJy!)KEf;txS=-n?q*3d|d2e!VTb4LLTqik~NT8z@+=S+XE zNm=%`53m=uPGyBM>WHZTM}LI{=7#xKOkjG{+lNx@Af$1(J4U1G@M9jzg}bU zDqKQ%!xt^iWGT>Q@%2+k+|0C7_7D!9)cezD@w|`orZG0nIU_y%3wVOH zPq&+I(|D2Y8{YV2V%|IdYoOj^uaDmTH^1t$_Cbn?ESq!)oJ98I8%`R;_;AvYvcH-) zkCumv{v;zyNLaoagfqQ|q%8uoqQ_Na&?ou27Z!-8i85MYR`a~}4iq9ZvZ29Yj)WM8 zaG04Ix4P;LS!?DU2MzEjOZRPGPz@76S*Rj*6h@c004LzTenPun3h_`k+EJX=8&IJe z$=8=M9dJF=o{y@?bEuEroI39%Z>9tf1#+*ka&~`r{B2(v6-ATumZ9c@cAY~v*I3k< zsdNdEjecaZnPuBbBv-MsNc!$%rm$m#rLN>%hnQT#Q(=xr{72g6MDs)~Y&DQ1p+NF*`q%bu1doK#)?V)&~wKqu3OJVgO!h83& zh?C1uuJ$h|m+BD1a<65R&2)LxtuI%a*jIMnU9&UU%ZGqtKa z6O|_%gMnt-|9C9H%Q&kgXvP@j zTEGgk_}xktmD`YADrz)iPSrq_4D>*$R!a?d!2~!)WBTUqGs1yDK%OY?XcHcBl>9|r z&Z!Is?%KaQe%*tl#)avafP7x|9`FH4C!)OAT~;q^&!@59HL6U{yaH6jADm@gnlmU~ zQKd{fDXG@EzYXMQbNXzn`*&V&hq6@Mtg#1^Vvj#3x$bTnFxz&HJN~hG*@sRv1@-gO zJ5))M)~Ccw=~dl;i!`#3#-Sh>bw_AcC~8!^p=Ixj5!b5_5^$;Sb{402o4?0v*;Ny` zrSc6)30B#nN*@d0X<$#gK0u2SfZBG36^qPd%k^yg6{RL*v<)k)Lr!s(g>KoSnH6M9 zTQonS9Qp3Y_)f%r@|hE-WCmOc!r7Ms-*89;$!hu*u}0p&kQ?}&t%(J4ZJXqLf+gR=i;R7iLcd|i#EITyh*(A zAG}ZNwny$n(nNt~oaCzsHF)TOVhxQcL`csMFZU2fCL;TDzip>Qrt(C?)(n#59sY7g zbaz+KdYlrLOoA*Pyj2Tg6OCg9cw)KB1z=GY8*m)>SBw&Y&G1jFE^&kXFLVOxQs5_2 zmJ;LmM|5}g`PT3wveiZ|&Gzl-s zkTVyyzKy64vqbN4pRW_NaUNghdySg?kXz3euF8qRmhXQGce%>46W)sY1Raryc#^k1 zKB)NxKD?tT{AUi;{U^N{XEc5OZ%LTvtjr7ve%d5HZPyKHJg}D@x;!u&V~|H)9p}f8 zdDNkl_3183t9gKvja%4-i?lUZmjbZn+(@~ii0tdscI7JAVVS`x4%xz@ujPe}0dp?$ z7AxOK+OjMej#Z$pPiZiOM@=Qo^Y{6KSdl0&7>HOvzWaFfj3*xCl&eN6qS?)RyTbGMh974|x(#?} zKm6bvi>I>v^f0`fdxXHo&5(27ghSIWvXax!fxkG-(8uS_m%d=&&=s3(UQT$TGJ$2) z&SaCkk_FdTx3aNGG)&Z zW$i)rf))45k<+AlXDE^%FY@^Y#u^4TKvf(^QXGrwZA@1O8>)HdZpaO#=v`0n@#@TX zqkslhWo$y$d303)z|F;X{Y4GF(=S@*duvuf!BQW>G&{bR`5sR31pAoJ)z=OPHc+&A z)gyJ*kLIdoV!j-T-=k3ONCRmsN&B-|l~@Nd^FX;igK@0~sH7&g?bcNQ#~H7@L%sbn zTon%jBz6z-&f;YU%f1hT*Ly$X4mrpVQwGR1UmXEbce%;0*xVkb819Va+%0q*5=*Ba zsHJVk8xnk6>gXs);Smkl#2uU7{&oIOhKAUJ=2bI?K<|LAG@(Vu6-`=--$8X#HdF>n zCG1GJK0q~JSm`d0_so&2Q=GR1Ir$3(x$ZX!(b_M)`%_6!$#reP#ddN_6K-KG9>Pt_ zuPnJReAnWJj^1_Ru*G*F&Q-tcx6gTJ@Tm5pcM?q*mO;!Huhl~>-GWWgTVRz$FkIgb6Kf$e|Wy<&D%uCCn_WDGeHWFkui`)WEA@Lr=6}H7YToC{mr$uPCi&s6y)wZ%f!#TvlJwAQSJ^t6GVe zxrCuz%PaPQ1Uc4F)P10`NngSh_y_R0w@K!aB^x--k362BNeh5fNu#FDu*2{QvSNy$ zEMDXdq~m+A?ZdNiGxB>Y8SOdn9x`tVN--rIjJTCopWWCFSY6gST8n^n`iQ@k;w(2K4MtOJJW2r!2^T-_zF*oV@d+HfhO3nSeK;h=_2&u(BI=rk9#}ifw{T9boG`@{ruQT zEI8Hiyo$KWtU05M?^V?Il%5}u1sii!AAIy+A3Z>977MiC1CE=FwK(BD)Dsivs_&r+ap4CW?+P_F`q9IN@4oZK`c-k%Y`|PSTJ9jD(b;6~6W(B5+QAREMg= zAs_gSh#l)Xu9IC7ca3mrfSUf4>~q8lC{DW_HaNOP?J5649}d~D2gz_cMf`|}Xev=( zZOF~3tIf&~FA!+Tnf1ysW@CQnWR;Vs0h1%0D`aR)+mI^@(@w3DZ-K*61j@QZR$5-c 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 Vg8n|yeKcYwMi##pT)g+>{{ZnH*D?SA diff --git a/package-lock.json b/package-lock.json index 96fb2a5..23e122c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,10 +15,8 @@ "dotenv": "^16.3.1", "eslint": "^8.45.0", "express": "^4.18.2", - "gapi-script": "^1.2.0", "google-auth-library": "^8.9.0", "googleapis": "^122.0.0", - "next-auth": "^4.22.3", "pg": "^8.11.1", "pg-format": "^1.0.4", "react": "^18.2.0", @@ -1763,6 +1761,7 @@ "version": "7.22.6", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz", "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==", + "dev": true, "dependencies": { "regenerator-runtime": "^0.13.11" }, @@ -2025,156 +2024,6 @@ "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", "dev": true }, - "node_modules/@next/env": { - "version": "13.4.10", - "resolved": "https://registry.npmjs.org/@next/env/-/env-13.4.10.tgz", - "integrity": "sha512-3G1yD/XKTSLdihyDSa8JEsaWOELY+OWe08o0LUYzfuHp1zHDA8SObQlzKt+v+wrkkPcnPweoLH1ImZeUa0A1NQ==", - "peer": true - }, - "node_modules/@next/swc-darwin-arm64": { - "version": "13.4.10", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.10.tgz", - "integrity": "sha512-4bsdfKmmg7mgFGph0UorD1xWfZ5jZEw4kKRHYEeTK9bT1QnMbPVPlVXQRIiFPrhoDQnZUoa6duuPUJIEGLV1Jg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-darwin-x64": { - "version": "13.4.10", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.10.tgz", - "integrity": "sha512-ngXhUBbcZIWZWqNbQSNxQrB9T1V+wgfCzAor2olYuo/YpaL6mUYNUEgeBMhr8qwV0ARSgKaOp35lRvB7EmCRBg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-gnu": { - "version": "13.4.10", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.10.tgz", - "integrity": "sha512-SjCZZCOmHD4uyM75MVArSAmF5Y+IJSGroPRj2v9/jnBT36SYFTORN8Ag/lhw81W9EeexKY/CUg2e9mdebZOwsg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-musl": { - "version": "13.4.10", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.10.tgz", - "integrity": "sha512-F+VlcWijX5qteoYIOxNiBbNE8ruaWuRlcYyIRK10CugqI/BIeCDzEDyrHIHY8AWwbkTwe6GRHabMdE688Rqq4Q==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "13.4.10", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.10.tgz", - "integrity": "sha512-WDv1YtAV07nhfy3i1visr5p/tjiH6CeXp4wX78lzP1jI07t4PnHHG1WEDFOduXh3WT4hG6yN82EQBQHDi7hBrQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-musl": { - "version": "13.4.10", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.10.tgz", - "integrity": "sha512-zFkzqc737xr6qoBgDa3AwC7jPQzGLjDlkNmt/ljvQJ/Veri5ECdHjZCUuiTUfVjshNIIpki6FuP0RaQYK9iCRg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-arm64-msvc": { - "version": "13.4.10", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.10.tgz", - "integrity": "sha512-IboRS8IWz5mWfnjAdCekkl8s0B7ijpWeDwK2O8CdgZkoCDY0ZQHBSGiJ2KViAG6+BJVfLvcP+a2fh6cdyBr9QQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-ia32-msvc": { - "version": "13.4.10", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.10.tgz", - "integrity": "sha512-bSA+4j8jY4EEiwD/M2bol4uVEu1lBlgsGdvM+mmBm/BbqofNBfaZ2qwSbwE2OwbAmzNdVJRFRXQZ0dkjopTRaQ==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "13.4.10", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.10.tgz", - "integrity": "sha512-g2+tU63yTWmcVQKDGY0MV1PjjqgZtwM4rB1oVVi/v0brdZAcrcTV+04agKzWtvWroyFz6IqtT0MoZJA7PNyLVw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">= 10" - } - }, "node_modules/@nicolo-ribaudo/semver-v6": { "version": "6.3.3", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz", @@ -2216,14 +2065,6 @@ "node": ">= 8" } }, - "node_modules/@panva/hkdf": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.1.1.tgz", - "integrity": "sha512-dhPeilub1NuIG0X5Kvhh9lH4iW3ZsHlnzwgwbOlgwQ2wG1IqFzsgHqmKPk3WzsdWAeaxKJxgM0+W433RmN45GA==", - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, "node_modules/@remix-run/router": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.7.2.tgz", @@ -2232,15 +2073,6 @@ "node": ">=14" } }, - "node_modules/@swc/helpers": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.1.tgz", - "integrity": "sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==", - "peer": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", @@ -2774,7 +2606,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "devOptional": true, + "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -2915,7 +2747,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "devOptional": true, + "dev": true, "engines": { "node": ">=8" } @@ -2995,7 +2827,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "devOptional": true, + "dev": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -3054,18 +2886,6 @@ "node": ">=4" } }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "peer": true, - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, "node_modules/bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", @@ -3109,6 +2929,7 @@ "version": "1.0.30001515", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz", "integrity": "sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA==", + "dev": true, "funding": [ { "type": "opencollective", @@ -3147,7 +2968,7 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "devOptional": true, + "dev": true, "funding": [ { "type": "individual", @@ -3191,12 +3012,6 @@ "node": ">= 10.0" } }, - "node_modules/client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", - "peer": true - }, "node_modules/clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -4307,7 +4122,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "devOptional": true, + "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -4472,11 +4287,6 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, - "node_modules/gapi-script": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gapi-script/-/gapi-script-1.2.0.tgz", - "integrity": "sha512-NKTVKiIwFdkO1j1EzcrWu/Pz7gsl1GmBmgh+qhuV2Ytls04W/Eg5aiBL91SCiBM9lU0PMu7p1hTVxhh1rPT5Lw==" - }, "node_modules/gaxios": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.1.3.tgz", @@ -4561,7 +4371,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "devOptional": true, + "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -4572,7 +4382,8 @@ "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true }, "node_modules/globals": { "version": "11.12.0", @@ -4671,7 +4482,8 @@ "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true }, "node_modules/graphemer": { "version": "1.4.0", @@ -5005,7 +4817,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.1.tgz", "integrity": "sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A==", - "devOptional": true + "dev": true }, "node_modules/import-fresh": { "version": "3.3.0", @@ -5166,7 +4978,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "devOptional": true, + "dev": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -5224,7 +5036,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.12.0" } @@ -5342,14 +5154,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/jose": { - "version": "4.14.4", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.14.4.tgz", - "integrity": "sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==", - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -5665,6 +5469,7 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true, "funding": [ { "type": "github", @@ -5697,108 +5502,6 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, - "node_modules/next": { - "version": "13.4.10", - "resolved": "https://registry.npmjs.org/next/-/next-13.4.10.tgz", - "integrity": "sha512-4ep6aKxVTQ7rkUW2fBLhpBr/5oceCuf4KmlUpvG/aXuDTIf9mexNSpabUD6RWPspu6wiJJvozZREhXhueYO36A==", - "peer": true, - "dependencies": { - "@next/env": "13.4.10", - "@swc/helpers": "0.5.1", - "busboy": "1.6.0", - "caniuse-lite": "^1.0.30001406", - "postcss": "8.4.14", - "styled-jsx": "5.1.1", - "watchpack": "2.4.0", - "zod": "3.21.4" - }, - "bin": { - "next": "dist/bin/next" - }, - "engines": { - "node": ">=16.8.0" - }, - "optionalDependencies": { - "@next/swc-darwin-arm64": "13.4.10", - "@next/swc-darwin-x64": "13.4.10", - "@next/swc-linux-arm64-gnu": "13.4.10", - "@next/swc-linux-arm64-musl": "13.4.10", - "@next/swc-linux-x64-gnu": "13.4.10", - "@next/swc-linux-x64-musl": "13.4.10", - "@next/swc-win32-arm64-msvc": "13.4.10", - "@next/swc-win32-ia32-msvc": "13.4.10", - "@next/swc-win32-x64-msvc": "13.4.10" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.1.0", - "fibers": ">= 3.1.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "sass": "^1.3.0" - }, - "peerDependenciesMeta": { - "@opentelemetry/api": { - "optional": true - }, - "fibers": { - "optional": true - }, - "sass": { - "optional": true - } - } - }, - "node_modules/next-auth": { - "version": "4.22.3", - "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-4.22.3.tgz", - "integrity": "sha512-XAgy9xV3J2eJOXrQhmxdjV6MLM29ibm6WtMXc3KY6IPZeApf+SuBuPvlqCUfbu5YsAzlg9WSw6u01dChTfeZOA==", - "dependencies": { - "@babel/runtime": "^7.20.13", - "@panva/hkdf": "^1.0.2", - "cookie": "^0.5.0", - "jose": "^4.11.4", - "oauth": "^0.9.15", - "openid-client": "^5.4.0", - "preact": "^10.6.3", - "preact-render-to-string": "^5.1.19", - "uuid": "^8.3.2" - }, - "peerDependencies": { - "next": "^12.2.5 || ^13", - "nodemailer": "^6.6.5", - "react": "^17.0.2 || ^18", - "react-dom": "^17.0.2 || ^18" - }, - "peerDependenciesMeta": { - "nodemailer": { - "optional": true - } - } - }, - "node_modules/next/node_modules/postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "peer": true, - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", @@ -5931,7 +5634,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.10.0" } @@ -5960,19 +5663,6 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/oauth": { - "version": "0.9.15", - "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", - "integrity": "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==" - }, - "node_modules/object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", - "engines": { - "node": ">= 6" - } - }, "node_modules/object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -5987,14 +5677,6 @@ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, - "node_modules/oidc-token-hash": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.0.3.tgz", - "integrity": "sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==", - "engines": { - "node": "^10.13.0 || >=12.0.0" - } - }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -6055,36 +5737,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/openid-client": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.4.3.tgz", - "integrity": "sha512-sVQOvjsT/sbSfYsQI/9liWQGVZH/Pp3rrtlGEwgk/bbHfrUDZ24DN57lAagIwFtuEu+FM9Ev7r85s8S/yPjimQ==", - "dependencies": { - "jose": "^4.14.4", - "lru-cache": "^6.0.0", - "object-hash": "^2.2.0", - "oidc-token-hash": "^5.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, - "node_modules/openid-client/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/openid-client/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/optionator": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", @@ -6327,13 +5979,14 @@ "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "devOptional": true, + "dev": true, "engines": { "node": ">=8.6" }, @@ -6497,26 +6150,6 @@ "node": ">=0.10.0" } }, - "node_modules/preact": { - "version": "10.16.0", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.16.0.tgz", - "integrity": "sha512-XTSj3dJ4roKIC93pald6rWuB2qQJO9gO2iLLyTe87MrjQN+HklueLsmskbywEWqCHlclgz3/M4YLL2iBr9UmMA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/preact" - } - }, - "node_modules/preact-render-to-string": { - "version": "5.2.6", - "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.2.6.tgz", - "integrity": "sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==", - "dependencies": { - "pretty-format": "^3.8.0" - }, - "peerDependencies": { - "preact": ">=10" - } - }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -6535,11 +6168,6 @@ "renderkid": "^3.0.0" } }, - "node_modules/pretty-format": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz", - "integrity": "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==" - }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -6728,7 +6356,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "devOptional": true, + "dev": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -6769,7 +6397,8 @@ "node_modules/regenerator-runtime": { "version": "0.13.11", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true }, "node_modules/regenerator-transform": { "version": "0.15.1", @@ -6975,7 +6604,7 @@ "version": "1.63.6", "resolved": "https://registry.npmjs.org/sass/-/sass-1.63.6.tgz", "integrity": "sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw==", - "devOptional": true, + "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -7354,6 +6983,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -7414,15 +7044,6 @@ "node": ">= 0.8" } }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "peer": true, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -7479,29 +7100,6 @@ "webpack": "^5.0.0" } }, - "node_modules/styled-jsx": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", - "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", - "peer": true, - "dependencies": { - "client-only": "0.0.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "babel-plugin-macros": { - "optional": true - } - } - }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -7660,7 +7258,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "devOptional": true, + "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -7696,7 +7294,8 @@ "node_modules/tslib": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", - "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==" + "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==", + "dev": true }, "node_modules/type-check": { "version": "0.4.0", @@ -7853,6 +7452,7 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, "bin": { "uuid": "dist/bin/uuid" } @@ -7869,6 +7469,7 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -8248,15 +7849,6 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } - }, - "node_modules/zod": { - "version": "3.21.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz", - "integrity": "sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==", - "peer": true, - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } } } } diff --git a/package.json b/package.json index c9d6e77..bb9e73a 100644 --- a/package.json +++ b/package.json @@ -34,10 +34,8 @@ "dotenv": "^16.3.1", "eslint": "^8.45.0", "express": "^4.18.2", - "gapi-script": "^1.2.0", "google-auth-library": "^8.9.0", "googleapis": "^122.0.0", - "next-auth": "^4.22.3", "pg": "^8.11.1", "pg-format": "^1.0.4", "react": "^18.2.0", diff --git a/server/controllers/gSheetsController.js b/server/controllers/gSheetsController.js index dc4fa60..755039c 100644 --- a/server/controllers/gSheetsController.js +++ b/server/controllers/gSheetsController.js @@ -1,6 +1,7 @@ const { google } = require('googleapis'); +const { oauth2 } = require('googleapis/build/src/apis/oauth2'); const sheets = google.sheets('v4'); - +const drive = google.drive('v3'); const gSheetsController = {}; // used when range not provided in request body @@ -8,7 +9,7 @@ const fieldMask = 'properties(title),sheets.properties(title),sheets.data(rowData(values.formattedValue))'; // regexp that pulls spreadsheetId from a google sheets url -const getIdFromUrl = url => { +const getIdFromUrl = (url) => { const reg = /\/d\/(.*?)\//; return url.match(reg)[1]; }; @@ -70,4 +71,69 @@ gSheetsController.getData = async (req, res, next) => { } }; +//creates new sheet from API +//grabs the SHEET ID from new sheet //from re body??? +//EX: "spreadsheetId": "1rmlGP1YOFBvYpok8ltIErBOpdchs29KfJahY-Dv5IcY", +gSheetsController.createSheet = async (req, res, next) => { + // get authorization + const auth = res.locals.auth; + const request = { + auth: auth, + }; + try { + console.log('hello world'); + console.log('request!!!!!!!!!!', request); + const response = (await sheets.spreadsheets.create(request)).data; + + //spreadsheet id + console.log(response); + // const spreadsheetID = sheets.spreadsheets.data.spreadsheetId; + const spreadID = response.spreadsheetId; + // console.log(spreadsheetID); + //create object with role and type + + const permission = { + type: 'user', + role: 'writer', + emailAddress: 'ann.j.ni@gmail.com', // Please set the email address you want to give the permission. + }; + const permissionResponse = await drive.permissions.create({ + auth: auth, //adding this and now we have a different error "insufficient permission" + resource: permission, + fileId: spreadID, + fields: 'id', + }); + + /////I THINK ITS WORKING!!!! but im going to change it to my email ..... + ///// IT WORKS!!!!!! + + console.log('THIS IS JUST RES, NO STRINGIFY', response); + //console.log(JSON.stringify('THIS IS THE RESPONSE!!!!!', response, null, 2)); + } catch (err) { + console.log(err, 'ERROR in createSheet'); + } +}; + +// const response = await gsapi.spreadsheets.create(request_); +// To: +// const response = await gsapi.spreadsheets.create(request_); + +// // I added below script. +// const fileId = response.data.spreadsheetId; +// drive = google.drive({ version: "v3", auth: client }); +// const res = await drive.permissions.create({ +// resource: { +// type: "user", +// role: "writer", +// emailAddress: "###", // Please set the email address you want to give the permission. +// }, +// fileId: fileId, +// fields: "id", +// }); + +//populates sheet with DB data +//make a GET request from DB +//at this point i think we can get the new sheet URL and next() the URL to the router +gSheetsController.updateSheet = async (req, res, next) => {}; + module.exports = gSheetsController; diff --git a/server/routes/gSheetsRoutes.js b/server/routes/gSheetsRoutes.js index a571168..9b94496 100644 --- a/server/routes/gSheetsRoutes.js +++ b/server/routes/gSheetsRoutes.js @@ -14,7 +14,18 @@ router.post( sqlController.createTable, (req, res) => { res.status(200).json(res.locals.data); - }, + } +); + +//make a /new post request +router.post( + '/new', + sqlController.linkDb, //establish connection to SQL database + gSheetsController.createSheet, //creates a new sheet + gSheetsController.updateSheet, //make a get request to populates the sheet with DB + (req, res) => { + res.status(200).json(res.locals.data); //send new sheet URL to user + } ); //export router diff --git a/server/server.js b/server/server.js index 6eb1d62..2551092 100644 --- a/server/server.js +++ b/server/server.js @@ -26,7 +26,11 @@ async function authorize(req, res, next) { try { console.log('creating auth...'); const auth = new GoogleAuth({ - scopes: ['https://www.googleapis.com/auth/spreadsheets'], + scopes: [ + 'https://www.googleapis.com/auth/spreadsheets', + 'https://www.googleapis.com/auth/drive', + 'https://www.googleapis.com/auth/drive.file', + ], }); console.log('auth created. creating auth client...'); const authClient = await auth.getClient(); diff --git a/server/token.json b/server/token.json deleted file mode 100644 index e69de29..0000000 From 0db49369e58cf6571177a384ea3ad272c57cd08f Mon Sep 17 00:00:00 2001 From: Alexandra Ashcraft Date: Wed, 19 Jul 2023 17:57:02 -0700 Subject: [PATCH 15/29] EOD wednesday --- client/App.jsx | 2 +- client/components/Signin.js | 1 + server/routes/authRouter.js | 10 ++++++---- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/client/App.jsx b/client/App.jsx index 22e3806..d60ec4b 100644 --- a/client/App.jsx +++ b/client/App.jsx @@ -17,7 +17,7 @@ const App = () => {