From bd4e926308f6ea7a1a92f5706b308e01fcec4ef9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Iv=C3=A1n=20Vieitez=20Parra?= <3857362+corrideat@users.noreply.github.com> Date: Thu, 18 May 2023 02:15:54 +0200 Subject: [PATCH] TypeScript version --- .dockerignore | 12 + .eslintignore | 11 + .eslintrc.js | 67 + .github/workflows/npm-publish.yml | 22 + .gitignore | 315 ++ .mocharc.json | 5 + .prettierignore | 11 + .prettierrc.js | 19 + LICENSE | 13 + README.md | 67 + esbuild.mjs | 43 + package-lock.json | 4320 +++++++++++++++++++++++ package.json | 61 + samples/analyze.ts | 43 + samples/convert.ts | 27 + samples/convertAndSave.ts | 33 + samples/convertProcessAnalyze.ts | 56 + samples/convertSpecifyConvertionPath.ts | 29 + samples/convertWithOptions.ts | 37 + samples/files/drawing1.svg | 1669 +++++++++ samples/files/drawing2.svg | 1190 +++++++ samples/files/drawing3.dwg | Bin 0 -> 194848 bytes samples/get.ts | 246 ++ samples/post.ts | 49 + samples/process.ts | 28 + samples/processAndSave.ts | 29 + samples/processWithOptions.ts | 35 + src/index.ts | 346 ++ test/null.spec.ts | 0 tsconfig.json | 27 + 30 files changed, 8810 insertions(+) create mode 100644 .dockerignore create mode 100644 .eslintignore create mode 100644 .eslintrc.js create mode 100644 .github/workflows/npm-publish.yml create mode 100644 .gitignore create mode 100644 .mocharc.json create mode 100644 .prettierignore create mode 100644 .prettierrc.js create mode 100644 LICENSE create mode 100644 README.md create mode 100755 esbuild.mjs create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 samples/analyze.ts create mode 100644 samples/convert.ts create mode 100644 samples/convertAndSave.ts create mode 100644 samples/convertProcessAnalyze.ts create mode 100644 samples/convertSpecifyConvertionPath.ts create mode 100644 samples/convertWithOptions.ts create mode 100644 samples/files/drawing1.svg create mode 100644 samples/files/drawing2.svg create mode 100644 samples/files/drawing3.dwg create mode 100644 samples/get.ts create mode 100644 samples/post.ts create mode 100644 samples/process.ts create mode 100644 samples/processAndSave.ts create mode 100644 samples/processWithOptions.ts create mode 100644 src/index.ts create mode 100644 test/null.spec.ts create mode 100644 tsconfig.json diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..33ceaff6 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,12 @@ +Dockerfile +.git +**/.gitignore +**/node_modules +**/obj +**/bin +**/dist +**/build +typings/schema +**/*.schema.d.ts +**/*.proto.d.ts +**/*.proto.js diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000..22736806 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,11 @@ +# don't ever lint node_modules +node_modules +# don't lint build output (make sure it's set to your correct build folder name) +dist +build +# don't lint nyc coverage output +coverage +package-lock.json +*.proto.js +*.proto.d.ts +*.schema.d.ts \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000..b4948793 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,67 @@ +/* Copyright © 2023 Exact Realty Limited. All rights reserved. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +module.exports = { + root: true, + parser: '@typescript-eslint/parser', + plugins: ['@typescript-eslint'], + env: { node: true }, + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'prettier', + 'plugin:prettier/recommended', + ], + rules: { + '@typescript-eslint/naming-convention': [ + 'error', + { + selector: 'typeParameter', + format: ['PascalCase'], + prefix: ['T'], + }, + { + selector: 'interface', + format: ['PascalCase'], + prefix: ['I'], + }, + { + selector: 'enumMember', + format: ['UPPER_CASE'], + trailingUnderscore: 'require', + }, + { + selector: 'variable', + modifiers: ['exported'], + format: ['camelCase', 'PascalCase'], + trailingUnderscore: 'require', + }, + { + selector: 'typeProperty', + format: ['camelCase'], + trailingUnderscore: 'require', + }, + { + selector: 'method', + format: ['camelCase'], + trailingUnderscore: 'require', + }, + ], + }, + overrides: [ + { + files: ['*.js', '*.schema.json', 'package.json', '*.d.ts'], + rules: { + '@typescript-eslint/naming-convention': 'off', + }, + }, + ], +}; diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml new file mode 100644 index 00000000..e7698e1b --- /dev/null +++ b/.github/workflows/npm-publish.yml @@ -0,0 +1,22 @@ +# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created +# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages + +name: Node.js Package + +on: + release: + types: [created] + +jobs: + publish-npm: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 19 + registry-url: https://registry.npmjs.org/ + - run: npm ci + - run: npm publish --access public + env: + NODE_AUTH_TOKEN: ${{secrets.npm_token}} diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..1be0e8c1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,315 @@ + +# Created by https://www.gitignore.io/api/emacs,grunt,kate,linux,macos,node,notepadpp,sublimetext,vim,visualstudiocode,windows +# Edit at https://www.gitignore.io/?templates=emacs,grunt,kate,linux,macos,node,notepadpp,sublimetext,vim,visualstudiocode,windows + +### Emacs ### +# -*- mode: gitignore; -*- +*~ +\#*\# +/.emacs.desktop +/.emacs.desktop.lock +*.elc +auto-save-list +tramp +.\#* + +# Org-mode +.org-id-locations +*_archive + +# flymake-mode +*_flymake.* + +# eshell files +/eshell/history +/eshell/lastdir + +# elpa packages +/elpa/ + +# reftex files +*.rel + +# AUCTeX auto folder +/auto/ + +# cask packages +.cask/ +dist/ + +# Flycheck +flycheck_*.el + +# server auth directory +/server/ + +# projectiles files +.projectile + +# directory configuration +.dir-locals.el + +# network security +/network-security.data + + +### grunt ### +# Grunt usually compiles files inside this directory + +# Grunt usually preprocesses files such as coffeescript, compass... inside the .tmp directory +.tmp/ + +### Kate ### +# Swap Files # +.*.kate-swp +.swp.* + +### Linux ### + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### Node ### +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# next.js build output +.next + +# nuxt.js build output +.nuxt + +# rollup.js default build output + +# Uncomment the public line if your project uses Gatsby +# https://nextjs.org/blog/next-9-1#public-directory-support +# https://create-react-app.dev/docs/using-the-public-folder/#docsNav +# public + +# Storybook build outputs +.out +.storybook-out + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# Temporary folders +tmp/ +temp/ + +### NotepadPP ### +# Notepad++ backups # +*.bak + +### SublimeText ### +# Cache files for Sublime Text +*.tmlanguage.cache +*.tmPreferences.cache +*.stTheme.cache + +# Workspace files are user-specific +*.sublime-workspace + +# Project files should be checked into the repository, unless a significant +# proportion of contributors will probably not be using Sublime Text +# *.sublime-project + +# SFTP configuration file +sftp-config.json + +# Package control specific files +Package Control.last-run +Package Control.ca-list +Package Control.ca-bundle +Package Control.system-ca-bundle +Package Control.cache/ +Package Control.ca-certs/ +Package Control.merged-ca-bundle +Package Control.user-ca-bundle +oscrypto-ca-bundle.crt +bh_unicode_properties.cache + +# Sublime-github package stores a github token in this file +# https://packagecontrol.io/packages/sublime-github +GitHub.sublime-settings + +### Vim ### +# Swap +[._]*.s[a-v][a-z] +[._]*.sw[a-p] +[._]s[a-rt-v][a-z] +[._]ss[a-gi-z] +[._]sw[a-p] + +# Session +Session.vim +Sessionx.vim + +# Temporary +.netrwhist + +# Auto-generated tag files +tags + +# Persistent undo +[._]*.un~ + +# Coc configuration directory +.vim + +### VisualStudioCode ### +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +### VisualStudioCode Patch ### +# Ignore all local history of files +.history + +### Windows ### +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# End of https://www.gitignore.io/api/emacs,grunt,kate,linux,macos,node,notepadpp,sublimetext,vim,visualstudiocode,windows +# +build +.s3cfg + diff --git a/.mocharc.json b/.mocharc.json new file mode 100644 index 00000000..1835e78c --- /dev/null +++ b/.mocharc.json @@ -0,0 +1,5 @@ +{ + "extension": ["ts"], + "spec": "test/**/*.spec.ts", + "loader": "ts-node/esm" +} diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..22736806 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,11 @@ +# don't ever lint node_modules +node_modules +# don't lint build output (make sure it's set to your correct build folder name) +dist +build +# don't lint nyc coverage output +coverage +package-lock.json +*.proto.js +*.proto.d.ts +*.schema.d.ts \ No newline at end of file diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 00000000..68bf9b75 --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,19 @@ +/* Copyright © 2023 Exact Realty Limited. All rights reserved. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +module.exports = { + semi: true, + trailingComma: "all", + singleQuote: true, + printWidth: 80, + tabWidth: 4, + useTabs: true, +}; diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..dd5ab0b3 --- /dev/null +++ b/LICENSE @@ -0,0 +1,13 @@ +Copyright © 2023 Vector Express Ltd + +Permission to use, copy, modify, and distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 00000000..3c458c79 --- /dev/null +++ b/README.md @@ -0,0 +1,67 @@ +# @vector-express/sdk + +A NodeJS wrapper for [Vector Express](https://github.com/vector-express/vectorexpress-api), an API that allows you to convert, analyze and process vector files. Works for both public endpoints and paid metered endpoints by supplying your Bearer token. + +## Installation + +`npm install @vector-express/sdk` + + +## Interface + +* **`get`** - makes a GET request to a certain url. + * parameters : + * url - url to be requested + * format (optional) - if 'full', returns all info about communication with a server. + +* **`post`** - makes a POST request to a certain url. + * parameters : + * url - url to be requested + * data (optional) - data to be sent a server. + +* **`convert`** - convert a file from one format to another. + * parameters : + * obligatory : + * inputFormat + * outputFormat + * optional : + * options - options map. + * options.file - file to be sent for conversion. + * options.transformers - transformers to be used for conversion + * options.params - parameters of request ( options for conversion, use-file to use it from a server ) + * options.token - Bearer token to be sent for authentication. + * options.save - if true, file is saved to options.path, ortherwise url of the file location is returned. + * options.path - path where to save converted file. + + **Either `options.file` or `options.params[ 'use-file' ]` must be specified** + +* **`process`** - process a file. + * parameters : + * obligatory : + * format + * processors - to be used for conversion + * optional : + * options - options map. + * options.file - file to be sent for conversion. + * options.params - parameters of request ( options for processors, use-file to use it from a server ) + * options.token - Bearer token to be sent for authentication. + * options.save - if true, file is saved to options.path, ortherwise url of the file location is returned. + * options.path - path where to save converted file. + + **Either `options.file` or `options.params[ 'use-file' ]` must be specified** + +* **`analyze`** - analyze a file. + * parameters : + * obligatory : + * format + * analyzers - to be used for conversion + * optional : + * options - options map. + * options.file - file to be sent for conversion. + * options.params - parameters of request ( options for analyzers, use-file to use it from a server ) + * options.token - Bearer token to be sent for authentication. + + **Either `options.file` or `options.params[ 'use-file' ]` must be specified** + + +### [Samples](./samples) diff --git a/esbuild.mjs b/esbuild.mjs new file mode 100755 index 00000000..1731450c --- /dev/null +++ b/esbuild.mjs @@ -0,0 +1,43 @@ +#!/usr/bin/env node + +/* Copyright © 2023 Exact Realty Limited. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +import esbuild from 'esbuild'; + +await esbuild.build({ + entryPoints: ['./src/index.ts'], + outdir: process.env['BUILD_TARGET_DIR'] || 'dist', + bundle: true, + minify: true, + format: 'cjs', + entryNames: '[name]', + platform: 'node', + external: ['esbuild'], +}); + +await esbuild.build({ + entryPoints: ['./src/index.ts'], + outdir: process.env['BUILD_TARGET_DIR'] || 'dist', + bundle: true, + minify: true, + format: 'esm', + entryNames: '[name]', + platform: 'node', + external: ['esbuild'], + outExtension: { + '.js': '.mjs', + }, +}); diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..86cafad0 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4320 @@ +{ + "name": "@vector-express/api-client", + "version": "2.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@vector-express/api-client", + "version": "2.0.0", + "hasInstallScript": true, + "license": "ISC", + "dependencies": { + "axios": "^1.4.0" + }, + "devDependencies": { + "@types/mocha": "^10.0.1", + "@types/node": "^18.0.0", + "@typescript-eslint/eslint-plugin": "^5.57.1", + "@typescript-eslint/parser": "^5.57.1", + "esbuild": "^0.17.15", + "eslint": "^8.37.0", + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-prettier": "^4.2.1", + "mocha": "^10.2.0", + "nyc": "^15.1.0", + "prettier": "^2.6.2", + "ts-node": "^10.9.1", + "typescript": "^4.6.4" + } + }, + "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.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.21.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz", + "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz", + "integrity": "sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-compilation-targets": "^7.21.5", + "@babel/helper-module-transforms": "^7.21.5", + "@babel/helpers": "^7.21.5", + "@babel/parser": "^7.21.8", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz", + "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.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-compilation-targets": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", + "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.21.5", + "@babel/helper-validator-option": "^7.21.0", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz", + "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", + "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-simple-access": "^7.21.5", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", + "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", + "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz", + "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.5", + "@babel/types": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/parser": { + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz", + "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", + "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.5", + "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.5", + "@babel/types": "^7.21.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/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/@babel/types": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", + "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.21.5", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", + "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.5.2", + "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/js": { + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz", + "integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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/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/@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/@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/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/@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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/mocha": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz", + "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.16.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.12.tgz", + "integrity": "sha512-tIRrjbY9C277MOfP8M3zjMIhtMlUJ6YVqkGgLjz+74jVsdf4/UjC6Hku4+1N0BS0qyC0JAS6tJLUk9H6JUKviQ==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.6.tgz", + "integrity": "sha512-sXtOgJNEuRU5RLwPUb1jxtToZbgvq3M6FPpY4QENxoOggK+UpTxUBpj6tD8+Qh2g46Pi9We87E+eHnUw8YcGsw==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.59.6", + "@typescript-eslint/type-utils": "5.59.6", + "@typescript-eslint/utils": "5.59.6", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.6.tgz", + "integrity": "sha512-7pCa6al03Pv1yf/dUg/s1pXz/yGMUBAw5EeWqNTFiSueKvRNonze3hma3lhdsOrQcaOXhbk5gKu2Fludiho9VA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.59.6", + "@typescript-eslint/types": "5.59.6", + "@typescript-eslint/typescript-estree": "5.59.6", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.6.tgz", + "integrity": "sha512-gLbY3Le9Dxcb8KdpF0+SJr6EQ+hFGYFl6tVY8VxLPFDfUZC7BHFw+Vq7bM5lE9DwWPfx4vMWWTLGXgpc0mAYyQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.6", + "@typescript-eslint/visitor-keys": "5.59.6" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.6.tgz", + "integrity": "sha512-A4tms2Mp5yNvLDlySF+kAThV9VTBPCvGf0Rp8nl/eoDX9Okun8byTKoj3fJ52IJitjWOk0fKPNQhXEB++eNozQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.59.6", + "@typescript-eslint/utils": "5.59.6", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.6.tgz", + "integrity": "sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.6.tgz", + "integrity": "sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.6", + "@typescript-eslint/visitor-keys": "5.59.6", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.6.tgz", + "integrity": "sha512-vzaaD6EXbTS29cVH0JjXBdzMt6VBlv+hE31XktDRMX1j3462wZCJa7VzO2AxXEXcIl8GQqZPcOPuW/Z1tZVogg==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.59.6", + "@typescript-eslint/types": "5.59.6", + "@typescript-eslint/typescript-estree": "5.59.6", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.59.6", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.6.tgz", + "integrity": "sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.6", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "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==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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/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/append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "dependencies": { + "default-require-extensions": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "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/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "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/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "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/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "dependencies": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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.30001488", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001488.tgz", + "integrity": "sha512-NORIQuuL4xGpIy6iCCQGN4iFjlBXtfKWIenlUuyZJumLRIindLb7wXM+GO8erEhb7vXfcnf4BAg2PrSDN5TNLQ==", + "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": "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/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/chokidar/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/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "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/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/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/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "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==", + "dev": true + }, + "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/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "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==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true + }, + "node_modules/default-require-extensions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", + "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", + "dev": true, + "dependencies": { + "strip-bom": "^4.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.398", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.398.tgz", + "integrity": "sha512-tT90Lmieb+Y4jX5Awub8BsvuFM/ICKr01oZFBR9Cy6pxCf+rAmwcpRl4xfXb66DzTXc4qSMPqlqLDoghm27utQ==", + "dev": true + }, + "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/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "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-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz", + "integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.3", + "@eslint/js": "8.40.0", + "@humanwhocodes/config-array": "^0.11.8", + "@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.5.2", + "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", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "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.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "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-config-prettier": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", + "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "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==", + "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==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/espree": { + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", + "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", + "dev": true, + "dependencies": { + "acorn": "^8.8.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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.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==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/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/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==", + "dev": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "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==", + "dev": true, + "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/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "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==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "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==", + "dev": true + }, + "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/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "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/fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true, + "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/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "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/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-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/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "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/hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hasha/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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/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/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "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==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "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==", + "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-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "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-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "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-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "dependencies": { + "append-transform": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-processinfo": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", + "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", + "dev": true, + "dependencies": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.3", + "istanbul-lib-coverage": "^3.2.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^8.3.2" + }, + "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-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/js-sdsl": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", + "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "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-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/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==", + "dev": true + }, + "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/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", + "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==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "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-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/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "dev": true, + "dependencies": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/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==", + "dev": true + }, + "node_modules/mocha/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/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "node_modules/node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "dependencies": { + "process-on-spawn": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true + }, + "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/nyc": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", + "dev": true, + "dependencies": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "bin": { + "nyc": "bin/nyc.js" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/nyc/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/nyc/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/nyc/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/nyc/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/nyc/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/nyc/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/nyc/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/nyc/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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/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==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "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/package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "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/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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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": "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/pkg-dir/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/pkg-dir/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/pkg-dir/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/pkg-dir/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/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "dependencies": { + "fromentries": "^1.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "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/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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==", + "dev": true, + "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/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/release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", + "dev": true, + "dependencies": { + "es6-error": "^4.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "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-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "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==", + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/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/semver/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/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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/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/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/spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "dependencies": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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/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==", + "dev": true, + "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-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==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/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==", + "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/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "punycode": "^2.1.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-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "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/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "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": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser/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/yargs-unparser/node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..27388b25 --- /dev/null +++ b/package.json @@ -0,0 +1,61 @@ +{ + "name": "@vector-express/sdk", + "version": "2.0.0", + "description": "An API wrapper for the Vector Express API (v2)", + "main": "dist/index.js", + "module": "./dist/index.mjs", + "exports": { + "import": "./dist/index.mjs", + "require": "./dist/index.js" + }, + "files": [ + "dist/**/*" + ], + "scripts": { + "lint": "eslint . --ext .js,.jsx,.ts,.tsx", + "lint:fix": "eslint . --ext .js,.jsx,.ts,.tsx --fix", + "build": "tsc --emitDeclarationOnly --declarationMap --declaration && node esbuild.mjs", + "test": "nyc mocha", + "prepare": "npm run build", + "prepublishOnly": "npm test && npm run lint", + "preversion": "npm run lint", + "postinstall": "exit 0", + "version": "npm run lint && git add -A src", + "postversion": "git push && git push --tags" + }, + "keywords": [ + "vector", + "conversion", + "postscript", + "eps", + "pdf", + "svg", + "dxf", + "dwg", + "autocad" + ], + "author": "Vector Express Ltd", + "repository": { + "type": "git", + "url": "git+https://github.com/vector-express/vx-sdk-ts.git" + }, + "license": "ISC", + "dependencies": { + "axios": "^1.4.0" + }, + "devDependencies": { + "@types/mocha": "^10.0.1", + "@types/node": "^18.0.0", + "@typescript-eslint/eslint-plugin": "^5.57.1", + "@typescript-eslint/parser": "^5.57.1", + "esbuild": "^0.17.15", + "eslint": "^8.37.0", + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-prettier": "^4.2.1", + "mocha": "^10.2.0", + "nyc": "^15.1.0", + "prettier": "^2.6.2", + "ts-node": "^10.9.1", + "typescript": "^4.6.4" + } +} diff --git a/samples/analyze.ts b/samples/analyze.ts new file mode 100644 index 00000000..96bea53e --- /dev/null +++ b/samples/analyze.ts @@ -0,0 +1,43 @@ +/* Copyright © 2023 Vector Express Ltd. All rights limited. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +import fs from 'node:fs'; +import vectorExpress from '../src/index.js'; + +const file = fs.readFileSync(__dirname + '/files/drawing2.svg'); + +/* analyze svg file */ +vectorExpress.analyze('svg', ['groups'], { file }).then(console.log); + +/* + [ + '0', + 'AM_BOR_FI', + 'AM_BOR_EN', + 'AM_BOR_SE', + 'AM_BOR_DE', + 'AM_BOR_PM', + 'AM_BOR_PP', + 'AM_BOR_JP', + 'AM_BOR_VH', + 'AM_BOR', + 'Defpoints', + 'AM_0', + 'AM_5', + 'AM_12', + 'AM_PAREF', + 'AM_3' + ] +*/ diff --git a/samples/convert.ts b/samples/convert.ts new file mode 100644 index 00000000..4879cd60 --- /dev/null +++ b/samples/convert.ts @@ -0,0 +1,27 @@ +/* Copyright © 2023 Vector Express Ltd. All rights limited. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +import fs from 'node:fs'; +import vectorExpress from '../src/index.js'; + +const file = fs.readFileSync(__dirname + '/files/drawing3.dwg'); + +/* convert file from .dwg to .pdf */ +vectorExpress.convert('dwg', 'pdf', { file }).then(console.log); + +/* + link to the converted version of the original file : + https://vector.express/api/v2/public/files/afce43e7-56ce-4e81-8057-4bdf4da4f494.pdf +*/ diff --git a/samples/convertAndSave.ts b/samples/convertAndSave.ts new file mode 100644 index 00000000..75605721 --- /dev/null +++ b/samples/convertAndSave.ts @@ -0,0 +1,33 @@ +/* Copyright © 2023 Vector Express Ltd. All rights limited. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +import fs from 'node:fs'; +import vectorExpress from '../src/index.js'; + +const file = fs.readFileSync(__dirname + '/files/drawing3.dwg'); + +/* convert file from .dwg to .pdf */ +vectorExpress + .convert('dwg', 'pdf', { + file, + save: true, + path: __dirname + '/mysuperfolder/mysuperfile.pdf', + }) + .then(console.log); +/* + undefined + + 'file.pdf' is saved in the current working directory +*/ diff --git a/samples/convertProcessAnalyze.ts b/samples/convertProcessAnalyze.ts new file mode 100644 index 00000000..1c9e4327 --- /dev/null +++ b/samples/convertProcessAnalyze.ts @@ -0,0 +1,56 @@ +/* Copyright © 2023 Vector Express Ltd. All rights limited. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +import fs from 'node:fs'; +import vectorExpress from '../src/index.js'; + +const file = fs.readFileSync(__dirname + '/files/drawing3.dwg'); + +(async function () { + /* send file to the server */ + const convertedPdfUrl: string = await vectorExpress.convert('dwg', 'pdf', { + file, + }); + const filename0 = convertedPdfUrl.split('/').pop(); + console.log('filename0 : ', filename0); + // filename0 : 0a5096c3-cf98-4f7e-8ad1-5237c2fea5b5.pdf + + /* convert existing file */ + const convertedSvgUrl = await vectorExpress.convert('pdf', 'svg', { + params: { 'use-file': filename0 }, + }); + const filename1 = convertedSvgUrl.split('/').pop(); + console.log('filename1 : ', filename1); + // filename1 : 9f513077-8ead-4f78-87aa-cc1d427165c4.svg + + /* process existing converted file */ + const processedUrl = await vectorExpress.process( + 'svg', + ['exclude-groups'], + { + params: { 'use-file': filename1 }, + }, + ); + const filename2 = processedUrl.split('/').pop(); + console.log('filename2 : ', filename2); + // filename2 : ac487ed0-f594-42e8-a893-dae7e417cced.svg + + /* analyze existing processed file */ + const analyzedData = await vectorExpress.analyze('svg', ['groups'], { + params: { 'use-file': filename2 }, + }); + console.log(analyzedData); + // [ 'surface1' ] +})(); diff --git a/samples/convertSpecifyConvertionPath.ts b/samples/convertSpecifyConvertionPath.ts new file mode 100644 index 00000000..593451b5 --- /dev/null +++ b/samples/convertSpecifyConvertionPath.ts @@ -0,0 +1,29 @@ +/* Copyright © 2023 Vector Express Ltd. All rights limited. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +import fs from 'node:fs'; +import vectorExpress from '../src/index.js'; + +const file = fs.readFileSync(__dirname + '/files/drawing1.svg'); + +/* convert file from .svg to .pdf using these converters : 'librsvg', 'eps', 'gs' */ +vectorExpress + .convert('svg', 'pdf', { file, transformers: ['librsvg', 'eps', 'gs'] }) + .then(console.log); + +/* + link to the converted version of the original file : + https://vector.express/api/v2/public/files/0f7f9a9e-bf4a-4201-8898-c4cb7941e13d.pdf +*/ diff --git a/samples/convertWithOptions.ts b/samples/convertWithOptions.ts new file mode 100644 index 00000000..d604617d --- /dev/null +++ b/samples/convertWithOptions.ts @@ -0,0 +1,37 @@ +/* Copyright © 2023 Vector Express Ltd. All rights limited. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +import fs from 'node:fs'; +import vectorExpress from '../src/index.js'; + +const file = fs.readFileSync(__dirname + '/files/drawing3.dwg'); + +/* + convert file from .dwg to .svg + analogue for https://vector.express/api/v2/public/convert/dwg/cadlib/svg?cadlib-epsilon=2 +*/ + +vectorExpress + .convert('dwg', 'svg', { + file, + converters: ['cadlib'], + params: { 'cadlib-epsilon': 2 }, + }) + .then(console.log); + +/* + link to the converted version of the original file : + https://vector.express/api/v2/public/files/16acf8e7-2447-457b-a310-6781ac54ff46.svg +*/ diff --git a/samples/files/drawing1.svg b/samples/files/drawing1.svg new file mode 100644 index 00000000..22f62058 --- /dev/null +++ b/samples/files/drawing1.svg @@ -0,0 +1,1669 @@ + +image/svg+xml \ No newline at end of file diff --git a/samples/files/drawing2.svg b/samples/files/drawing2.svg new file mode 100644 index 00000000..11c3d9c9 --- /dev/null +++ b/samples/files/drawing2.svg @@ -0,0 +1,1190 @@ + + + + + + + + CAPACITY + + + TEST DATE + + + MAX TEMPERATUR + + + MAX TEMPERATURE + + + WORKING PRESSURE + + + ITEM NO + + + POS NR + + + MANUF.YEAR + + + TILLV. ÅR + + + MANUF.NO + + + TILLV. NR + + + ARBETSTRYCK + + + VOLYM + + + TEST DATUM + + + LAITE NO + + + VALM. VUOSI + + + VALM. NO + + + MAX LÄMPÖTILA + + + TYÖSKENTELYPAINE + + + TILAVUUS + + + TESTAUSPÄIVÄYS + + + CODE + + + NORM + + + NORMI + + + + + + + + + + + + + + + + + + + + + + + + + kg/m + + + 3 + + + bar + + + °C + + + + + + + + + + + + + + + + + + + + + + + + + + m + + + 3 + + + + + + + MAX DENSITET + + + MAX DENSITY + + + MAX TIHEYS + + + CONTENT + + + INNEHÅLL + + + SISÄLTÖ + + + DATE + + + DATUM + + + PÄIVÄYS + + + JA00986V20 + + + 2016 + + + 150 + + + N-B-1-01 RETENTION TANK + + + (EN14015) + + + 1500 + + + 100 + + + Liq.sod.chlor + + + -V20 + + + + + + + + + + + + + + + + + + + + + + + kg/m + + + 3 + + + bar + + + °C + + + + + + N-B-1-02 STORAGE TANK 1 + + + (EN14015) + + + 1500 + + + ATM+HYDR + + + 100 + + + JA00986V21A + + + 2016 + + + 139 + + + LIQ.SOD. CHLOR. + + + TEST DATE + + + MAX TEMPERATUR + + + MAX TEMPERATURE + + + WORKING PRESSURE + + + ITEM NO + + + POS NR + + + ARBETSTRYCK + + + TEST DATUM + + + LAITE NO + + + MAX LÄMPÖTILA + + + TYÖSKENTELYPAINE + + + TESTAUSPÄIVÄYS + + + CODE + + + NORM + + + NORMI + + + + + + + + + + + + + + + + + + + + + + + + kg/m + + + 3 + + + bar + + + °C + + + + + + + + + + MAX DENSITET + + + MAX DENSITY + + + MAX TIHEYS + + + CAPACITY + + + TEST DATE + + + MAX TEMPERATUR + + + MAX TEMPERATURE + + + WORKING PRESSURE + + + ITEM NO + + + POS NR + + + MANUF.YEAR + + + TILLV. ÅR + + + MANUF.NO + + + TILLV. NR + + + ARBETSTRYCK + + + VOLYM + + + TEST DATUM + + + LAITE NO + + + VALM. VUOSI + + + VALM. NO + + + MAX LÄMPÖTILA + + + TYÖSKENTELYPAINE + + + TILAVUUS + + + TESTAUSPÄIVÄYS + + + CODE + + + NORM + + + NORMI + + + + + + + + + + + + + + + + + + + + + + + + + kg/m + + + 3 + + + bar + + + °C + + + + + + + + + + + + + + + + + + + + + + m + + + 3 + + + + + + + MAX DENSITET + + + MAX DENSITY + + + MAX TIHEYS + + + CONTENT + + + INNEHÅLL + + + SISÄLTÖ + + + DATE + + + DATUM + + + PÄIVÄYS + + + -V21A + + + + + + + + + + + + + + + + + + + + + + + kg/m + + + 3 + + + bar + + + °C + + + + + + N-B-1-03 STORAGE TANK 2 + + + (EN14015) + + + 1500 + + + ATM+HYDR + + + 100 + + + JA00986V21B + + + 2016 + + + 139 + + + LIQ.SOD. CHLOR. + + + TEST DATE + + + MAX TEMPERATUR + + + MAX TEMPERATURE + + + WORKING PRESSURE + + + ITEM NO + + + POS NR + + + ARBETSTRYCK + + + TEST DATUM + + + LAITE NO + + + MAX LÄMPÖTILA + + + TYÖSKENTELYPAINE + + + TESTAUSPÄIVÄYS + + + CODE + + + NORM + + + NORMI + + + + + + + + + + + + + + + + + + + + + + + + kg/m + + + 3 + + + bar + + + °C + + + + + + + + + + MAX DENSITET + + + MAX DENSITY + + + MAX TIHEYS + + + CAPACITY + + + TEST DATE + + + MAX TEMPERATUR + + + MAX TEMPERATURE + + + WORKING PRESSURE + + + ITEM NO + + + POS NR + + + MANUF.YEAR + + + TILLV. ÅR + + + MANUF.NO + + + TILLV. NR + + + ARBETSTRYCK + + + VOLYM + + + TEST DATUM + + + LAITE NO + + + VALM. VUOSI + + + VALM. NO + + + MAX LÄMPÖTILA + + + TYÖSKENTELYPAINE + + + TILAVUUS + + + TESTAUSPÄIVÄYS + + + CODE + + + NORM + + + NORMI + + + + + + + + + + + + + + + + + + + + + + + + + kg/m + + + 3 + + + bar + + + °C + + + + + + + + + + + + + + + + + + + + + + m + + + 3 + + + + + + + MAX DENSITET + + + MAX DENSITY + + + MAX TIHEYS + + + CONTENT + + + INNEHÅLL + + + SISÄLTÖ + + + DATE + + + DATUM + + + PÄIVÄYS + + + -V21B + + + ATM+HYDR + + + + + + + + + + + + + + + + + + + + + + + kg/m + + + 3 + + + bar + + + °C + + + + + + N-E-1-01 REACTION TANK + + + (EN14015) + + + 1500 + + + 0.5 + + + 100 + + + JA00986V22 + + + 2016 + + + 215 + + + LIQ.SOD. CHLOR/HYDRGEN + + + TEST DATE + + + MAX TEMPERATUR + + + MAX TEMPERATURE + + + WORKING PRESSURE + + + ITEM NO + + + POS NR + + + ARBETSTRYCK + + + TEST DATUM + + + LAITE NO + + + MAX LÄMPÖTILA + + + TYÖSKENTELYPAINE + + + TESTAUSPÄIVÄYS + + + CODE + + + NORM + + + NORMI + + + + + + + + + + + + + + + + + + + + + + + + kg/m + + + 3 + + + bar + + + °C + + + + + + + + + + MAX DENSITET + + + MAX DENSITY + + + MAX TIHEYS + + + CAPACITY + + + TEST DATE + + + MAX TEMPERATUR + + + MAX TEMPERATURE + + + WORKING PRESSURE + + + ITEM NO + + + POS NR + + + MANUF.YEAR + + + TILLV. ÅR + + + MANUF.NO + + + TILLV. NR + + + ARBETSTRYCK + + + VOLYM + + + TEST DATUM + + + LAITE NO + + + VALM. VUOSI + + + VALM. NO + + + MAX LÄMPÖTILA + + + TYÖSKENTELYPAINE + + + TILAVUUS + + + TESTAUSPÄIVÄYS + + + CODE + + + NORM + + + NORMI + + + + + + + + + + + + + + + + + + + + + + + + + kg/m + + + 3 + + + bar + + + °C + + + + + + + + + + + + + + + + + + + + + + m + + + 3 + + + + + + + MAX DENSITET + + + MAX DENSITY + + + MAX TIHEYS + + + CONTENT + + + INNEHÅLL + + + SISÄLTÖ + + + DATE + + + DATUM + + + PÄIVÄYS + + + -V22 + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/files/drawing3.dwg b/samples/files/drawing3.dwg new file mode 100644 index 0000000000000000000000000000000000000000..a7ac60a677b228f03b399c838fff43cc44b7e145 GIT binary patch literal 194848 zcmeFZX;{--yRf~QloFuQw3K;D+7wVx%cOuPp@4u^g(`}QQc$EQXe~2>G+<@07DQ1H z6hu^FuB_D% z5a=d$cLRT3*07olfFt7Y&)om^rl#lh^y2^9uL8Iy2&y~sZQ)SNnirL`734i+K#vj` zj*$G^WQD+*aRITYZpouJ{nfBAW`uQj2KE5S3xgOjO!DHYjKWbsEP=MP_iYZc1ToJ+ zogM&BaHRyuDPUv-Yyg(=93XPA41pNwz}iij3FOccxW@*nV}Dx+Fzbw{92De13A9JngOd=$u&K*sHTNRXv_%yY&6 z+NQCbGBq-qZUdfWJWoaBGnXN+8R?$ZZiSfu`)8Z1I(Ga*Fwr^#%Rz(kpc)7+WH5ld zhoP`N#o*nw=*-H4QE+c=VJ@)l;9zn_9&(dWxQ!h6HpAQlk2y_2NQiWus$?sKUCuj z7xpp0{vO6m+f#hr-6x${EihVlZ*EgA7}~)(FK0|eZr&~2Mhtw*H22t)r)3$x@q#S z`Z{5K@}T`DH3j1fgOb6KD~zGgDc;JvTW@DQyo)|sKi6>>IG4>4@E8{c->lBureFQ` ztG!2zzqb3qs|Oq3g)R1vc~o%m;^M+@f#S>^TfTK|el7<4V6e0bfCy0g0Z?*K90OR* zSf?9^z5=e}&|zP&qfa?-zkGZF%ngFLN4^CN#o~BTqqc&%4;hh<5@AP3dv5Y$fi?32 zGPSxzu4m_cHAG`ZK;0RK9w5>%s4a&1^5Uv`Z@uY$a&&Kqd z_LVQ>ng^Y3TW>cM0YumS;qM)wUnsTP6ig zm|WZSYev%Od?&fd_~a|l%G-C>56k8a&RlKp|6t?dM;E_ketW)eDX682S)I|>5APT_ zp34o08#Ol));?xVmFJ<*A!*yoa|50bQ`rvhir{zhlC5D@RiAQOUul94?(H{n_&pE0u$F7hK6!FM zjBv6#qH=acmew_CSW;fp)Bate)rwVbmKk(9uK5}slp45}kxc%Um&QF6h(2Y-Gor0B zezzZ-EiZ22B&?FO^>2T2gLvn_-yp_Oifck(zw;b{Q2+pZjshaPGW@e(LfLjW} z%|RyPcP4JlNE|TNf?LYS`%O1LjLg!3JRb)0x2a7Ew=@qi0}L8M(vS=q!k{5AT_}Tw zKr{rRA!-_;pdo;Uq|*=^dO1cz01e5YAx1RBfQDqy5Qv5_Xb7Mo3L3(oAuJk_M?)YQ zvVw-FX^7(A5JMW0M?)YQl0if2Xo!M_FlY!uLrQ6g5e=beh=PVNXowLFDWxF{8d5?> zqM#uR8e&XC@@NP|L(*wT9Su>?5C#n~p&@xR1fn61Gz8EP#lIo!e?tHb$)q7T4H-Z~ zN@)n7A(=G9hlZHakWv}~XhPl&K3|d_YtxiF!W6YQkGa@xNMt!_N6E}2$$g;odA>Q>U~Zqw@S((2aJ>W0zkvT1cZTHRn;T_&w= zHLcE`R_9NvdqDf&Nc&$*`+r3Hzqswudvdd(wJhSA$7`o_r%21(nC)xxK3=$Usp{xY z*1_^A_QzC3efJCOTt=rYsXu;ccD1(S%vuR+k<+Z0)BBd+`qTXVH}n5L=l}nl|NnFT z{~w(Hj-q74o5NjP)=$0Uzdi^ZOeX*UJh@-qH~8Y6J8_L(`nY57Z_p{Kx~i}`i57UJ%8$|ELz<<{LvoC*^&!$VH(w__eS!*Fs{eQ@RO8<%BPpLoKNTJ{V zY(Ms&n)u(>9{Qhm4y*-!Ae?3{q}NNMDXITae=3mt|J(8cdM^2&I7a~iT_^GMRukx& zi3Kh|M#nr9OaQ_3-~ZIozoHyUGc)Ki|8Kpe&};swoiuvgBzkGgKQ*TMr&j*#-yib7 zT>L4gqPLMim;7T-Mc3$mRr+7{{*+GqXaD~g|5L9q^!y+Gzt;V;Ea4yeziRlurYF&H z|EcXihQnwRf1+`t1Yj5#{U7yrwBqN*TPs9CNx^eJ{W%{0*8&Thv9tfH;}fHE zO`v2jGX7ogzbf15H#f1HOJ6Eq=Ee^1&}2XG zc`KfQF(nHn)Nj36&3lYXnSPS@0JoT!(*OtK^de<&~BVsfmLs~&#* zgn+IdQbh$%j~lJi;X@u5q#$4gVU=Hptivqyb(Rb0P?puG!H#7B#YivCs8eRH-#8|g zGrTUCZZs%fwvx&erf7F%E6(=;va9X!y$`h(*dVffdD z%a0N>favn3wz+Vxvom)Y*W-G-)ki!W#=;yn+lI%LPHGM)xmf`O@PslUPEoqAO8lEh zBsBBcPJl&z2{HuNhQ+9*+PxjX?IDLd^o_r+s5g+~YcARgZB6=;?)b`+no%?Z4eCeB z;+%2$A%HJRLc>-y@VC72v=Q}gv|QTm%e|aUTH!Y?k@2f6aC|P*5qSLCf zR~xTr==K@6V(70VVaB>3w?&UXEzB}&ckm%RY;bjGDQf6M}*3o)_xPG{DDz+aXFct1vi>fx_wr3yPvTsNH&EKnD zeB?G*W*{38b(3HY?({6h><_39-W|cOmtNKgg_kQnBc8ywRV|WeOJB4I?gKK!pHtwb+5kMK4Oqw zD4B6)S#wLfooQP@W_rSN%=_e23_}&MHLpJQ`*YFbgY?6{dqUVslgoh%f|t#SN9?ck z{Pj2NSMtgWQM$$uf(p_ppc+z-o72T%fELwfBfNv1WTerkmZC#qkbDeK6!H~fP}#;z z@TmsTfhRV}VRSgvdqMi}CuSU8{JJ^Zn3ndlM#cJmvj+x!QE8!w$i#-{Cr1r>g?g@L zf;^VA(MOtjyI9vFVCnl{pSLG1D_sZL>932pUxjJCcHNebqAVi=j;^VbqS0QVJR{7K zWCaqqeAcPk;~7yaQ!e81=b$*z5wsXFBEXF4obyG&gf@Yqq;z|uos}xpwqCbxa#Iay z^uNS=#$P0u{rv(1fY__3Uw!;f%FEqz6nFBbKuEYK;B%yYc?Jky!5{L2EQa-SUysh| zK8-qpQH;h%Ryzqv;N4pZX55kh$0=SbzI!NwWLEn*$yhsRQ;6dnh_i=IxtJl8WSs(A z$sGATKQdQ1m%FnH%g}`fAxJqGl&sd$vedu?i!jqHvLF1AuhR1xbHOL|c`+o_bGiks zHJFTdPkZ3K73K7BSx{7u3czC{O8Le7`oRhM6aG2Wda;2!+V0^C1o^2SNU_=gyPY!{ zjIX)%9#DXD(t9*c!y5mauYRsTR%+(Cn&CIf@ZGF~KvAQs+md<64V(Mhqz( zil$l(qk*sT!_o2Gwzs%Gi_4%p%Yq*o8Pi=U=fZBML$kIiqdcEFAJ28~tQWr&_M10w zTaSy7{FP+#B(Ent)X3?ej{tZqAKP2Sm7+aoh%`p-NL+Jt)RtIc}LZr3%;o>w5$EW$Mv zGWrU~Z!LMBXkP74sw}n^Ig_fJ`axM8_mNzw3n2=W2&}dy#HAyeco6|fW2S4y?H)@} z(=2s}?$%c7mbeVF*J@i+)aq6!bSzOm*#&OBf0$pmqh1o;z{y?Q5R7F5Jaz?xCr+m% zyvR__Cb7%U9o4LJrRIshYDHe#o{2VOrr!P#U@+xUk_&o|6NLV?F||#IbFsFXjHz5K z)N*9cN~LDsmh%v^3`)e$F>%Z2Aad9ZC{j88I|W4`$oS{fEs7K%B!&pc`E)26wVKcU zeb-Ebe8{xnt3LY`P8Z&rc7N`^1bDM%BIJ_P1(c5s_XMHOlpjm=9yk|+NVe!p9I#w zg6lV8JvgpFaxFw6+!!GdC!I{H3svK-p)u;#b$c6^ae*KTOk2sj#oaHmK$0iF#;le~ z{l1_cK5r>9hRXx;Grvxb3@N^|wre=t$wQ9^5Ac#Hb(tYQ^@*XldWIDGVAD4-PEuRk5P3+h>nAIL7R5$8|c_d=JATt936$PBI-O z?50`;1Cm;2rm9=nBf>vXW}5JcR~~Y|AJ^ZLa*-!!r^}9>z>#ka1{j#QtlyCf?@G!^ zlwYg@671aAeixgqAS{SrK0WwV9{Y5UW}^r_vC1hrDR2D-Kg3a6qLS2$g0lpL|WcuwF1BM`Wh;Vh*_~_0hrjZbVxri-HEhHaYIAW zbe4S$FYdy3k^nel9&^`O_(EnB+&d-Vy2AN0YEi!aUDB<=H%$>ALf^%Bd;q`!qT_T@ zlSbDM144AisZNO4pfhj9Oq1xgm|eX$WWX4)nI=}ha+$em^36GZ=;%#c7JR{^9cfPM zSq@h5IAvvu?y2Z~Ja?ZCTl5H>-8AmX)OOd(Ca{Z&U8p37iF|W(1UK_lt%cc93p;^_ zBzUh+5za|Fn`2o3G9zY9imq(=q>kGgvxc}`*E|*>2<146I=c{15JP3+%cT+kB9(^B zN>#I)KvaXXgaorZ4&Fj9KhguvRMgn)7e5u>nCh_}tgi1j5Rh`IV!N#ZVk^MZ*>#_I zuYAt#2hyd~{$b(K=7b39Qw#-G1Bnv}>L(=)F0ktUHP}vJ5+J$Tqdx+suPA{C*$fum zYYjg2Jfgz32Qo14V38P`mGzXDWD?S$N`o#AkP6Rhc*S3mN|wO6 zdP5A$$0$2KeM+ge0E_~LfEJZfqLv!y-N4?053;c9 z1C~xk78U2=mkSwAiIzf%sbE~p>Vv0cRX;&vn)uw2Cm0IrjAryvMgY$X)*;{tNcnTe zP^%6%_BG{ca8t^GOp#UNuno?_{p=wcUMbf;(9OG2@@_Mo9oPf;Y(NmASw154gsyBm{mMoJOQu1%k&) zbyDvoxoQ^Lh#gU7kOP4@KyO~(lBvd;X1}lUG(^X_qsc2IOZWw~0@pT*r$C6}xdJ?h zrK?90NTb&&(wX#CQws;r7;dHk$$`7Baoy7ha==sdQqEnb*{i88D1KY8(c?tgM~}23 zv>={ceUQUnTwckQmQQ%@{4~9#Ppp|T5Gwnd`?)RXDJNVaFvAAB$Yki?8bV_NGP%@V z(MzBSz8>F#%=3!NT)s>ex3;Pe*Wnq+*K}e>%u|shgQ7Zai3jMdq;$;`*U}>-TyIE> zsLVDUerX3G1&b>5`e8rbHZNJe#A>H2f)pt=!d?Ma6ZI1>V5`29V`&GF;vBRAuJD66>nm}yPEWGWHDigkxi`lGGpp}&+UULoGD_2sr^U&PjjnUgZt!NU zUOkOuAYO4#Q?(Ex;*7*}6!RE`Ln7e^L6wfnRa-AoYgNT+^(DvS1I#po^8FtQxiLe| zJ&S#wY}zvukL=VgHC+_?JM%5qJfI5Ai`}ZXuyD$~aLUj6$KT%S?3>q1)++%!yi#BR zE?-K@(1cG5v}lvHbyzlrI2pyA8fL+?mG^8Q8TM21qt#CNZjbJ!#Rma~v(&7gIqh~)%H~WeH&aI;@)5JXP~(d;py@aePiBl#wZ_t- z*o}4T+<2PH{Xk)6KCXU&QS4*4)h~Z97z$CON7FA26ZVEIaYeqgpzMOG>P+n7a{fgT zg9A}d%3ai5gV&jdy<2x(HnLdZbi7+!{}Sz2zHW)I$W%MFo|4f06r-l#7)&*7fvenj1a{MiFbP}-Z zK{ouNRVxjQ5vM!^iPY0$py-mq#K9*X_Ki2LQZJ;B+{^j*%KT!Nn`U`-kjHOx7nwG> zTYV87=jbn6;gNVS-V}}koP;ZQ&WcJR@u!I@(|Scjyx`)1Rc8{dm9@?k1wD|pp(@k2m{KL(l|AH!+}YoP=u$M?QeGf z%fPc?fm_`$axY|rVV<1L`(u`7F6;@qk4?%Sc3*L1s-WuYY?E^9Gab*FZ&(|b^b{x; zpp&PaW&EXf%(Q%u*;;(T#wbw2Ln0CmN%bI^<184&^v&EbgYiByv8fZ5gYRppup0UX zQ&=}w5OP?v6h+Em3hoxqZK01DX$GBC491T7@?8M>n$K-;%j!Wb_uic`+KPL)pK~L~ z^9&m6vH6{*Kogg?;1u@=dA0v7Z`Q}W4qw@eq1t|}ab-|(loL9ZlcfR(nwFrFMX}oc zwl1lx*|*ASR1lV&%7{zbxgu^H<0J9*(?VOS3Nm;^iKraO3*BxeUOmI90|wa`HeeRK zhz^Bri-RF<9j1wujN^3jcbt!vxLQTU)^b!;g=yfPYi5tt=t@BDx{2-bS#@ki9NVs7 zsX6Z`ar?+#1KmyJE%WspQ-=&sHh~j&K9XWgkgvw(R?o618XF;F4MKWwjX+{X;yV{G zp1EqDb9-9`Z%X4#uhOo# zib5Uor|Vc~OK&-`=l1F-RJ8CYBtl?S0a&B*K`ndESngZ3$95!B5hrhItEA_a~=Ki`XE+oj^coMn0~^Iosz_ zy69tpSl}Xx8jrz?q_G)v_BZM^O8(L?;^Bi|xP?$OXOdVf-t(N(6PY6dxCKk_bF24D zUdU$wfD!Cirsog7ox8P2t$CxBc7{UlG)2GorcJU4C<*DK46g(g zsuiSflj8C0R*OwIK`YvtR$F zhQcWR!-s%V^3}PnOILFXt)q{dKc>`R3XcRD^lCWgFdx2LTw*=l6lq+SZ8OqL;O>r1 z8wXacM?=Nzn`rwzG7|F1=k_n;Gly96g;@FTBc397p3(N|C4zx4&bYF6yO)_Wgqmkh zyZ$g!HL^PgnwKRY&8{$#PWhlJyofh<;+C@vKz+*Bk0(#o#hgo9Em|+7PH|v3_?_KbwU{|F;ugko#tbo zpv{HX0k(0pH6`jOksbMwonQG^!ffZeQEhFbz2^5WyET6>CP}*6h>HrL+RRQ)7lRo; z_^=a3%!C+t-6dcEF3>&d+jUO(UMC}r2pS15lxoxIa8TR38xCkN2|45ow`HKyh7N=5 zIC#xKJ!f{Ym=$|eJ#w|+(W7HdcueMDfG0f?1iI#&C&N* zL1)htp(+xa`eH^?pm!C+35DR`YQ@uSj23opJ$Zr==o#&+K_9-lLthRAv-w#RHRS^( z)^)BC>U7)7kybhpEuydC6yM6M5)OjRxkvNzFOZeHW<^?bJ;BU)==lBt4~Fr{x>Or{ z+i}y0a`b^;@m*8<+|vI+-R&E%#d!d~$j4!7cMPev*l z?2$P5=G7%Tu;^VI4e(#1L*wR8N-kt#(LX9IU$)#~dRMH4 zw*W^KNq0RiKbr6q6TKfopQm!@Bm%fQ!`WJSI-UJNQ>+NHn#OS(&CFGq{o8j@5o2DS zgACiNE9K#F;YYU_X2scvRmTII2E^qD285mQHs@yvZ_naG-}9ZeP>lTcD$f-H7@8f{ zt{UDp6q|?^@Vb)}fGLY7J9?B~G=OBrW+4j~y_m!< z!}?ZtdcNoTKPqlK(T6N`H`INI%5f7Y5$M_L(`GiLISKdlNH+-u3QC zkt6iL(Ae^LnSGKv#!uWt3M{b^Nw8k6s)#ctutXi-;e6FRQB#=pZCHM6{8xvu)0ZKQ z$h!@jsLgN>ese>=4u9>}W40Ytj+JMqTldN3VHS`kOtw*>{iQwO_pQNPqzlVh>AvGP z)%Y{Y6Kr~^NXrjzmrHU>lnam~giHPSh`63S;|A;#ve28J$neLfkjG3hJR zY6OviI*HS z6+s3ZC||e-gn9dyM2DEPOpXU-9V&df%Pj2r?KHGOFfuaGHNc(MMX2fp7mc8gO{(Ce zcTkz&#m=b$6Dpa4ah*u3eAwGGkTMcm2hb8)+1h$_R1tK=OuI6m_`y@ID=EF(m$PJZ z4$SS7)kf;uSEEaB3dZES2k^}JP*;4hA;Ed+WqyShHQ_wGbMp4pPzgAq5xW8py@bOF z!b(W)_gk-y1a!iOfn@cUI4s2JB5w6$5WLC;!|f5-Wjy{kvQJlxco-S#C}TT3B#;$~ z_+k^5aWd$(m@VDU+&0$wx~A@Ega6@IUkhV<;vr4$%h#i^BVx#VKgHObnf@cVNSO_? z4;KVnEWL4}|LUW>6!Dhd+4k}&@eT3;Hz7la_-ls+2XvunekD6ej&1$?U$@{Qm*idy zdpdG{G(GV0JBqkjC39Z1;JONkC_4bld@00#yKetgF3iPs;g=XvHr*Dh5A}Un`DCAx zn?kze@=FTqKeq=VE@ctNdK{VG)=Y~l8e9K;Bgx|^(ZhSdF}eSE@1j9GE&w;>RguG(&NMy8^Sz_AQtyex3|d z`y<9nGl_W!0r4sP;?LtNttca(usk_|5A(tLD>!6uW@&e~+iWcEbXVL8gA=)FDj8@In|~y7 z+b~=5r3lZ7_feGyS#Wj`At-gdoisv&qrw0^ra3f3#Q89291bEU%|LX&D=k(BA_16M zJMm9Aq3+jF>-tpR-JdRbaDU43o!50U1`l_L8u2p9@2$H)V5-Limr|eyi#=izNQHdj z8U3OI7Urc+GNh&a?7XI_mWK+Vf_L<|#*{C(tW9NY>5OWjt;1Xxg-g>Ce*=;PZS=@pfUeYkWUPq7**9JoS%kV=B08Cu7ue0!#HQHT>^|yn zHl*zDyK}5|hghAwbQZdajW}F(l@n~J_x9|yQME%X?wPBcEM89d^LLKX&#>tlc9iJ; zU88|pKV@j1BrE6+6X)vXZAPP2mc7Af)`4E)mW!k#Z*R+TWb@HUtfuO;xrZ3}q6Xbu z9HP8ofhU6=e8w$P60E%YTh-Dutva;-Gcr0MGb|v;GuK?=*NoXe8dt$dvm0!(B`+ID z7ol4A&*PJ9-})~bgYl@^0nrBNa2WU-fQkmref`?6;as89x4O|a67dw)MH|#$;zX>m z5rYGFdsrY6vw;sXw*ghsmEa?Xd)2Z@L86z9aXN_FsmnF$O47YKDWalu8Mv6~{Wg6f zo%wB4?_UsN&C|FI4i0`wAMZWoTUU>`3G|F%hWof{%!ki^{4)-P_Ue6d^iuT8K&5~G zr;3r3Zuc_VAU$u(fcZP?r)}VGQX0fZA-QS~(>BA!dt|n3RBf2(=z+S7jdQAWG{9}W zC0~{V0!-H6yQpjowS?0_>54~0(mid*I0Us*fdzZB*xEUCI4jBxi!MFSu`2Mts^xNC z{Ej(88W~v@Or6sS zkRdMv8{+ryR4QyGk1y~5ZQS~Yan?JgKvv7*tKO`Q$FGa@w(A*!wH1eiOAWC`1%eZj zB^+IR@l*|hvvj0bN~c1cb6c#hfL-zoGLglT!E=O=>Eu2L0kW4H*eZm|%`%~w?Xn&ZX8PmP5#d?2hJ8<<1 zBgrYCWu!^VQZ#{s9Px6i9Yn|Gk~9dCS=X zYm;}YEc8+k&I~yCnLCk40)abFWf53n7z|Bv*`RtDpux7C@S#s~Inb>jrpt1KC?1y9 zIy+n4dN4o&JTcA0j*0uNRYSIzPrhkx{!6&DwAHqMNEMd>g5G?O$FtJ0)tilb8@QZB zKduP>-exGb7&Lomj`6vCc&kuQ9xKw)5DT0Y`wwwqFF zpcv<=grDM>!pwv=?ix%Y^T1K7bbxK%l?J9AfENcKpB)4(3@c(q`&e9%t`fl85^?y= zLx9UP2V3gJ;EN!A%U9wTlZ3J!?G+>%r3IEl~k|%%Lot$@l>s&{_C$r}u_)nf5 zT?IAo*q<#uYcN}=oSuHo#qc87Z&DCZf+e4`1P+YqaFDq4_&LS7P=nzZ-9_sww613W z5fcr7NMe2MUO0B8tU8Ry%Kr2KSLqg5VY(lCzU#hPah-HiyJZBdo2fGnmQR+BpOa13 zPS6`?R9F`*AoP6cH!7#ct|^vbmKbmCWLefx@)CkU>5~F%#=m<_MMq{ zckwfloF$4q2q4G9*~dSk`a>$#*1)18=+QQl;N~R{;D%1wlvJ@q$wVieWDsNm z`diRUL~5vQ0HxvybSE`QhU?^12i3qPkuVyR21uJ)w8h4>6mF@*^9wTQWsDr+l2Ug$UeE1!jwIqRPR@Dur%~*>!5m=_9-$^We^4 ziTP37o+;Isolh!Y9dgS@xjYjPi*s%<><>?gzjo8qtjlobqJui?;dgb_`08%hL8{F6 zqO!;%F=XY&Iqcf^N7`ymL>{*Y?NH|S5u^l%OGb!rkxUznSFMId3Pf@z5lD-?;z|iH z9jj?Sq-(}*36gXVT2859T2z*reUOrKr6WHJdd!k6%>#|NVOK8=@YX-FOVg(t7p$0S zQ=K;OYoc>5nV6qDTXHTfDM#4t$Jta4&=oyT;7C1_{G0g*9pI-9gnoG+C!Scm?@qLd z5S7B$(cv2i=PM(AX5r))zm6|i5$XN0;hPOeqKGu4N96?@BLAYQVNw@LO?TRXxX@qe zkS;j1tClYT4%tXKqsPgYA|q)@6tJ;<6HS<=!JqA zh|}5KvIdatSIkL)J`dx-W-r@X!VX?jR5#z6=n0e(hdvhs3*1{M! z9Jw{F9YSLv#yadSE*U+Xa5bL$A^5L37LaoJ{J)V>dNh$9rV>&zH+=MRjX(I)UtFq| zj%75UgN!h*pWF|Q-cr12NoHXC(<+~mX{*h`vz%FJJ>aI|NwlBFa_pGE%U507FCYCl z@@PIYXB<|U1GaiH*OOQAm)VeAi7>#t&_Zaj_<#y0Ez|pvDuGZG6yTz=Z+|S^q=fmfCpJ&cG zEBy#z!>+@}zu!3(1uae=Y07`c>LDRXk!M`(i?h|7-F)5>t-cwcqI3oGZznD(8YOWI zQ}Du-+Y+qX?Alamm?F}n_Yv2uCCduj?w!NRW;G^5PvUop0_w*=U@e|-bt|^sA6e!a z24(;?sruwRN^YecKbsDxnMl*39d_(t68@6L)0d(Mj`h=_X?Hn4_dOfvV^cf4?%eLQ z!Y8Rew;Cb8N9Dv$H#zD(Jb{H)-gm3ru$d9g`>i_#9I!Y!zV3-w+=f|WRirs9z){lU z;Y_F^z`f^W%;kOvZjBKekvsA71 zKv39QGpIC3{DD8`S5xl%dF|8tV*(=E16HQ)5u)j~Ap!Y`*`N1LBCl=hN;~`3+uB#3 z_Iftn?(;S?3>`ft1BVKmgqm>u4MDIV(oNQadZ<&4?sBYM&SR2B*o2!M$W2z@h5@q* z)1=&_+w}3`S}osGVsS*bZPtk@d=H_sEmOa4rE8|O!Cb=lqCVFM^e4Gls(B+M(#_ETGjlf z1qnr{1o|<`#pC~ULpsf`h#LVy$A@QUEa7I=Wj1X_QZl~32k%_b-Iv^`(a^&m_U9n* z)N3=Y+AkX4)^pT+qPad}?jcAI>C?Tl5F)z2YaMj%9Ih)u<^Aw*z%4X0oVaR7nqSzN!nOwGg?Xmg70KL&?2+DGo(OS2Sra}U;FriDtTQzn(NwxaeRn$5xz~X> z2lh>VT?eEQf4U(dj6xM^6u{YB2bG=a+C1^aF9yf0^$o`;Thz6&&>0dwkB-Du9SvAi z4)7ma@856j%Kdn(`B47s(?5^(BBp{f_PR>Z8AR0}akUUuo1YA|a=I8B2RUX3^@Lc{ z-|3}CnFBehfF!RZMV4BX;2T#kET8UB7tJ>Mf?EwvHN9+x`hdl)ar7OG6Wi*X{Py=b zclO%T!>kJyOo4};DJVL$0wIsX1%Q4$e8`2~ACwHYAPw%4Ozznde%(9Yh&U(FXTgLY zZO&d_)AYT|Py5X%JdLre=gm=0Y}4OT>@%5-6}H>fM`G8izcS8_m{dw&!J$PfSb+5l1Jvji_nSFE#GK516JT}Tl zgiDtg%97Ed8kk>OwNDZ;8~1E6Zaxm$STFU^FM5m&Ke0F5lZu(a%9$lP)gIiSIHy~R)3XHG2bw6l&HHV1%*T-P`x z-H?8+c~}Y8-VyAC_61(TEsU)ho4-Z1jM(b&A;c_gRR|d8)FrRafe+P_UM0kr*%+0m z8x8N74IdEUkrbiuN6z611K?@dYBt>#t2d9S13pbjlal-S+*6|E&~wh~m-@H_6sipI z+M&VWrE?7p@-z&^nzh=O4?Itu<{$mhh@CNEA}3)q+OU!bAu|Lm<{2AC?r!aAIa$K$ zRauTQm%-guiOec8C+-_ODG&>ATI1e9)H-~qt>66e1;wV@6skt2gOEd_xuQopF=(-8 z%hYUL!@9;Nkk7cVb2Cen-uo~Au0>cQ8qR$cpNGr_26r#x?0)lNB6uiUF^{$Iq3TR$ z#MmFJy7?(~>xA(5&PS(2VB?sqW$p&9Dt)|cYef7=6l=}Gu3F9&+z*Ysbg2dH6mrTb zRJ?xpGAGB=OKn$!Hvs@g_6sCX5kyfTMD$BI<~2ox%i(Nk0-gPd|IW4vPtlkC9b9WXt~VcDiHS{e&hF;=|C;b+e)hal(Cku3d?BYN zVV5CnSv%fy_-0jPr1U;2KcONLhf4D1;XSL3Ulvc9or>%F@2A9{Qvv4WYlM!#1z3#T z3q!=Zl-Yt;07MrKWzzW#-4;7OHAm7wF4`Ab-j%3&Gtmw@-R9_90-k6#Ofx)Ivf&J@ z8o#6f8{?6`N;4*-Kcd8YsP*H85fk7X(2gVrI}Y_4uWf3$K<&1xxcC` zMmTh(9?7u;3n~n93=*sfm$v+!2uPS6i>ZOton&WtkZLzg0yu> z>Yt^G9|e-khSflJ-0lvC!h?IVp?b(*)iT4?`9O@eW0EzgWBn)WwhayvKD*Te@<%T= zWQZO%KScdAkl}yl4+~JIa%C13D)nR^Dx8%Y+I2?Hv`iTPAs0hcS73m`#fq5$086`rAm0 zBJz4*Y2YOYTv-u!`%po-s*qTfR!HPXx&}&uho{#X&GH~HfZ)rTbks_nPRt93qj^&8n9bLlT=?+a7d>xeL)uO(IqaM%EWV<6dKew4=LDbIy(Sk>|bFE_8e*9xv)@3Ln3UUPC+4 zMlpr3DGKhYgFx0_MpPethl}#{{bCn~taB7p>phw z(91Cx*86nJ%;UCKj&{2B+{wM;<%YCdCA8aDBm`+TCud301!OFNE#sRUznS2c)bhr8 z^~$GZ$!@mk=C@a;cUT8l+a)4JQrd%n2{yH`T}o}E5pW4%;T|i{pl}9=uCBu@JcgrG zfNSJUL5D8%Vn{3NXp`AIb3zOidEbxAKzYR#A7leg2WEVWmnt=O0*@{%)R(qQs0n9h zND|+F5(%38N?kmaoA$}~V|-1~8x;4o!`I!j8WGO&&|#s9{y@<&03Mv)Y3AQ8*s-6c z{AnJ&1av>ViEO4+V*2(PTEdS5SrM~Wl(a1^x)e9;@sY91!#ji+Qbz@?&hIQizutDdh{1QJBT9508^m|CkJ6co5 zaNNEuysb0c4wt$HNv%fW?8S2Z>5>_c6`|bo;tn}&a}>^Vr>0V`q(7eS1RP7k>nJH< zRHG~&!xt~p>%&0ejk!>g*WzaxfyZx<8u6dq+G9s2Av?-Hd}>50Wp_fd8s4wB_1MBP z>y6_O)RhvKy$~2Klwvj@I7z)>(Oh)3xhnmm1f-81BG&g~ttWAuG@J3{@}3cFi8Or| zi0PK3fCv`nXSDq! zN8!RXrQ?zycrH2RmqRp=W5ivvw~uw!XsaM_?900J8J7QEOG4kgw}ZD;TE_BWc%O_k z8W%&hgu*J2N22{?!aur=m=Iw010%+!Rb~V`ZOVk2lJ|+NYs#JFX8D78IC}=c@JA&% zpEgOOdJpO>2|88<#x+{DMWpE4YHiprSmVZJ7tB1^x~KE>q6 zGWkK$d+aHV;sH!J6+uqWO7o)AApIXVm0`_lT25yZEc3fG9WTTW(abDb7!w3%wk0pu zw}G&a?Z^=ZreDJZsCjeB*tCW29cza-jGlzd-qbV%Yw0xHpNbR7Si`= zYeYLnhg(i-%Vc^nw=R#1#CRenJm!T9FmnIQ$0W(PSvz^gg?3dNtI(q(`C;vfH`R(v z^wbM-Qb}6IOBq(Ypcyihga_?#lMY$sWsAat*`(5$>tg%S)ZC1lqDc8<58WK%H=^xb zGs)ZqJ*roL??WqRKjOmMx83)Wu9R*=&Qi3*mP(`ksA`sqr2_5D@JX|m>$w0-o>m>H z=fyoA+D$aM8ggi|$*u>ul+U?G&TtyLS$H97fYx$a@TIvNsA3>N)qb`can5%5yPZrF zo^yWuc;H#0l)6Ckq^F=+I#IDs<(?u`uQ)&~(m;uBN)>z0gWX)C*vtVoOHOI!RGZ`9konF6g_*FCv8?^q;R>5wwBOeQ@*LOW<*-u(B zK`WDy){Hjk>sI5Wd+;zce00mBrOS&yIA8oF-RO4hhVPw0LyHo4>`!`g>+P4Ke8*nW zZFquYW990|dU*a9($0M1<+J-%xy2XD5;i45W}v3JvW=9n_NOBAx^lAtAOJfy-}&85o&W)fw2~ZjD`byio5M3?oXt+iUd7j4T991YWe;y8 zny8FHboH8}QKfNZdVDefo=wti_r{VA=G)%Mlj?;MnCa(39Q$~Uc1^W8%l@YTU^v9%NwBT=YszUre zVY>UF#uxJ3d_*$lP@Uk#UhYoH`#Uin=Ua@5c)8|(-kOJaj>hIq%VA`V$DN$=0W32J zTswx30)tMXHJ(4@s7pi9o*iX|;qyY2%Oxvx@nm96_RQ*2=z3QC($XhmF7O-dwopBk zPzqDU;<@xi{RzZPgYYG7U?x+jW$W}_=vf&i(dM1|jAda-|=%>8aIPCMzvM!`+x^UFVJn=wJg(d1y_(_8jS1q zyeI9x=uVD_2IBclLcr)j*OwRTMlvxDO>z5nl+r_xDg>RPMMe(#K(VF1((xSCex#zP zWYu5cLPNjJ=s^2O2u$6uPVn}_!h@@O4?_v158Jn*5wYkE%;k*kqq2n`F2!e)U-fZT z!7Dxs-awr#aI`eLN4q!jnJOZ08uY14G~M`Szf5G`jr-c$ne6cn$#Ap!QS;5D5H!G4{F|v&vmyWWB6iLoAvLF1rjr zCjz~Ov#o%?prAQ$F<&?JpDAD}>sQx$8%~4g>1&e{W4o@1 z(;G*YAG$dc@xQM=>W4i%?>OQ=Hx?=KEpRi)2a2E(ulI<+2B@_|=N#HE3^i>FW3n&( z?9#ZR%%8UjRm(~76I;qVQ8mBDu5SK3Dd|I_4iZ8cvyv{l1AT)f&N`D*Wbur@{;9PM zp#ZHLRyu^WCi_Jc2Aw*4cJ=-DC{*8^70?ZQFt)gWp~>$C-#uvL1{AlWAFWqhdv!6E z-k8US)f=h`^Fk2M*-Ibp+g~xoN2IHD#@cW@w44{?uoV&wPuxQ)VPd>YS2GDB5=&9| zzo(Q(%x@~&lcxW?oI`nOmqzx{wRmsJ9Gtr<`Y#QM!d(3Vlu|c^TURafZ*%(J%@=Rr zK_B8Tv)U13F@o|Itq*brXt(F9zCXO|jl!hc&-5=)+b zqp~D~AElpBQj*M|zr)-)&)+tci>59U2!xdnXUYJ0Z;PHl253ZF0u;P5FSvg>t=1q! z1Nlv6=@XV84vhOG2Gn-rHk`ey)aCjA68w=4?G*yL)#+I%j=C+v4>*tZ6>0pZwHjLH zt7mia7q9eH6rg4KN`La^h2)97(pITCa**gjSJA}wLNJ=9jio-}EA%Bx*XqN}Ksbc* zm)9?gBP_HSPi=qRhUjx@6# zCS7t>4A2)cH1ap0)A+1U4E+;cO}YbLKd0WYgf8V03BL8_>*G|1x?hq{e1F;Eau00* zoOLkf<#cG_j?j%qhNfjU**_PTzIqtab?x|Z^2hj5>lo+lFWV1mrkE{`SMv!D>VVr; zWIe|Yab7#QD*w@lgT6qZ?mVL)6Nm1NEYgf^V$Y8Q4IaI{hyPG+c8vM%EzYCTX(bJi zWuciRE89{T^mmTU4ytn0GxEre4d*}O0(aLd;^<75_TV<-yV;K(6|p|fDeU}yOwC(e z*u+ap?mz#k;PmS0MebO_@LXR*LBx^DaawrtK>dZyW&2xXE86T=@b=G*x97+nA-dz4 zKpuyb)J_#yD>6G;d(QAm(iOX50LC>j=DRzgafqBMrEW`{3M}Foe8Ug}8#v6Y2VieL zGW*7M_ar1@+k1zMMyPniD%3SGWOQ`s4fj^9)BOOnH!*f8;@y9>L)?gr1!Vb##h?N= zl00vzlhvY3on!(mZ*gL^ZTS14-znc|HH50R+3p?OosaS2Pf&oWL4kL^r zX&#J7kmtdR!FxoFkO?W%^ld9+^lhaLqv~u*88yb+rn8Z8AzND4iRwFf?!lciEyuF$ z&`}G^SNAQSo*R`&zT8ZlTatAR{qL#cxwK~e%4aByN`10fkgMz98EoA55}?=`lc_Xp ziK6#yeT%e+*HxM`s<9WSd|pFhBG+(-NQwD59(qMDBLs~03zF<3Bt*LOlp8!vRv?=m z9yRB$THvML!6$6#hpFk9qr$oLi7xqyY$Lq1`tCEALP<)z_E9lo#WfPKdqO{Vzfd(> z_k}Dt>dW|Ord`1nC5{<~ zP)kNR2%Gqq1{d2 zR^HH+p8xabssff<7ZhTiHZtQoN!*Ca4^rxN!q{Nh)U3-mxqB8 zy{ShIrcYHfGjcFRez37*t4X90d0PB4W*$Dwb%m(HAqM2T&C`Lyqs`prBRB;OzV-$_ zK~Q(AAGH$ad$e?@&-B0eW^Kc17_V;U2uS3tKycSvIaq`H%&QI3TWRxxybcn?ICK4U z(LR4y_LIGmL{jJfgs+YhP@rW!U}^!j@lY+V$Hrmg5i{9MLzH_rtLRoM)>(HQZ(DvS zaL6+WYV{o*yREPv)gAk^rX-8+pfaOW?f&W3dt8?y_XVi5@1X<4#LV6FQ#Sy-jL}GzF|NGfQ;Z7a>6U27<1GW8Do1-MMUQ> zvOk@eBlsGgC{RZKDZ)qnWJNU*yzUQ)^LftS`v?$zfKfY769b#NXuG+=xg%QCR+#vI zu)T9i9%<(kBr3M&=uCt~MerD(uVX01MaDOVK8rgmSrV4a1vn`vjOaD;zo37dqF2f)bBIt$)hy>vqtWa+bc z^ksbGr4Y3KLvopjR|qfs;2u2`DIYmo*k>&dTzX{97vzLT*asLx8lL|% z`8Zj`zH!Ezbc^Ae*W;pD_9pzpp1m!4KSQmqa~NXv(lyCefAzZsByrsqdmnk8-}3ER z6(x}}E*QpT@`j?f(9JZC_;Xi;r>^3LD_v%FJ_2ZaLLakl{##@*ux@=a{_Fhhn`_m9 zcbOeC`xl{kx0$SP!V{&6n;~d_TXp|pk(fc&H{z-CmInsMr}JY0ymosW^CdSt+32P! zEVLzJ9F!46x@8RaR)p(BC<&EcUZHWco|rG^5jPv`k*`{cqK7tF5D1k_HBl#dfr4Qk|l*Rk!kSmDLe$Bx$g z5;3v3c3Lbvp#`a$b?{7(?A;~qqxEVF9kwCGe5Z%6xV0iwBbP?3aaZuBzKyr5Q$5)t^`u* zL;GTpVu7zq&M4oe*)1d|+Su*rJExGIRq`(_%~snbqkxpZXE{QXIWeDy3Sd}DA^ZDF znCuA>G^iwySA0oSDuezu^!?AKjVg&x2=5avBY*xxZOY?9jI!bO=7*s4ZvgWcjN?Fk zIL-!;6aY8BxjcO(cquxVM}}@yRNT9h0+vc(!Zr z`LTxTn*X$%2oW0hD_L>9N~hPdi0oA_W~`Gc2rs0U$fmv#4B-~OEWBi;KAbfE(E}Vv z<1b{!2@Cv1E%TS*R(kfQ8=xN_60dpns=90oHaT&IAp@TGEOmnEl3;&-boUJ-JybGs zOt{DNEt4fHM8%?~7sFu?O_-`YZfZ2Ag(QR-CCRUp*V#t)s!P_PH^ygQ1@gfm&&50@ z_zN1bW5uuydCU#ZbzASvWGw~B;@cP?TB^rjVpx^FdS?3V(T=(`h(VZdY`VRP>g083 z?RZt^v>##lh0w%R1ax{63WLM&w}U7_WJ7^-*emRc;K-gG?p_Pbq`z}jiAN>Q3Ve;T z9fuR>htVvz?@GqwH^?CvI7sfz9+=^r5tOek>0vR!UpWpxVJfJZg0l^}m^@`R!1X1| zqnPFVGd9vP#0Np^lR^v|&!d_nOz*^BL@qLZ^wo*~Y!nlt- z?DfjE#vIds&R%m;FAq1n);)4^&&RJuLbPpbiVkF+HR<(I2S3M9Y4SYLu-OwN6QO

YiU;4fc-komw{kVPX{xN@;kECfM`+!D=7eaSFnPSM{i^t(fz2!y9L zNlIQ-T`shlu|B7W#UA(D!@9RGv#Bn;i^FvizuronOgsC`L)g~em^VXhratLw>k6FM zhcXrE?q#h;r5|pk*0~EU+a>+%52dhQ&U9Nc;o)@~Ls5E`C>BFU`>`j+&a*(IO!|$w z?ja$~I&%wl8NCfD0-$X<14K9I-wefUM0!4g3PNNFnSb^JN8iU#=AolTddNhSza=yS zRxkSY&-84s5C3jE#_nUXdxrFf9X!m!3Z^zGE*NV%sMRmOu<$#&fHh_r!dEE1@ml8$ zsjuHhaOXXNl9j=0-y7NO^dE)_6FQ!b?H)Q+`j$xtx?qOU4Kp|O{wZJA5soYUW`#3< zc-ueIAZFAB0gFD2z=-7js~VGf3=XubcmG6i6MgHxgS*c_x#W>rWn96l=l>*IZ$6kP zS$Cx6m{0Iw4!lqQ5rXEoBgf4!T=(R^m8Oqv=nHiM6jb8K1UyI)R$ek3AM0DGW4rd( zN(L;9%v0zk8&^|^1wqtNLy70go=@g6J5>WLxXV>c1a(`smPCX2*{sOBeb1Y&luocg z+PZRi-&ny3#KAC!i0`b?lI=N3`AUf_aFIw_O9pW?yL!Q3hD>@0Y-M6K?z z9gj%4mnN#!o90M=(=aFOskd!}LQyZbpJSAJh^*5WnJqRD8;7MFzI^~f_&LnUfIxKZ zHxaQ#d0Uk4Ka1guSCr}b`*(P+^~YMK3Oxh@@Sq7DlKS;0m{-3$V$EV6Ph6YZ3E|6# z%jiY%+({yQf=gP~@!z|*uF8$5fx2I2NmWJ1$ww-}_bA6_hPQL;Hx)kj*N{7+9!W9@ z!X(g>sMG86P_DXM5$`gDp$2XxDoWu_@Jqs+3_wApL`KoX$E<-biSOG)?4bYqqr40;Kpn5p{>pxNUb>ctlP!bDyBV^zEe39qG)~=trA9Z+qP}(ol zsrRXL*0_EK(!S7FqyxJ__dn45gZDq5KlnQSmRaWx3`i`DYX(A_zwBaMc1MGe(ak6Q zbe37F)2K?73du-5|Hxc_M5pA%WQgj2?UYK8PYmlvI3kqo z4tr!6BV0&XS*Az7H+Fi4*3^XAtCXV9>z}!v^+>HhWhZj-Zcl?npF6Lb%)Op!8pEUN2jG zpvUh-5d^MER%Di@OCj;Lfa#~`Nw44;CcvUgXnG|R2`MYu;FF+W3bkS9a29DzSQvT) zX4eD)@s?x5sKs&N_q7Xe#YT!D*87}gV}SgL;aRTb&XMD#-`g^=jv>+GNTgkGPxi3U z*7~r^cD7yO%Z6Jv&07xK7utq-|nuGs~fg~MqY!Q5Uz?CjZ=2N2$h%QGk`jtpfY z4wzo7_suA^sSK5z9v8fdkEJe@L(f?b|HS$K+<9(`F7;UrXH+7)UR;Jays=Qo>oRoL zoezEj(iwCiMK2wJv#-Jy6VX#__GU@vT;Q+_PYRAfrcU3Im{e>9}$GFPhb4LkL$0R2!4Ltg#G%d?iD z-5=2ax2L)$GFzP&Ypg;VTLX#7sCM>OG(WZWa=WijrdF_?n_l#u*ymy2K6ujrU(|Ow z`VX$i2`||HCB>j37*(nye~g3QHwV(yjcJb5O>ySDL=mcNlJx3WD%1x--d=7ZuvM}L z_y&u|>+vepDQeu%#PBK1a!P`Ku&jZzo=A%tVj~oPpH;NAp93j^t)ktn{nBKHVrvf@ z_eZ?sQ#E&f^uqX&wW~@8o%IfR2gcUH-?Y|iy7b2GzN%j7#b2C zW&?&q6DKEqHrVRwyxLG%k9YCO44`_l4}CqL9DLIa^jQNG<>ZNEWirtDyYykc4`d1( zTTT9PHg=pHyBlpkD-X>c?boYIvGWKvMUP$iq>yxg6n(6k7GhE`90O!!Lr$dZPOfyr zDmX+L1`$SzhDQ*k9GIpBqMlPuFgKA|%8Cv8X)+W+EkNzXgw?yS+3Tir%Gi)+_Okcx z`mWepp{T2q*a^X~F0(>k^2;N(Pv*+|>hd1WNIzY$pQlw`$r7`%v1axsGKau~l6YuZ zZh^y|MesfJ#x^&}`)cV0d1ju%nji&JXI+OgLsbdO(bPS9T8~h~Ci*6~sgla3JJM5( z!6ou33=rKh%B8@vxzlZpQ2u$q%>#vjNKnJWj{hj}d*f>y`SLn2^q}wVTfYeXc^vYD z`p;kcF-h!cvrLm9M%3lzkeproHV(<3{iD=xn zlw4F&Iw}Zyt1c7i$cyZg?$iVcLdR29qN+&rU;OMoKF-Ccha049DPn&`?;x5})pqgRG&o#5{bQ2z9^^R^0nY(*#%e>v7q9+fx z4fCf*8$hvdYc}d$NqkRRYsCE={@^-!=vseqSK1?k0~Y+>q|2J226m3fux8&M!a@=P zD8izZE?gs3A>BsFPSIZ=%3K>9m{e(C;Z#%~-e0+Ek&I-Aul;s0Wzb3UoTmE$<=}ba z46M^vvgHiYH9F{huus9t=T~Zave3shDFmzV#uJYp7z{_qza~|A>y9dn|Tj^XRiJ{Wp8ktXQI=yD!VBCTpKbDdtGuA;xJ+0RyFsEk8 z`W^a-F2LPb_cQ+Net~DsDr2$XbL62MbLVRhXZ)Da6gdD*v|aWqM!TeWQvBtqrfKUx ziua!vG(Swc@ETj%PZ%m+ncIA4b+N^tO=0LxJG`0$>*i*f0IBQah956|;i!X-DZOui z#wj;R@=22kh-_OM)vnHWtY^F2k&oG2z6qh#_t2K|kIS&YLX*EuSB$kKyV z$K$>o2X(`ZHI81M6RsTR&1^h^D~v0RVWmfCmJ@j?d;Yf}0ubhT?;UpKpI0|NvZQkw z3bzgHhoNMiQadqmJv^3`XyBx67N^*} z?-Jf2x~X0QXJ&@P092Xqm%3(*{GIYnKN}+NFKuaUqkGf4ckce@!7dqj-COhFFw1=z8 z_p{e6_W<_xx+Wtc%s0O`Il<3tv^_3TivJgp>r4S+i0?|L~ z^{BZe7dSM28g+g7bDhpsc^j%a$?Ll%=4f`@jc_|Hb|o9^K%v1_@J?Q_l*J4E_{_1p zZy;-cK)qMSbry-!eEBY0- z5d+Dzy6PO7z-~RON-9)BmbazU(Dp?2qoT1$0y%j;+SZuq5>f33)J5ZN*9kD=_Rm3+ zg4t2tVXaMzr|}CLpQrJmWW7D61U{41EzeP_pcUBbdOHXXoz;}_Yd-|9H3p0XAFM=2 z_a&v1%bE$T9XDvNhB5eR=5mLK+_tJNqdDkzfy>o+WR-NY{_$LQ_S@lr4l823b z)_h^@Ga@H@u91Euuw7v-_~K-t-?4Hf$mrS!p594MpUW+;fb2^kzDXs57o1e9bZKV? zBuW#*vfe3Lq_tcHA<%Uci7Pcygj$BYC2lY;ujH0fw~72F<@N4rznKgW{iD}2=ewF9 zP)osefuo=a;%neW6(6X4wgS<#PKb&i+WKuF4}L@J(Y>@#>e2*CR|;9aI$%^pLZT((VPh|Y3&ZF z1sqI_hZ}zpk{UqLG0#5`B+$2!Q}lW3cG$rY$YtQ-wJBW}q_bNCLVn;ycScAD4sdhk zfh_2qvE9Z?eKa2x4a?xvx%GIXhaF!^yw3u*xu;R)C=zU#z(ml!ui(eXi5hDPfXk@;k=F>*rRfzl-GaL!g7|n zEoL68jXM6WhM$YH*-TpGvajm_Kd1^ zeObrbZJ{fKEi}|YI=g)$g7=j0(_12LHfv;%h22r^TL4cUMUHF@B`d7G+&7i+`YRtpGdSTl2&ZWx)Wo&KA z{P*JWf!V^sV??k3Urs z6F@JANb!3;d%y02&sMtt`!!YxbM3dDuN~aPBmxARsWCz%xRM7fcyK+FJu9VX5p$n% zqg2};5{Rs-TFvxg?)n`*6F4hS1VJuM7dQ&XeMzkh|MX9y?6*4d2iTDJ|l{f8%;mbQcCwORP_u9t(OX0WA=DAw++XnCa2n|yn}eRz#;d0yaW@0a<$ zjy#eg?^yEW%3!^Ch+%d@kS*Y`W6WLZX$$ZYp=hZ$rGtpzc3Nd%l3!Oby_nkwCTwy} zFtYe8n`2A#!;mh-P1D z8_Eu>t67H@jV4<9U6ndcu60tLvg<|d_NpBG9Mr9e*}95w7ZS3cU_wyk$?PpRCx8;g ztTKoSwipO(sB6)PxMw)y6eq|=wVL6Jv-R8wVUNR5v;s=I!34h|b*f7T$JClkuhCz! zb>T}#{O9rL42fKOwRki8?&Bnj9*LO!=)I9A%Nu}ixL4lF!M@8!o?Xrlcd%|B+Bjyf zOqZ%OU6YC=4idvtQ5oLiR+=lxBPB6IouA^muG~pxoVI%_5cC+7@5tLsNSM=veu{+J z0gIBqH-`24(e02mx>Uw>>27_fg%xK3bnS4*x~2SZx5w+Y0z{j8H~4w( z{f5&hUvT&}Ip-tZhVol)OARN26dso9^L;I>A+5v4Cr{2iPUhwf6{C|R?A|MkTy@b4 zyK(2Z*QmO)eoSyk;dVb@!4zt4wm#fGXB-Mal7G`;b>+mf4zcq}d~mMN3BK{4!NtP+ ze7q<JPa*j`m7XMIzh+dsL=rRaL%1!tjEzpchEzI)N#Q&-fRV^b`{=La~_xPOp9$`;8 zImMa!(Y8*V2nDyT8owmWtCFAC#h5H8{PtEra>>8Kg+^O*l97YqCzqVGi4<%Zu_|gK zV(-#;GsXBc?8{V2Z}nV9yE#?&s0Mdw!>-u~@#ADc`Z(Jg>qV%_t&Wk!!MN#=N7 z?26f_+?Pl!uQWlDKy|MbIJbJ)Yu;TAJFn))I)x@SEot>8DOhr_M~ZM&Gb!Pqx1h{- zxB_?}mlQJ#Mx=zt%w^CYaLJTe11smncZ8VEr80~|KKosJXy~li+KBk)7TWE7uWLsc zi#e+v$E&Y-KDzR7P4cc|1?_<|(EVPhw*`xoBr%4rD7IN-({`s+AL8F}c-+01MkOkd z_KtFe>Nw`llO>t29U0x6!|qp{EfVW;aE}Q$ibcob-FR-S^XKD)9?60Hc#$ZRDhyOY=zB;)BTGOrn{&8s8>`I-t|JnIFyXWD- zs3>#mZtw$5@-ybjRi|J8=&uP3)pEar>WOp z*cwhWkAB47;(KzC6x}Z?MpL4num^x!Cch6R;#nhv3vqG9I1gUBU#)NSUj=I zkO{(S3ku!z>Hzn=D#$|ika2hf(>RSJQiQ@ct>mOy0^!N}k~x%KABxFXY$W>Akoqi4 zXI5bZArO)7>)!9{SZ)7U4q{dMsX~FR74LacylGCIJmg`L)9cgEyA}j%|7SUJrP>+{ zWb?L&bT(s0u2xPJn$TG-8=K5YhoAr#k?l5Pg@H^aZ`v?)y?4<(=mET#6c%o{MoAC` z0aAdlpzGaZUc?ya#?H1-rcfLA$PP#mzz1r-g*8Fg{sDn}tE40KZrr<@nht&`e6cnz zIHgtd*=Xczeu9SUI*S{>OG7xsm^x9W)dZ_&L!Y9(2;9WRc{MuE$wyN}rgg+3)jdpg zIc``s$key+Y%jqQeI}$mk~Z|v%S++OfldRyAtNPU5X!QEZl_?F97`%0KkMwaxW6={ z`B*RlAzd+bK&N0?A*>yIYrr<-SoHbF=(GQ=DP=cR_H{d7|B~}3;!D!(k?8Y~rzr#4 zE?uMm&;1v_Kwtac`LH^cri}Sd-ZgsrR^fX!_M%m%MQN|JG%N97e5p#sPH;s9d7T<(xX8<`BpZ-6&6)E%uR!?dQ zW+kS|8se|DYXQC!TEZC0CU}xP{Oym8y7Gt4J%ZN|$i4;h)SdU^j|W76n~Z@_e#AfP z5i@D(Q8{x=NfQEV$4SUUgW>jroO+~Gf8RZ{pjdXum)sWoH^FI#Iehd(KMC>HQXr+7 z06TiZZRXpI(zoe1?Rkj;j|moIv}SEJeBIh2=Zv&3k5P-$AJQbaak^2kh1j)Pi5~BHOBh*%~?17y~z6YLCOAkqcL{fzg{G1)db8= zFg{-M^IcPedWY`S$>&tqgUd$~IL;11MmfIiHXVEvkZnwTL{>Tn;aU4w5 z^k{e$kGKI1dY+o6=RMRm-b2@otxW7bPQp|9`ofxLPx_(;z{6iJ?M)2Tcj0Mhc#&{r ziAlcoWuhMeeK8{gTOP^NwDZ4x(apyh9ZTz-viTMqdnvts{BNoRs`-i)!*t|r)omuh z)Bi8NVR|ttJFgP1Pij2o>-Y4;+ zpiIFU>Rd*4(Qhi}pZq|O3)Tyci`Ji!8PdlH7(R5Y`_F=SsJ~|W-GcliNvqom&g5hD zBBFUW|4_wpwo$Ful~eJA2}w+W?yS1Mn>tMrBt=2vlR~HJxf^%8HzlFNs&Q<(369Ll zYCJ27%J=FTxo*;O;?&3}TUjGAzH9)0P}89rK5c&w?mHiH`!aT5OX=CD>Z)d=1w05U zTi~zub+sUsPq{I8VW}1+? z;@9Fmi3TLu&E1U$eXnKk%|ZrL1eu#pEf4kal+QYi1>vPj|5y6OOO}P#&*3xof_Agj zxod)}^2;XvA*Y^Rid}OL6JW z7o)FmN7zEE&-$FT<>0S#P%67@iTMD4o=IC$;jnZ+Gk_jxq11MEW*3N;)pb`M;AM@e zj&QKv?qS?H(?#FYVAE2HN`XjqH`ZL27aEg#;gwITjv=H=wggOtS~k0`cq}@asHc@M zamXjRP(LU*qF8G|<;tQ6T0}{X8<}X)=r@5lmpL`{8+RX!#-HI$DwG#iBM?N|_cOLU zfjtJYCKbtyi<=TL|19G8+Myz}r>ZPr!L8_d^DzP23_tjShIA=2 zAPFn55Zay`9=DJ|e?bDaFE8{cPg19^)Oot?!>2XkCxp7fAU@-B=ONB!@FSXw=m?D(mA+Pk(t>NeX?p`BXM zA?g*29VRq~wPd=Im|~{ncPS4dp3@SrSimH4Qm%OHktBe1h;eRWoM@ud|h+F`srhZ=k;yrFQF&Nq0GN~!Tb8hpq zfwb((MRNo8TX#IybdTKVccj(rCU3^4dp|$CH)u}UJ^#)dQ+m3!$yi&v2;Vg+-;feT z%IuqhaJ-jN1q8bh_>*>ttDI@kc|><|#q;g!S7VIgK!!9eXaiJk&xMmxEV2TGJ6dGQ zN|bR7`rEa99rmm`G)g%k4-*KG5A|Uijs}}?&qaD&*+R6Vi_B5hn;W?ADhOH~e;=g3 z&BBCxwYLJtNDF#87T*V^Z`GI6bieEFnuS2lEZ;(*oBcobvTnN)QE$;XO_r@@(x!w_ zT70mBa!*RH4_kNqPzmB9fwLe9kgP=6G*Q%|8eNdGJ#1EZ$pU6MfeudqYBBI*`ijm< zT}#p_nd(Nke8NQvWR z;Uzj()aEpX?w7rDUy?lqi>6eYs=dvCdt;;_*j&&owaW1*L4!6+rcAsun4Sv6zby zvz)SBvm#g^Ar!ZMc6WWyaNG#}ocS6ff5?t>kp5fJ0c!Sf^bNG0L~r*!ulrZ>O`gTu z(AZ>DPiI3vr5o(A{(}z!&CNt<&VjQ!%TOKhAhp;u?50UF%s%c@GA_rivBRK_fzWR& zy$st-#QR2GxoAtk-h(LfGWfpLVHI+gqa&d2`@^^;u?raV2ch+Vv>5m-cm*a9LLyOL zx!lyfYhCA0JtBjO+a@_S)I|D1TTy5i`IT*UrUvWV1r2XHXZ`rcXerQdk)l&mqH&{f zYB%wx4A=0qSMba8@qu9It^Ue8wLQxwfSn(p(;~)Iv8z|3O`LZXt73?)SBM_=9wqlC zz<0e^v;M$vSrW69T&7Y2P8(|eY3TZ{@0GfNM}>KJAROA~-sF6+ljrdYNB`U}4Z_!! zmv1n}#5YS9O;~YV;48CCxOiit_n`6)H+p-JG1@>5e7`m!Vy}>+`_YF;4u!xy0Uuvz=u6;MTqqqVQ7cM99+IrWh(a z6vn*KP6rMzm;s7*s)N@dTrf;SiaylxFh?kCD<7)O1Tg=N7u%ezcnLK+0C{K&kO@%{ zz4Bjs?7&!&i2N)m+B9t3B+zOUBW9l^WIeyku1cgj37OA}?ABRxo4PCe`KQ0`_i>); zvD846yqR;HZ2&tPh2Hc{O3B!w5ekvarl6Ptx0a$N2BNodH|v1{$!QA1FW#E4vXZcr zRJA?>QTM8>EJu9MRPZRqKKXPI(Gtl^+2fJ90GlWe7dr{+og7M68zGl#Dt6jO5K=PR0G zZcem2GDj(+tAj?gDVQ4!ch}1az9?fAcxJy^=y+6v7&2K`5-cWnb<6gkoMu#LZAAZr3DUZsVgK}SlHx3!aRnL_>PcD5JdnG?N2>?__r zgBAIO8S$evtFi}^p=P3MumzzUg%Fj9EtsE0Aw5!z`Xotxs-cewKjgjt;0nM4;(tiVx{aQ(bx`@E3q^9wN#C1^zdcUmqu}PTByLHBw=g&hAX?7 zhsqkktl}F4B3;@04`^r?Wf9OI-qF8&aqeb4yi1vgh7B(L)W;;0&ud*CZHF!l*K!Wz zoUnmdRRc87(*SOj{UAqNtK0$+3L(xverU^6Ij_RFt5+1wM{9rKVEa;=+;KvsrOX^1 z5H{`_Y@TU!AVN%0OL4^=GEI+kk$u=64Ly{4gptjQZg1>f+DAY$Z#&xi}m3!Zs)5ZlA>nhEydoy zK0Aj@!h1SC<1JpiV^{2UE_$~y@Qtl}YHgx@{p*sAy1rX7N#$$5&8Y)2{MpJBp0nhL z8*UcVdjN}foF7O|#dXJDshC_^t(;>;in?1ySQY7ZandVFHP9JOpU5Ds)8%gKL4U79 zmO}Qqn@Z`=2#pBui3ZGNz6?_-yuj86#B%DDpZ2{J1T0I>1-wq_WfpIb`LHk=1zT9^ znDq5JmiY5|@bwYy8-n>eN=h%TOx;YjG~W@nzdx#wupoKF9XRp)9Xr8oU6f8_MTd+| zT?3#ygv1Tl6M8FoOBcs(aypSlBBjg|Y6nu+<8DJA5vcJgWiFvcnn#PP1@K1~#KJJ4r0ktdA(fLrB+P*Vu0m4~o zYwOHA)cFFRm2EZKH7b0^igjs3M0pBI;xPV7wN17$J)wDy1abW-1$MuRpGjZpF}7US z&Bcx5RuU0&?@4aK?`UcHHy)$6f(Ewxb)kqHl^m7?A4|g=H;u1Qi+^N z?DWB<3G%^;^{4iv4;PR19fiWw<)@EMfm#~LWPAw(%)IW$8Q?o-4D)3w{$)ilYw*=~ zP`vNMgh+Toy913y4EomaZ9;DtDJ0I+J}xktLT_M47P^#V1~l9tosnbN@%ecNQ8UXqU? z#5{(8eWy@T7M)*CH+0|{e{hyt63;BB4Y0p+3Rsx(GQ3o%>jlL;YqFE<-W0vq<8DOZ zoltl5cf;kDT5QZ!{@}`2>U3dXZJ&3{s=8?(yGNBlO_S+C%(+E(aCQykwOq6hknruw zn(!DCVBW1!Dt+kz>=kl@Jv!+u=*oS&z%4=dNg|ODQhGVwhx|H1LEETT5Y377&YPnz zna_XPI0W2H?E-UB7@a^GWXjsJUMF=E0+c*u~AGdGPfg{pW8U5@0XPYjIfbk7Xa*r4)% zz3isMBNM$Jh(FsV?q*c9<8VTHR)Q2>Mz-Cj3bOV748AGJsnG8LXKeI=UK6OVw%Aj} z2hHK8i|hb5xcCo(I&|?-%NvS&X2;%ZX5x5DIid_tmrW>Ud-3`wf6E4D_xm2eE%=Ys z$yd^V?owmA$7W9vUMn&a;a!%#nrYQIPK3aj!;}*jDO}n30;$`|ruyxKo>9>rq3Lo) zx;cBUgn49>c_pfK&gggs{p}s58lm?0J*3(1JTgZxY4Cv~r*9zw6x8oea9-rmIp}cm z&k@f8bAtb8Fc6P**KB!Mzd>QmZ;72_jb`7z&6gVa@Z)T<(2Fe|tB{ZC2j2%B_4!j# zt%p6lKdc-7x*bwqyfLIAHYqRw8#mV6)-PUp;=F?_;~SZ)b26W zVeM*`xSuyV{a1QMjq^UJ)dSK7NSqXg>Jw(4KkIw_#PC+)%qYV3P)EGsX(_kGycr|g zmd_8aOyyB4fMg(!@SwARR=TaHhH9u^ZX+3)R9lW-KhZ82kI0kGpytMPdmi7u$XM0F zXuYsMp9*>Hb#2@_JQKk|OAUB5j*}mB_U0(z=fK}GZ*g=@@?GSrC-@LS$_kqkg8xs^ znfS%<|8e}YGut*@c6MvG(qU$Hb_=0HRHA9O2vL?0Qc5a?ZHZjjj%~V6=}=KZ5^|HU z&NjrN+!Bf$UvlIOzxn+E^LWf-WPFe2mEf82 zR5x##!*EOd)Yxey<4)|J@fnJ2lJuci(Lva7QJ8g78(u%M{;LX6@_kW9{?d^p2d>@8 zetyZ<=b8@#F@Zzo<8Z(E9ZGg!@HJ}@N3^$eTzxMB-ob;r6y=AGW#rLEj@9xSHIqW z;FJ(Otj(aKo#}4haOwS0%dTfHR#^a~qZ}T?9;d$qvXJFV8 zS#s2DRptNd8)k)f^h%JiDi@RVFf%h{NOItL2$+EXxZM6{OAA=gk;^vTcMlxnq+Y;$ z9C9Bj?h6J9ulk@a4UM@4PQ{`A88^2qEeE!Vaw$+Om&w~>*i0H6PfRLLh>}u^+&-v@7%l`_kXBm#ZY*A;|}}(m%YZj;+k6|IqNR+T=3- z@Go6cl98r78G^&HDr}~z*xz>%lg@SUB{i*{@g=+3Kj85`?&-2jxOXX)0r=UxGaU6x z`}E7-6g2JmX1-Fpa`+ZEWvb)T`BPpHR#}x5ATGxWY-fw_AYl&M$ozXDogdMu?U9`s zoSViAh%xBHu*eM?F`>oT%W$&jA$kQ7;aMf;x96}QAr9PUz14jN;@ioM%v8?R=)5`j z!5Bt{WU9XjW-v9u87mlE^}Nq41&VD8m4+(ZiMD0x5U21&m)d&Qi9Rn!sn$M1A1W}* z09l)uKxHlb_Fask!Ro+k&|`P@6$e zQxh>vzNmQxSeYrbGX-vhLV1cIQ9d+`0?9&Vd~}BjyJv+n-;L43 znOl<%tUYsZMz7sfM<)$5uCHR#QfFnsgtAo8#1M5+>!%;z0+$zLuj@%4vhc!|I1{3q zpIgZGqo;>Gy2>c>6+EGUqW_uiwYV-HGel`)0V`pRUs!obGJf|sWT&T3t4 zZ5KvxBUc-s>kX)y8MC^10u7fUS)Ku5_7*3Dn#W9o7KOrV2i5PM6uD>zy4u^(ubD2< zy+V=2am*DL6BJ3YwC)ow@{IA?A)F11|`Lw7xUhVR=iZsM*WTZ zq0D!ymY2za`MfAG3$?Ik3AIt2K)EVEQAz~d774p1T63c@adLAq$yFyKumI^yRt`^2 zPIrt0T;s`1AzF6u!vyxYH>||?uv9aF@>sK`h9&C0@@uaG8onWx6p&=|{67VuAJO5FGtH{KDRLwL2Fwe4yp$RRUvXVL|1K`)o| zB*Woi_T-dEbwEMV_}whPft`>X1l!z?h+ChKG6eg8fO>4w7|Uq?h4DQu7;BM) zbGgTq=$%*xUy~N}I{FItf^MRZ4GFWha$XkZ$M&ufU=Kx}W6kP#Ze0=D66 zc;6&w*KM&I{&v4vM7e?-PL#H*qs96btZ?-YA9IH$(cBE6cgcohYn4(qE=ZNxNa~9v zTQ>13WW`&$vZ_m{U{4<_5`LgE@eF84K{GgP4_Nm5YmAF=T#N&fk z6hmBD-dTak$l87~Y|a)JcC;iR0o*KKhRR3}*uwG=>)~_nGbomI8ozZunaWF+0Ejum zRXJrUlpi*M$=fjEV@QC3p$1J&p+h~*D^R!3I?|;i-!CozUpJ;d$ z{FcP@ZNiy814I;cVZ$w+;OV4sC5BhmvLC4T6!7N$_5BqhE zhGCE;mMkFqHOW-#`!y)=_356k|8I&!rI&8SlfeIB)EbM`=Mp?J3zu!ikGg*o;xcCV zfpfXM*LW1!k-QT-`J~$h0n?LN&3H7{XTPFCu*&!UGUNfrU|$~Qbd{(*l4ka@4Kq8` zs+qs)fMJSu{Y0+JIXiU@Z9iUJWl_qZc>fH%mvq(%j&8GKr#`^kHx2|-JU{5Utt4>{ zd1z4pj1C=Hj<)wJM=_vE-oaXLvo_}gdeeiRt}tqISZr0NI!(zia6B2gn1|yEk`&^| z)rWb+8VtWVkuc6#pkQvtX2`sIDnd1Qu41DSj~S2LL;3zI=3Uju?>iefV>Og=-Et$J z1~%ma(c#N(vNwGE_E}wOvS`%U<)Ib6nJ9a2)wri&rmf-W$+maeleHsoAto8lT6AL= z+VW;OCf+q5Jva}H(UL=ki#t*Vhry$n!yuWNo_c-kY#x6gGZ}f#@F4-big{7#Of=Vh z)Yg5zpq~DAf!7LD8y0e-K$^dp^c#JABgUc7fN4s}k47ZBNHPpNG_dAyo>?B0HSZB% zn{&ByKDcF~=t&oK^CqlK<90*ThcAeTLE)~+(WyfGxE(I2W=QmYXYCEgcZp%yf0f%b zB%5i+Bgx5mE1Fg&*UAQmBv&OT7jkj`smzlxKBBl~liuLu5a9UWMIZQnqIEGh?5YL{ z4E3B?n!vqgDs2l!5^r9;vLbZeH*TbKRsvj><*v;8Vf+|s2gomOnrNUwZ!(3b=Ws`6 zG|i1ZL@N40dQ%&?W49IP7Zc_nH@y?Q=wU z2yzdSt-7&*`GYZr#~gx3sYcjbNZM%Ddr&$&W{$y9yAhwxvFa9?T7-;6_oXj=VPv{9 z^{;h+vA6rB4POS){T)T=v<2+_aq=c`VPEmsC-=FH)P*_9TlI%I19?33?zL5lkrt9# zrs2myOa@r5Nh>{&ren-my||G%f+Gyn1tIs;GM%ZOpYpmK!2<(4M|EQrU8SlAJPVay z?ERKc7nGm%Q$3)y1!=!LGH#MPp%@S@=Tb8fB>??ODZJR@?6Wn8=U)r#A!1jK=`Xf@ z!kd#g9|cI0&}1iMk7DAGV3l-|eQ!x+Ag3Xj~JyzimahC zztvk0Y0NpsU+Zu*Z-{99gJom_Z&paH#MFxvkOkN~$EGbv(B&V|Z`k@B{jXL&_UyN6 z5yY^LQi@`|xk6)ziwbHU$Qw!V{CRB<+!3kBukSw`YVt?2kp0yEYqI{_g==wqe#|o5 zevBc0!ps$Mq#DL`h@L5&DmSqQCxh3bZIWT_-#e1 zJ)T`2xd^aE|6WgNxJ?VUw}hV3uKPzsC{ADQANujWY}wm}uMQf18S#VX)$>es+f_Aj{~QrAIq8@FhSlUi(RLpEo2 zO-4@5J=RkaTl5rieEro?W_``DIWn~9=_uo^C;!t1OgpAP$2@kh?_X{={o3vyOJ?S4 zHu!l}7wG@Ey5F~B+96Zx5gCYc=y`ER)9G!q>rcPmANZ*B6Bqkh@%+EK0roM?4_VJY z)|-NiML*CfON5#I@2*RO#vYQ3vfrlDVMnd=UBV7l?O*Z-^c-IH-J{6w=i+!xT}8x& zw2#l0VXUy3c9Au!E!y@Ti z0CwL?W$@fUEelA#JBgUM{L-rXFE-?C7`to+=%7qLr2G?1wdvlpaOItnqc!Ld@jqY|NK$dSyzeM@i{ zYHR?a8v~m8SInTluCqq~s^U#G8ql=ls4K6WU^r8C$`Nxk(Qc(kS}A9*zL92fv3x)k ziXVdq5qA+Kn7Zvn-VWdEVBZZWQ1>n7D;!wg1}kobSEns!&~s`XEyOUn&yiv=U5?WX zC{-jU2s*Iw$pKnx66h{{l0M*J!J#M-%w>JbZ{HTEetW`2`+mHE$Q~OjP0JMIVoqaK z@25|)MQ31?xPM>kr^I_^328jZjiBr#WJM+`ERY?>Ninm7<3)=`R7vBc_ows@s9zHSnU zh*(8&Q^U&X7fCs4u&6H3pwc6A7*_jiVZW23N;$fOhsIr?B)tn zs8aZY=9LJBX3_JXDY$elLd%nKId~J@CT>8=@tU}>2$$#3QP|@v-1gG1g5rJ;>s(&x za*yvE?V0&U!uHHJ9EU64iL^l+1B{OrfGzXJJ;l)wL9b=wyi>s6LvuxsiopC$5l~^N z8n4K{$u5!j^0P#-=|~TyE2EKj9(XJ0W1Qd@Yv|gCNcjd@j5i+PyyovCD+>hIPS|bV zO4Z+Xc!pB3pI1bg=Ws?7P~tj~{F}9@T-k(6msYEtDXzo&0vH-mJd=7Nk1aR8OV=DI#G3J zXu-L|p_j^nx7I)qH4+$Z5d_dHk8{snF&>i3zv=5S)0kj@Wx-kRdOFp*DDnKyzN2{&&A?p$|G0p z8KEcv4%$v5pBSSCwb$4S?E3ci_N)xOM!B(ld#5=|=-nSNw)Hcn=v<=oIw@M9;z&aD zA&%l-VCh16Ccbe_SN~ITxBsE>^%Bj24vo!I)F$L)I@-||1}`9VTMd7wZ^V*PFsgo9 zAnlIqd?02YBe$6ThuH?oHu=Da_-F78X6kyQMBH$!@IufuuNkL=3?{PwZ2NS9-_)tE z)i@PO(1(=DUKKuFp2P}9h<}2AL$jvN^O9PP&U*6H-m5&C49x6i9t3vHH2;w3uUcA{En z?rk@vd5Y3iPAO3NWB@Qiirv%Vwo|_>LJN+OyyPvLp@g?ybstynXm@U7D<<}lMZMI7 zW!0W6gZ$>_H!|0G;;}kMgwpZx98$D&UJ3nljg9}>`648HefP-(YS~q`-u6|3$hE1s zxYDK@-y>9G>o2!Yd3~fo$+%(&NU{P8{29YdOz|Z3C4pP`Rgp<|rbC#;^HR@2o6gNH z=nF9M)#9ig)h}BVE1z`Oj_@kX#5lnQs<+&Jy|OO-<%1*W=A3mT!tFoATMRfs73 zbuVEZB!cnA%Zdgc@Wi(g9 zT&90~s`2d*02xU)3vzh8gz+xuBXjl>FrrR>EN2CckJ@MLGDO6;3+X_P0MF9kDT92x56~i$v8fxASmu28N;ic zFQMXWCp$UPfB{kM6%S>FUe zp?$s!WTykc>(Z6QfjLY7!d&QRlsb?P%O(qSDw@WC2n(OhaQDm+5eyh4f(%(uf{;|B zh`h{}azrbu$5C=^3LXG`4{HpH@B+wLdCl@K}#Yu9c16@BH>Z^A-NO;`R_ zI*b%Fx*C8Mp91SY8cUDXjna#nclt~8ys(9D%(j~Fmaw|WJ8S|ZKhm^Gowp*Lf^=7N zy0?cW>3)2um^mfs1KE2aQC1@YzsRU@78|p_!`46H9m)F)90(i(w-gxdvQDiNMIVSu z{Zg{jm`ZQNmSrT2e?9{ zqzubJ=QFPFTJ(H*B3Q`uIgCdT?)rIBiu!x*v@BQtW!o#1ao!#1(>!!Gt@=R{y?1YX zjRtwn+s6kb9*pqJuI7C@Wkrz~B5@OBYOyQB;U@%JAAq z%2~CjQz~lD2ol~K}wr=f)=%tY#FQ{z@EqJ{?MX{~u(W2@2+I5ivH#B^~ zb(iC6@qYHjB@QU!-m~%{76_uhDp3blohz!;2~u!j1~Zdbz_1EvtfG>}v#Gj~@ z!1pH)+E_M|K7~o^p;ax2gJV(7Jw2p1jl<^dL9m4#O^+@0FhWPC)zDcMH|gn}4-hd; zLzcEAt%u*n&1bN&&>3sn*v3CQo%X1Mj_)je-_m#Z?%2d>^AWxa!>qggm8@-EGGKH^xvS!n@@n0t7le#mx^nGs~DjD zAi5VvCi>!Zxgj^7j*ufmVs|^D^uI<)bKJoAv*FK>88Yd%z|VFE?Xm{2k*kPvE|!6% zXO=fRW2XBxvqS%K-R1A7*;_B8=f!>4m35a)%r;z_2Cg4;a(Y4PO^%SwzqY=|RI*Oyi$ZC-vVg|H!pq-#kZ+Y1qHDrc~Vp{chJ{>TLxcsi0^_if+)ka#wP2q*PuJuVt3#3!L>@ zP6JfVd7z%~oC*M0SDp=Ic)?&nG`lVMj7I4)%;LmKG4;Z8iklkIL@jwkJ-Tj@ups{m zfW8!6T8B;@a)5W&#b878!3_4c1q*4%M~XeOZS-1s;S{BGjEeK#OM*QTM2lH0GpOno z(0JPzJglZRZcigYAQN$XIh#VaB#XD~lS^bp`h(!#Sy97@U|Y;00=+q`!m{=f&g78x6WYswChtqWJEBT!M-+U} ztkdAbXCg*5`u`r@2^y^>m~vCGVozvT-o}SH7R>r3wso|ibuztYSvR(2sxCBnfjwsA z7j`&y$=6$zU`6YMG!<7%MGP$>AK>A5DW?}{8$AsK=w(F*I20%*(8B+(MGFLe^iNBuWCh9{Cf0d)h9$Lq>wrXxtJZCL{zlJNT z)*iJLZyMrInBs-(f{RhWzPdmb3$PwY!inKspG%vnPRQ)0S2_2oH~2`PN&nrRd*MeK#58?gg7-%PPZRs z+7XCcyhXe?raz;!_JQ0I-LjvD98mJ_wTEqyml-G${?X8_ya;a?TB_fMJ8GOqEY05C z^jmTBpHTEAbg2v zL}ba8!>bZSNX)i6b$Afr9N!Fet?bO|s>c#ybMhb7#$Z`jjn1b|5#EChLg8sIjOq}%@n(BS$TuU#bP16)KG6Jz+SxVNBlkJT1Jmd zh(t{rpiNm=Dn9*9E~cJC=d@i!I$=CkhRNbG(BPugnv);cfbH!hxu9SgAy|2*=(s4? zWrC^xti6V^+ko?0f6z!&{Fr0j-UBOrm9^90LE}XJ7aWT8O+?33`g;SjHD|7H&0M>n zz{aBq$LgHM^TpH+-Ei%I7o8JXFfrjlX%LA(4EL8(?1itx?+I{qY^Q+)QLfj+w-`-* z&U+o-F4R(rHD|&sgb6!B*K<9GN9Oi{9LV4wZ~c8@7GLzQgsR~tWt!FPf6p&A2NZ_F zkcn^9*-y)17;0UxwPAoXYD#cg^+fo*?*^v3;e3rV7PEiqrO=PM8OV zCeea&$QnmD2#xc%;v$?RpBVK=-je%RF7>y1h`i-})Zk^DX+n{k@Q4KybEtTOQUiEh z({9-V(w?;_bA-J5de=B!-L<{XyqfX+q&koaxB~LzLeC|9k9kg1Ae4DQHUlV^)i3w} zcs$jVLX1P>YdVk!I%cm0-@g;=X$x<7)Y!<_MJ&AmK4Q*<11Ew;zpOgf)o@6)?bf&; zm%clDYmJoXAT9T7+IAB1!7tFvL9h8{<`XswK2x39c^0O6UvC2Jt{j-M z23LcZl~TUwiOl#7PiHE?iCzj^!GnY-A|&W(IMqp4V00)=hvjgl?$BEpitpIgfp6(o zt!PqO306lv^0pY@85a(U2&tn7=T$Q}3;S;NS8p*}NW5M)U@?E#tzz9yGxB$a!5V7E z(NTFRTyCHd_pi^g%(c3!K95lTJf+eT8?KAXq_EBtMY3EqAS#i^H4+(83L|R~Af7Lm zCoEDH#5rz;&uzHJuG{9x z<3;WIm5~wMq|)r??8Wr~e4f({Gx3w6yS>F7qw8^OKCg;-$Y>6=nl^qw(c5W>F@Imk^=W$AN5g zlDQq4y>Nh2Mk-~vdZK5Y#Edkv17>W{$SiNlik3HtVVL#Up&&j`MJ>p^@lT_k^~AZJ2jiwxkh&Lv_J>2 z$aAT>92pjlQ1l5oQ%En(gh}v0+USfY?w{@Lu3iz@d(2eH4nE@b4yqUNq~>?4v!=0fc{emQ|}A;J_YWnbW*@cD$h+);T=kTou5@V~@Cr^{ZZb(T$Ia!aBbrhXrG zav|fXrPS0G^hY9Rg^2Z~v!W}^k*qNlLLHdlk^&MhVfdY`H06$~X(|XqjOiM})OF7p zkko}g3}hQP-4MSMPOUvD4B3~gjZpsFsTO96CXA^Pohw*FuyL79ef67dzT@nUJn`%x zoB1o9Z9K*pN1PBjf*797w`chUPHf*w#mS4Z_~mMKlApbf#IsIC&_zFKx%6~ALK1Nh zkdO^zEmD{lK{3FbeXCMxAIE%aq$(D)H}?;Cc-&fzqc*I!zQS9MW7aAhdlR=$<=BGj zVypb*nSiU@)jzn{tYH^+s0)T3t=7OcoBut-duo@wGI;u8XhXYBTqC1sT!OvMqy-W{ z9|xjb{F-=&6(^G1yN(uh0o>^l`Czy(k^j%3< zL&B)c+2{S0a8Kk%(5r*foIYtc$^JU9cxOj|H~pmvdeVoJplNkIB5)l?iEE{pn6AtQNE%rR?PEY}d+G4Q+e8fi%Y#!Y-7{z8 zEpCW67O>mfkC{^(c8x`Yf{)V3LsRANHam>(c)j5nx~djN6{ONX@$u#lUNH(EC`jY% zD27;Tq6C^}5^TpvFP4;G)K{x%&YlQFX8@fAi>&RkFI6Bk)G5!XgF|Vmyx|ox3c&r+ zDHAhpFedclN&F{=Wurv(MEvWi3myQ=3tfL6#?|VEV z>eB89(3>51Q+H3+llGj!!d*fEoRD>0_$8>_1%;U(tVKT_E}#7h&cUKR@24tL9oDpg zevetBW9<{Tb$=0znQ@t2Kg(s*{1Au1RjqTRqjPMX^E@pOr*9pNp(4sjNc-V&2{iPC zK)~*tvGCG5pl$#SzIbaky;N@_n|$JL)E(W03E;Btln8BC9>6S)CmQi^v~ZhcLjFyG z2}hLi4Xe7hmdD0Ng|buDCFv0sJRjU*LCCS`O8|O`!S?wfAaHIpPW58XU}M7+t0YOq z1NuZ3N5~do9|U;bR21U>74lKO98jx!BT&BJ>)6`cljOBqu9Z)p0+@g zB2!qqL;u*Zw5p9lZqh1Erni=)C^)_v#bFtaXBgs~ZGS7V$gsJw6?!7Mnkv$|2=2E_ z@`BL46yVNReN~1zGh|eKBHV!`b@}E!cX3?qdBdt>=7WXz<)uarpEV^S(QNV4`{6w+dE&k69A}Y%hR%lcWU*iiB2be!j!4Ly0GhDs-?S&rd}O2QSeqm1?fYKu z)VKwcecWCLPRdCk-VFDiilAxslV8MRFxF2jvq&Hc_KPg~Pd-*4+wVnx?0ccTk#y2* z(wTvw{yTT_pmHXLe|o;*nKoQrM#QEmcn**Q@I>^Dwr}H`UHb_4rO_ z-yS*BZrHoQBrx$)Z*VGiI$}7K`Ze@FjAykxh1Yf8B>3mbodIKkJW{UJ9O%l3OJ5?O z&>$(zDWU1DrQ+?#pYw<+rULP9Z2h(&p_ZhI5)klT)Ue|KwdJD11bH8JTO}O6)hAX_ zReGa1{F7kb%xHzg0mV|1;wE>5iwa%SE&FdA-(Gz;7rh20*Fob}j8+Diw49}kA@MF; z3dYj|73LfW3`#H=gs5l;;G5zMfdm(m)7s>p=vVt8pDtL%y^ug0zjMcnyH%qc(M}Qa z&ZAx~UC3xka<><174=3eT*2Y*-sO&3&3NR$5cgW0)UDB#>uqsWb(VrL+o(u8_) z$VBC^!WpXIoCeJYv3B^ILsw$%U|jO*1ihQk-X&+k^#(J`x4-rvr&YR3lP`qzOYz%WIO>(-|ZUs$K4z`cXegbU4n>SJU-ZnNG zsYZ1E;tX%4+)W-S94892&TF@P;V@}}c=T}cL=NInHml|+SowEsAg~iP(K>d)-%Vs3 zj>!<@fe`mDfgfng0pb&}t61)^W*=ugts^Zk;F_DfKG3On4iK|LMpj`cdJ_w`69U#O zCHg6TK?oYi&&nB#I6O|j{Szz8q&%UqWMcocpA%L_tLy=AY#g(1N7yYX=@eAHRAj+viv$sm>IB{5+K>W)!&(vlOj?;op;^(oi_*Dy9g-2C19^;S}58af6u=7WE%+<=f0>K=_qnb`vv zn_U3ys4NIzLJ+BQlaxMOH1yrA3NH1}yd0Fj+qoDC7CsF!t7l13ajPtV4#BEGG;RiGHfdl1+OP*%uyZt6SN_s)9QO zV=x6B-VU%5a+lP-Wshk)oM>+0UCEQVK?diON7mL*wg!MZo88m&hspH|jUE3Lr;{;SfU8_@{iVs0-|HP^N^7RZBCg;O zJxp^_PT_@RGIjkuDU`|Bne1`ih<2YZu#h*)WjHx~hmF%JOM55ysKD)^i!un^%$lh4>{ zJP=z8fP8+wh#Ejqh{#+$BF&ciP$*jVUuJ((#=7>0Sgo+99hz!!-;SRsf?R#Nk^56m zdZLCmx(X8P-keF6U=ba+lMeQo&1BGygXor|EE39I8chY=-*)X)Jw|wpVwXr|93k?5 zk$)PVS0Jyi1-QV59Fvyyg>a%VX|4UQkd;b3;TydGXqrlVeU7MAX?F&6^|xY5S|0iS zec0RKQ)(4Icb$DLB36;6)ML4R4s=HMdGNsepI(>2M3Jjd&Y~6;+V4Sp#M>fQt+Uao zBY*H9AJSj7Sb$8!5GG%z-N}5NV}^1 zQ`-EyzmAfD&nwb*)(4iEFcD(eNR89^jC8El%V6;=*?)Mi}4@GgqqzmLaPzP22F+o{cAH z28eazWy7{aXn;`rJOEZgwxrQpT!xkgb|`BvM_(UPXePon41jx#TfW=gt7~={uhqcwo!(G2v>u@`v013Xq7A0E;#&61>pA!~lHOBa^3b61Fh{2hLr=$UiExxj z$ywf;-cGSpZ;Ylgq#B~_L_h3$+@z`-Q>^5mq8jl%4Ip+2ikCbNXR7FGX=XxIPn4(exZ=YdEL)RM4Rr36m6 z>gx$&x&|7OaQgE}uaSe7ogL~yM@?xHPxZ=rQj<*lrf1ISxqd$U6))ocR_NyEG9qE7 zkdFIV1XMImM@EL#fEk^hqVY@98dn4&>zYj06pB$-UYppPy?$CdDioNjc=>aNqFJ+q z)C6zU1eVlaBZ3oLxJ6e^x2>ADUAp?p1G97PxF}waUGVLjuu3zw39vs0?i=d_Ky@uK ze-x*zGI0%?0U4hYqPEdr`HO zNbgcJ0XUW0*(qKA@HAD8Pwf_5Cq@uTkU@bV+ANwGFxi1d00Nh`s4qM*!9aoQ&YLt`01^qup-z0fgUJ4kK zvBM3=$%~=08lEoEJG-v~J(6YDFlZ3Mhw!z`c{ENa#$3hX&JawCj7(s>Bl1t>jqQaU zhb3_^0Z2UjJCH`4T>yFCa`f#ytiQ4iHEmLC$o*d5qiexa);^SvT_7en zN3Qnr?{;^)e3Uir7o0T)Z9BBUf;|c1EoX7W$oHRXjl*BM##u4Fgn5_VW?NkK@qti0 zNVb)RL`1_5dMGY{PgZ9eh$%meHX--v%c1NX15w3r5!nG|yQI1lQ$2XklZutmK<0x= zC)C`WWN)wDgLzN!@gCh`#?2F(+L4t-*?J?df)jlY9BvhkJkHy&J)uGaVbN6_9Uu7v zxw+6-`s%?^beRkeLd+DAcvFmg|LQf%@O7sHl9Xz4msw0jWKrs$z1s&o`b%H`DIb8s~Urj z3cWwl;DSjUlPf+FvdxpC{nRpBF{#Z({OOHCI$|hlUV+SacR18AS3+}%*+^qj9la5Q zZgF*|rpH7ET^3oLyq0gg{zC!$75|EOuLr%VmvW!stlJ*HKh80v+^14bd>B|e_%6;354|e`v~W?$X}Z^OFSh< zE1rb-*W+SF$wSQ4>O~v@Y>j&3v~Dn*FkHTu|5y1qI&M)6o+ZP?MELjQ!roP&*hKeE zHOpF;UHD%1d{F-xHWf@EN%twQe0ec4gSHraErl^+^LEs}7z`6bUB`V%tL{OMS=_ zvC2myVc_?h@#Nx|YcG|vbsHYG9dC`J!K|%ZdU+?^h)p3SyKr%O*0KZ+EDU@&d#O9> zCqZjeo_Z7~a2Q$sOgF=GIiv-m_WxEqJ2&Hwj;i0VgR3Zb_w>9G~-ZP;gK zFH>!mvv)vOu8rXJ_bUX$!q9x&715ev5s44~;$51)vM*B~8w-poFe zy?8+bH(TS|NRL^Cg6oEM&5Jj2#1egfyZz$1KaoFb#=L=HJ}d;GeGra&x2n)?Nx&CrbX8>unEd#B6pUHPfG&kh_K7zpY-&)vB8p`Uf@N4g-LzK<1FHX%z=mi>MWq} z@D;qbqFNq(j1pnVSde41MS)3J3DhvNpapovnvTKYCBX3tcR@!Q#-Eby#Qo;8WHL(f zNLY)POv7Sza!e?Yr|1wQM&?dx=^h+;2DaiFYZwRYg0B)-2tB!8<9S(ZazT0ZS#!%Z zDY_kX9?rXC(bDz;9_V+s$!s#rca*YkLxhoQ6{$rd6SxjZqG=xeCh{Sk@URSo7p3gt zSx*8nzElBzUW0z2A|^UwOg*W?CSpQiCADTZR-IHX59qYoom97If2VoHg%B{`2qYxZ zSnuFajB-rgCXOlid#$XCRc7+-%iek^AMQ`D>PJO=zTu^O?^Cb(@Xn9kusm$=qFKNO zu{lVHq4cWie>&Y&_6}03t@IKCq`Q?8O`n)VnRP^-$6a0V48)h;V4g@sQ4+dK97IcJ z_Z(dj8H7HShUuDeI%liduxCNS*@ZGHJ$^FO-G?X4&QeDb&u^Oz$(!|?NZJU^8|}2b zd(4J@x8JIQVKLi8HEf_sZ4_|1-nM&omyG>cpM^meNKqD7dSLV7bWBc{>RDJ6d_KXP zvo&E%Hp^=y2>%~N=i%41)`#&lDJ2YT3T@eXlBNX}wSYJfCA6U60;?#FtB6+d0$QR~ zaF$U52#5;E5ClX(M8!R?)?HMtb<~MCtKh_e>!QAS|AT%$JtyZkzR&X%p>+=|xD}k2vV!BhRAEPoiMPNoxOc1?=2?yKSmq`i ze;ywg2imtD8<2{*_U>#;(1%n0y$tCOE(s#Z8KfkQ2}9EX^OC(sOcYxH;N!^nnbm`3 z$_AY5iz%A4(q{%HM1lD)>?}pDcf%LUl-F~qW9yc#PjY&^j_CHw4jn>7a+U^m{>t%~ z41#64qp$TIVSI})zseCxFW5H|yLfS8#by^um>QM1boQpXf7V7Ld8`+%O3Y$|P3%2F zm46kNC1eupdJ;7SGP`!j@V}Y2k~^7twUd4ATuVv#*{zEga^xwq1@x9V1xQ8g?K=uW z+sn?SFB_dl+RVnem#$8{ z`3f$z`b}@d)udNN$m!%vZE7!cq2$FPY>k#Kn@o2utG*xP(wEWMZCdrp+1VP+H*ABF z#|DfPtvS{rv4UfLpsRAQ5QrE>8+(sLJRAZ#oXapTY!!`&x7DBw*Y^_^X%$a+FpW8l&(GPQ67FDk+#H>GrrTL@km-c2D3H6Y8w; z=P!<#zoGED&Te?z%&@Kw0XS|&JBcm=8mh(FEn(KC-WerOc@2slW4v*~`~X3fnHQ)m z!Z54^?w<1Of<1RbR_`1)&(=+}`0g4kly0sfcC9E~0A~1J4~AC^O;h&Tso@@MrY@!M z?+dfe;+@WOZaAlz*OS<&O8z zZ7T&>wB^1RClrmx47fAp`B>Qo)DA6pLQx-7!CXrbT2cf@Huv{A)ze;;$*~#ch;1Et zSm3w%iAiB!9^(~n-V+1Fj5$k%=GmM>@l>M+(b%-^FV$uhV1G#j4$tvC>mELim~byx zmYJXMEA>RIHh6A5{oHRjRlObyi<&grvD_CasXPVi6>C*i`>B8yN#)9F{&1l*ZEncr zodH{F>SbR4ezSu7(e&FLbI|!7@`5EzRGQ=ZD<}mBb_6{{6%2v;GNWbQP?p1nq1{cf zO{eHc&XY5V|Ftwkyo$}Hw%lq$slF$C@ObAV*wt8lc5v6NceHFizw4Wnx_^eyVNlBE z#?68z0e{uNpFQZEYz>3!ePc#+bbh=b7zwjb!d*}9sUHGEahOC3-^~>L5UiQz*-&IL`iX&ZSV#V70om%_cduh2 z5*@JOPGwD|=GFXbDS78yI{TcJT!a3d25UiF1hOWFL-B7IxtImQNy^YM_d5#4nV18V zSwwY7ikWy>!uhGyJ9b7#Dp0flCA(HR-8)L#Xpk6ou=RG>a@vA%Mmy0HSar9b-U`>c z^nbNg1^t>y4z}w?&&A}lFY0{?Te(9tbWYH%rT0044U9D<2%Nj-X?~CuwrNHGzsH0K zAgNAJDHf#yfD%B#`URO7lxpYgKg%$TJyENQs&{xiy)$JWB$=W-SM+6}ddamh_<%w5 z+8*!|t1~-O=pBkK10L}M`XPD zP1^`jpMLh=MiIihzyB<|lxms)`)r7hC)j)Rf?}8=z*vkKS!Hbdhew&)6fQ0^C zv*kNlK9*q;c5d+*l^xqQ=u%Vi!h|Y`Mdzj6bt0Eq9yp zMEflR(;m#e_w6^eHQXRWj#@8pKz>O#XMo4qBP)suur=vnJMsU1BvepwvNpjQZHQCF z3pWNcFT)6v4yCYwViIBy6y>!YlUjT?@7KAC0KvSjAO=61@pNlkA;}8v}9*<8_69w5AU$$|D zidI(;((dQq{F1M&{B{2DR+pmb(7foWBD&WT&aHKvZgQfuAg#^hmKV0lu9HhG>fJ8} z%PsR;P3 z3XpZn-UoMb5AS2&j4aygx)M6xSCzi(ujqQ#VQDU3tBxv{lqg~{e?p2eRjowq*r1@L zg%KUtU}j}lrj-+^v0unM=quD5IGc2O))t~WI3Q{b32@IOrf37>%^r z@YdY%_FlDPeEK{Xi5XWL(i?A{8~Cc~w+-rQH5UuYxdts6SAZp`Un0RNYq8YB92P`E z0UVrYH2>dbL&=~7)u5KBa5P!@CEB|@#&9y&vJHVJZ}>#L645~|?fZwU8qoJrXy|It z&UJ^0iT3TNN6q(#6J6mvEFz;V#Nj!S@or|lD*GVp%pY;DDsR+~kC(!*LlnE-yBX5$ zy~LMc#i3Cm2o-OnU*JHoqQ1iZ9~AV(8RaNRlNm8_Hlp+On$%nJ^0aGjR>UF&7-&2W z-}ungCjK4L`_zb>8*pO`g+?4yvp)W@7AgS*|5>`gK_`79tRXMJ1BW#@A#k=MwlHj< zWvxWa-{=^-Un%PrLjW}ee*z+Z#uG0rUQ{7xwti9VVCs5P+I7`!kW%tkysR_xbPlTI63>RJ~SWdX}$g-zT_jM7b8;<)pawC!^cW^wqAj>T%< zzqpmq{H@&}Q2a>81ih(Y;PUbYMZ8L7X1}%@$2p^on;Et{lA!OpB&_u5bis5nD$|;a zB8284(zB9Lj$zvsE0g5666C)oZ-3A!yy*=eDXVZT~?-brP{ zno$*B+*pz1(6q*3*@x`dUaNayMV|`~e!px@?4!cO#A$Gc@9eC|zc7L@p1A_WMBuA! zR^l?O*M`Mm>Lm4Keugk%;QI&I+No!r8b>aw>$ETG1u(Q&tGXD<4~OcVC#yuHCY_=z zc%DCQBNczblYWxkE;;zZKysHPfg#Q#vJS~*#abuFhVDT<_j=6~Vye~(U#QwXN|>ep zV_bxHpZyq$uM1MC)ao#jH=I0Yxw39#bPjZqh13$zug_4LU7UNiPrCD6nj?oZlESVDc*TMHAe` z*GKkU?kruIP`gUhb=&{7lKn3)p!&PJ85HM{4IO}CPhS;|(?@PEkTHeH%=+`X`)<;L zZbf_nMHhHOJ|OtJsx)^c=ib7lYU3Rx3q$-frsiJ&)_CihmXF@YpUqW^CNDVm6#Inx ztH+U*lXB58Yg@!IS*h>t&mBUceF+y=T4V8s#9}4}M@1X691u`~{)||}RPT^X-iY|y zuIPt$ezEF`bDJF`sf|pRQ1i#+)dTyu)o}F_`yY0>&c84o>By`|$?bEdy`!bkJjVo?SDO79P&A>K zfdrv?KEp&-j*{YipEjz#7LkxD>lf5mx6-b_%5h~gQc88Do+1pG zDLmL2-Nc#BplN-s$l6f!!Ke=J-2&W5sDrWl5{`^Zv`7!!4pMCkw>64naZTGt!NK+p zJYh|g^YiyV!i_&j!U2loW@&ff^R)WOh`YcRvxH(%(2=-azrmI#-AJGCb#7ejc0Go^ zQkFSZ#5>lpH%X9PVG%J2mr!wM9lo!(Du`@OUZ$T+N;2k=;vOtby6(PMs?r z-N1WQ_qtcG(<@zoIJn5>6kTflS77YPiNn%wzOBtaPbqhQoR?fE#kaUYR*JQmazpjg z-L-w-85lfhYV4-EPns54hkV-A)b!@Nj6byx)#5pyY}FOH-w2~j-9Vs5CgBcW8VFm4 z`}wi)#$A>L%OqDT;=;tbFE+8E{)^x8xwkgmE<$kQs6@%onV+2sD=$nsdR4`tNq|zx;rZB$SP~M>?uL)33_z|JpbL)hixMY$)TsJH=qjq9Z73Z# z{sUPMG3D{fA%h$%tGc83Y?}7hqm~V?e*Ez*vC^o!pou%NM80cZRn0Dix6qQ%3OP*8I1k7%(pwHP!5;CW892C3Fc3^WlnDGA2$L<|^ z3ObEtDR|9V7>~MQGBE@&Gk{S^8CgjhDOMVDwTG_nU1ZAdF?gKVIUSV#}&! z)dO886dhga086i*+Nep=A=K7bMKaqj90L@(3BrrfL$aHdM7ensSr z6)e50oKy&f@HINMqbJpc%~2gU95WafVmz@Z$T}F3R3Y=4SD~*mo=N(Z4sv!} z?7aEbYr(c1A&U+O-sP|)f6gqS=38)ov(ifbOTM;q`e-*17sDvk*9FhjQtW?0DwY4csp;0|HF1CAR5{a<< zm}EK=_%a;e+f%&K--MBgg|N$A*=57LvNhGz~RrfkgyV{+mf7g>Ew_Rn_c8npPNc`9WN%y!v-(s)DX|{I4M& zl0#>|<($q7saRFAEhtVN954AcDdu5>ep7S;&QtL03%VBnxkOa{p0r<>ah>w^7(A!6 z6EU@5^;d@c<0L5HX^|kfK0>M(}f#SpTl8OJB^^b?Z122jRQmxstb-Y46>1(Wu4j2-cYpQRsM z%c1XJvuCWjAA{bH`&anpVH9!&mOz^Q4_LXC^Dp1ykmtN5dwNfD^#Nl9|43f#FR=SE zu?>o;`pKa{ksyryXox8WG8?JmOodeP6rZeWVEzw7UH0G)BbUXL&8)>|*+QQX#mpa0 zGjBTh7hQq8ojHlb0#I=eerPys8OtAnA}v94Jp zcgAMv)^TLo1{8+521oiF`|p}a3f)D6g%!NW!LN!3gijn${26~ zClTdB^s9?CMSxgJdxflEj*Gk($4SCaK6!WUa&PEwOVg-+E>_%u7d{$3O^)rrNYpEx z6}qbOfFu3{Epc19WBW@ll$6Nx=Q#%XgV%oX2`vXc zLUwj6UdYLP&;_AL_t3J!G+eKYeY8h0F`!2%5K{kDE_^#STljnSibhVae$?Sb9jf#VLwUGHW!rUo`&^J2$nH0$Gev>HAq zr(5P=;cgQ$lgHg;U2rZYj+l(b!d5@R6!L^eV7mB_u;AaReIL8XYs)1Ylh!2s62|w3 zF3nWm8i@60@!Oe)s79^;x*HoJXV{m>^p(L-W(IGa5yb&_;zXR;nNW)3BVmM0`9gO5 zD*TvoC@)F%75ZeBQ)C=?Cd9qe&$hb~X@s4LJ(=^uznJtZr}Q6(G4gd(y#oWs|NR6c|dL4X{P~;dswDrukz#p)!@4iW<#;b+p%T z6h;Pz6jvEDn`^^k?m8uEj#CKq8%DlOMZS%dPyFG@ z6yMe1i|D0kW9vO@jv}|HZNaVU^M_C2``(maF2~->8-okH(3S%2ipI5HtRb#du9Q4P zZm^}uu1$U-3t*8agvxVfinKMXX>C_^pjn3B!;;K6gZ5PO;l=nd%}8*)xjv0I76^va-7=HG>7<3HA$Oz_6sOmHX36@ znlBEjv{02Ir@U3=R`c91HM{Odndf{B#mB=hY788RdLE8@xSW|UIYJEK^$329Jss=A zIUV4>s{hOptl3*PS?rkT+n!&id{K;&xU`&RCk)SJd{cF66uc<&qg{EoLe;oCWS@vnYz zX~dg3akWD4=bQe$x@h_v(PHl3V_{#57iD74ieJcWHuhybjuo++BSeRTJ&Zr^Z%;GU z&g3%HFjyvinP*eS%5n?UU|JFOE9 z{X0VMUK}{Xe`s2GEjXT}LvMiI(V;ijxdi15lyunHFn$GH@CUW;4vbvctXY+UG`F3} zKzMSI`3_~=H;`%+0X!;-Wj$46A=rB-&Z`3C&J7H8_|K{+9(0j#s+R@Nv%+J@%L3YM zbUm`-AMETu#K)Y-`a0cn_|yzcmi9xRyxuTL0af&D#2kP73yx;+1(vc&++HIN%bCNS zyDP?Dd>}9=RNFl_==3H^C&L8?1xA0nElR3{loMNZW-(J=U9dCpuRdtLdel=TgDARR z<9{`J$9U@hoM;7p*7R@sykEmvDYR79X048tDAo?UY_LBY%? zR7Js%AwH3mhAt91bZc2I)A5cBbKM3u;6cu{PF9$2Fb7f)yKV8h)I8{+K8}&++`f8c zE6-S-+#mDQRJrxqJ!{JA${`rE56VHhx!AVYe(K2A3bEdl%J8rcAi;v#I2FT89$fju z$;E7A+Zcr4rIInP5k0F7e9>=7${>ZhnXt#MR=2V+h;)8`)ub1x6M^55Ua|l~YaES^ zJe)%D4EzI|xP}d%1#T|KmdShB7fsLn4zH2(#)c!@?88&u*$F_J0&={`o+}2{%?V}A zSjFHpGYpauOosm?B{;;`y=|H$_v+U0MaAfAY<}~WT`19#?d8=AR9UwUrq>YiG|}vA zXj&et7N&Xl;(v!(Y;~A=%BbvHLx$8&2;3KU>r3X>{ITbF{kf;)xlZE!kyb9#W^#d; zYrRM=2I#+{u<8vu%%8-eJZOIfdX^oflLUJE4l|(qvI0J9!IOkQ%GZzUdE^r>5J#w- zl7SPkyd>Mu-f8^pgLS{eab4M7pYIOi__I|sH)xOlXrkw$5PAOnW7KB*G1#|7fOb6v+u*B%h{@g!1NsuK8yy5_pDDZ~y9dRcPpaqHzK2wRd<7nM#@df(QM4gf$Xp zyA%Q5&{nrVCSm$Mlv*G_D{z8mk5|N0fj%?ODu3-pVE|$CE47vZP7VKY>Xvh@z5>t6 zTR`MW(+6`;mMgwiCU$#eYccm;m4j(k#WDX!(ho2a_SQa25I6?#oCWZT9Bi%}5)?1d zNW%V-`v|@ly+Q))TT3KhGwm5>o9Nl4jI5$KW%FqSw~&!P&&Q2HuzZJkt=FCf1@>$B ziWkzCmsnZP3?PTCDuH>@05FRDlTzFBwcH8dt-7v~%^PIS{;X{``HP9DLv z8yi+AvS=5mYmDlJH!)!+g6ZP@GN)Y3hb3!php%TofGGDqoS%9-oTeqVDNV=6bgmw* zC+S+num2=lvkKg(2Cd@zSBD+Ky!_j*+4AA;nT*^pC+{KBeErNrte0@fdAZOG!&t~si58BLjqN`a zc>%kYt(_Fgp#DJYZ*S%@n{1vIbIVA4%Ke)0IMZN5PGUR6P@{B=bnZGV7*GqT^J&kY zIN2x;xkRh{>=*j#VWHcI>DoV~b68cFUYEQ4sI|Q9>z$#U%?HDV`_1jwPhmYI^5y>6 zwfT`&J;yF0#myEdb4Nky62rb|1!Q){P0nMeY3zWmoAF@oRD7ZtVkgREf4zl5R4{(W zZi$I=gmr@#LUJ71mh(11tBS#$bsC`LJ~dn!`wcQ`z~_4uw*P4YREj1F{O@R2y9zIS z>V4TWZ9l%ve)7Zhvcux}t>eCqH*p^eh<;_6+cU?oGvEwBPLVwoqil{qC_0gKz(8wR zuQhDX8M8OJF+oSC0*__d)LV$os!?w3Degnjp%u_}gQ##9F*!~FMdP2{<=zOVvtqZU zf8S|cik^9A*M8lYFB)!`)qg3nnsh!vUNRf744xHn$oZ^5+bA`R$fINlj5G`1pizqQ zZs9Qyg0_$>kd&|3i$A22n@Ap4f}EiLQ8s-}iMmdM^0BSm7zpu&%C`A=Egdi06F$KZ zcjYUAW+~vn!=|j8>o}8|6K)<9j0oh#L~v@bsIv5~?LKXS0Qkq~idhRL$b1yW+xolR zvh_UHWh9#cCHn&OKdHQJ(uq|nepImJ>TV6Wis{x}lb<9Bt3s=&ODkJ|m7y3YTSYZM z#*;fQ*MQgADRmEdXH)x2KmQPS6cEzEd%Oa|w5$F8bvV}#%KJ)vf9^67_kiYNVTR{g zYSHv9!swOwOZ}3uF5I*JxE4|vT43-~d@FunOVu#WPMQ>)ehaPy- zUlOj@T>z?6o__5juhsmh5us>c%U4^qP8oGx3GK!N)Wes5v{$;bV$Lc>UmK2XUwqume1Lp_#TAMj`d)&47&=s4i=p>^%ZD~c;0%;MEo#whuF!kEFYN>542ACY6~ z)e0T|(6g^Yo@3Q<_w($^AnvlTxjfck$#l(&Dm{V>QS;*Sg8g9$`=|L!oocc+y(t7> zUKGMJ1DBPRWqni(wC82|d{m`|Jt+sQcoXP?;SXaxlXvb40UNh&&&u_t5^-Uk8J1CX z@PEb*zvU}HRc>$quwQL)oFv>19&f0orjIcj68P?3$u@$oH}oBihIeCheG+8de%CZ0 z*SV(`46%S}G5LTB)P>Xx#v?6+1U0*+RvT1=;^5y%-jQt*p8TKt(B$S3XRy+!V@)3Y zejtLbIJD1X8~^;NTXx~R>Y>^_D4hN7+LL_^TW3)njo zmO9c=;P_XQ(!0?i!-@1s-9n;UP^NS(DUz;c-r<*n8w*q+k=q;=5zNfBWnUhA*-6J+ zHP}X-cDiC{HwNE$n)=JfIFv$$_;4p`1@NiF#XTQ!L63l*G;Q(M z*k>SkZ)=*>MEL1hNmFI0Ebz^(w5~>@HQNorVci==j1*-u%lpl^fu7zO7{}Zrbh!T@ za^jmwQiv*^%X%jGHQOu2U4yz)=I~|y|#mf)kb#ns$roBobl(c%YiO1_}l`p zn!&U9M-x3|o`uo~TD=5Ib>8(PFXt06EFO#4EilJv#p|Ll{FI_0R(nV>S?7^r+@O0L z`?8~HGIzx%wCmD!frD^F`muDYO#hHqaZ}}8?)_?Q1h-@2Y8W;gu~|}k8&6VsXB@WDd~3g|IdW)f>#76m@E!s;-6J zsT1@)F^GlLM~5`c{=Rscf(~x!OtN%#+sq_a!&W|wbKTNbF{V2`o&;j(6A?p)wa?~PTA*^M;|^bS!H-- zt`%p7%i$jGeDW(oyulnkVgYMvFiN^vA=io6%H1_f1j(4l@)|BGQ{iPen`?S2<+0{W zCq;30@7-?YIz=q?3+BiN7RI>qa16A{7VFPLe5xwZQ!@ZS(;+QV08!1mwyKX(WJ~&x zmq9^7;qY*)0wdI9yYQphaN&VHInM1##5Us65Q)@Dbt_6_qBBG?Xdla|K2f(vs>&tX z;Tmb1TXmgf*8ZY&hXp~tGC2OThtKMvI{2VL?{Y1!)z$L=WH>jJlRBl#-l|dG+%z~e z;u+r>D)TqM4rFlsGp0~}Y90pF8!&k2i$#}N7+gn1XPm(x@b+>243mmTPz16nQ&W`; z+ro&0sh3)ukuxdGLH*oLFC~E-_g>oJ(`hCs1R?s~c^P33pSs%lM%U$phT&OOz?AbaB%2*9qW&Qn1z~x&3^4L>3 zx3hR_G;lzHQ#QB@r`V8#L|@?|v_G5Xh~Q+lwBk_I=h#`~n!$8+2tvoqj?k)`#B!a* z#rb)y4;6cJ)|%N4`sZ+qA9-yVv&HinRn!_+1t)ys`%K>SvOOUCMB4+@-)VzDcg6}k zg5-Lmo+aoZIgJeY$8$2!S&Q%#Cbwu;Gf`NU8e78#umWUfR|B#3TIy3}&-A27c_HtqU%57 z6WJ>Oylkm z+xNHaoHBUtqMcH*ecjj)4xMx9j29bOrPYe;APzlU5VZr?;vN?$<$I%o8RLw%Cs8H}>b?`F&T216M-OWSN zJJXus+E{G#P8ud(!a}JFz#jb=R{SFOkUziKD+xN0B%o#s)5#p9yb{%?$x-n>9L