diff --git a/.github/frontend_test.yml b/.github/frontend_test.yml new file mode 100644 index 000000000..ba42628d8 --- /dev/null +++ b/.github/frontend_test.yml @@ -0,0 +1,23 @@ +name: Privateer Web App Frontend Test + +on: + pull_request: + branches: [ "webapp" ] + paths: + - webapp/** + + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Build frontend + uses: actions/setup-node@v3 + with: + node-version: 20.x + - run: | + export NODE_OPTIONS=--max-old-space-size=8192 + cd webapp + npm ci + npm run test diff --git a/.github/workflows/frontend.yml b/.github/workflows/frontend.yml index 35b590cb7..83b58d09b 100644 --- a/.github/workflows/frontend.yml +++ b/.github/workflows/frontend.yml @@ -4,7 +4,7 @@ on: pull_request: branches: [ "webapp" ] paths: - - webserver/** + - webapp/** jobs: @@ -18,7 +18,7 @@ jobs: node-version: 20.x - run: | export NODE_OPTIONS=--max-old-space-size=8192 - cd webserver + cd webapp npm ci npm run build cp ../.htaccess dist diff --git a/.github/workflows/frontend_lint.yml b/.github/workflows/frontend_lint.yml new file mode 100644 index 000000000..a9a611dea --- /dev/null +++ b/.github/workflows/frontend_lint.yml @@ -0,0 +1,25 @@ +name: Privateer Web App Frontend Lint + +on: + pull_request: + branches: [ "webapp" ] + paths: + - webapp/** + + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Build frontend + uses: actions/setup-node@v3 + with: + node-version: 20.x + - run: | + export NODE_OPTIONS=--max-old-space-size=8192 + cd webapp + npm ci + npm run lint + npm run prettier + \ No newline at end of file diff --git a/.github/workflows/frontend_merge.yml b/.github/workflows/frontend_merge.yml index 6e248c18b..b24bf6a54 100644 --- a/.github/workflows/frontend_merge.yml +++ b/.github/workflows/frontend_merge.yml @@ -4,7 +4,7 @@ on: push: branches: [ "webapp" ] paths: - - webserver/** + - webapp/** jobs: @@ -18,7 +18,7 @@ jobs: node-version: 20.x - run: | export NODE_OPTIONS=--max-old-space-size=8192 - cd webserver + cd webapp npm ci npm run build cp ../.htaccess dist @@ -33,6 +33,6 @@ jobs: password: ${{ secrets.ftp_password }} protocol: ftps port: 21 - local-dir: webserver/public_html/ + local-dir: webapp/public_html/ server-dir: ${{ secrets.ftp_server_dir }}/ diff --git a/build.sh b/build.sh index 9a596e48c..bc00d9f41 100755 --- a/build.sh +++ b/build.sh @@ -1,24 +1,11 @@ -# source /Applications/ccp4-8.0/bin/ccp4.setup-sh -# source ~/Development/privateer/emsdk/emsdk_env.sh -source /opt/xtal/ccp4-8.0/bin/ccp4.setup-sh -source ~/dev/privateer_wasm/emsdk/emsdk_env.sh +source /Applications/ccp4-8.0/bin/ccp4.setup-sh +source ~/Development/privateer/emsdk/emsdk_env.sh +# source /opt/xtal/ccp4-8.0/bin/ccp4.setup-sh +# source ~/dev/privateer_wasm/emsdk/emsdk_env.sh emcmake cmake . -emmake make -j +emmake make -j -# cp privateer.js webserver/api/privateer.js -# cp privateer.wasm webserver/api/privateer.wasm -# cp privateer.data webserver/api/privateer.data - -mv privateer.js webserver/src/wasm/privateer.js -mv privateer.wasm webserver/src/wasm/privateer.wasm -cp privateer.data webserver/public/privateer.data - - -# mv privateer.js web/privateer/privateer/src/wasm/privateer.js -# mv privateer.wasm web/privateer/privateer/src/wasm/privateer.wasm -# mv privateer.data web/privateer/privateer/src/wasm/privateer.data - -# cp web/privateer/privateer/src/wasm/privateer.data web/privateer/privateer/public/privateer.data -# cp web/privateer/privateer/src/wasm/privateer.wasm web/privateer/privateer/public/privateer.wasm -# cp web/privateer/privateer/src/wasm/privateer.js web/privateer/privateer/public/privateer.js +mv privateer.js webapp/src/wasm/privateer.js +mv privateer.wasm webapp/src/wasm/privateer.wasm +cp privateer.data webapp/public/privateer.data diff --git a/data/glycomics/privateer_torsion_statistics.json b/data/glycomics/privateer_torsion_statistics.json new file mode 100644 index 000000000..e98ddb6fe --- /dev/null +++ b/data/glycomics/privateer_torsion_statistics.json @@ -0,0 +1,479 @@ +[ + { + "Linkage": "BGC-XYS", + "Stats": { + "Phi Mean": 83.41301497300282, + "Phi Std": 10.837192671074305, + "Psi Mean": 166.99349292575272, + "Psi Std": 22.085719289795936 + } + }, + { + "Linkage": "GLC-GAL", + "Stats": { + "Phi Mean": -47.07561492919922, + "Phi Std": -0.0, + "Psi Mean": -54.26777267456055, + "Psi Std": -0.0 + } + }, + { + "Linkage": "NAG-FUC", + "Stats": { + "Phi Mean": -72.06461171641385, + "Phi Std": 19.90348719281617, + "Psi Mean": 155.2905219798314, + "Psi Std": 35.031013073576794 + } + }, + { + "Linkage": "GAL-A2G", + "Stats": { + "Phi Mean": 83.63237160821473, + "Phi Std": 11.676294852729736, + "Psi Mean": -111.51446645513991, + "Psi Std": 12.337482785236725 + } + }, + { + "Linkage": "GLC-BGC", + "Stats": { + "Phi Mean": -110.20581436157227, + "Phi Std": 0.7491523660069155, + "Psi Mean": -116.43465805053711, + "Psi Std": 0.9974426402888935 + } + }, + { + "Linkage": "XYP-XYP", + "Stats": { + "Phi Mean": -94.96691459550584, + "Phi Std": 12.285558101062502, + "Psi Mean": -82.98546386105224, + "Psi Std": 68.99795554370482 + } + }, + { + "Linkage": "NDG-NAG", + "Stats": { + "Phi Mean": -84.11568069458008, + "Phi Std": 0.41678421698683743, + "Psi Mean": -131.89889526367188, + "Psi Std": 1.9836576073867518 + } + }, + { + "Linkage": "MAN-GLC", + "Stats": { + "Phi Mean": 64.34329545280804, + "Phi Std": 13.347926803434898, + "Psi Mean": 122.70768975240827, + "Psi Std": 13.850687244932013 + } + }, + { + "Linkage": "PA1-GCS", + "Stats": { + "Phi Mean": -70.85774993896484, + "Phi Std": -0.0, + "Psi Mean": -147.56668090820312, + "Psi Std": -0.0 + } + }, + { + "Linkage": "XYP-GCV", + "Stats": { + "Phi Mean": 57.67452621459958, + "Phi Std": -0.0, + "Psi Mean": -159.85459899902344, + "Psi Std": -0.0 + } + }, + { + "Linkage": "NAG-NAG", + "Stats": { + "Phi Mean": -80.30713190761206, + "Phi Std": 14.79456819823376, + "Psi Mean": -127.20823804059191, + "Psi Std": 22.895306693929033 + } + }, + { + "Linkage": "GLC-GLA", + "Stats": { + "Phi Mean": 64.43196105957031, + "Phi Std": 2.4721165886238254, + "Psi Mean": 178.9172973632812, + "Psi Std": 0.5035585391764589 + } + }, + { + "Linkage": "BMA-BMA", + "Stats": { + "Phi Mean": -65.44140270013868, + "Phi Std": 50.816241353268424, + "Psi Mean": -159.03133143979596, + "Psi Std": 52.21637316266173 + } + }, + { + "Linkage": "NDG-GAL", + "Stats": { + "Phi Mean": -148.60056686401367, + "Phi Std": 82.06596328261703, + "Psi Mean": -142.33131408691406, + "Psi Std": 2.6307264265819494 + } + }, + { + "Linkage": "NAG-GAL", + "Stats": { + "Phi Mean": -67.93933679522529, + "Phi Std": 21.793496341115763, + "Psi Mean": -123.3929777106511, + "Psi Std": 23.66472125438966 + } + }, + { + "Linkage": "MAN-BMA", + "Stats": { + "Phi Mean": -116.68079376220703, + "Phi Std": -0.0, + "Psi Mean": 56.98033142089844, + "Psi Std": -0.0 + } + }, + { + "Linkage": "MAG-GAL", + "Stats": { + "Phi Mean": -63.75944137573242, + "Phi Std": -0.0, + "Psi Mean": 137.62738037109375, + "Psi Std": -0.0 + } + }, + { + "Linkage": "BMA-MAN", + "Stats": { + "Phi Mean": 74.3827785276905, + "Phi Std": 22.614051996632384, + "Psi Mean": 142.1641720638466, + "Psi Std": 36.69740952155978 + } + }, + { + "Linkage": "GLA-A2G", + "Stats": { + "Phi Mean": 99.49398803710938, + "Phi Std": 6.444222549209838, + "Psi Mean": -126.83242797851562, + "Psi Std": 0.6481773839868434 + } + }, + { + "Linkage": "MAN-MAN", + "Stats": { + "Phi Mean": 76.04518460527146, + "Phi Std": 19.9563628451359, + "Psi Mean": 144.06065181954762, + "Psi Std": 35.921701117513244 + } + }, + { + "Linkage": "NAG-SIA", + "Stats": { + "Phi Mean": 83.88993453979498, + "Phi Std": 3.244935420730865, + "Psi Mean": 177.64580535888666, + "Psi Std": 8.98941430171232 + } + }, + { + "Linkage": "ASN-NGA", + "Stats": { + "Phi Mean": -83.98567613833156, + "Phi Std": 73.59951392168276, + "Psi Mean": 167.29910485255152, + "Psi Std": 28.328327531375418 + } + }, + { + "Linkage": "BMA-NDG", + "Stats": { + "Phi Mean": 93.10601043701172, + "Phi Std": -0.0, + "Psi Mean": -44.0685920715332, + "Psi Std": -0.0 + } + }, + { + "Linkage": "NAG-GLC", + "Stats": { + "Phi Mean": -17.743995666503906, + "Phi Std": -0.0, + "Psi Mean": -169.0996551513672, + "Psi Std": -0.0 + } + }, + { + "Linkage": "NGA-GAL", + "Stats": { + "Phi Mean": -123.7350082397461, + "Phi Std": 1.3649403452545885, + "Psi Mean": 54.50335693359372, + "Psi Std": 93.60096168507285 + } + }, + { + "Linkage": "GAL-NAG", + "Stats": { + "Phi Mean": -78.28552633179521, + "Phi Std": 53.72835750806538, + "Psi Mean": 103.39154121516725, + "Psi Std": 23.943088788902458 + } + }, + { + "Linkage": "MAN-NAG", + "Stats": { + "Phi Mean": -86.33899566033914, + "Phi Std": 14.89573612870324, + "Psi Mean": 151.12727129034687, + "Psi Std": 14.71016468338597 + } + }, + { + "Linkage": "ASN-NAG", + "Stats": { + "Phi Mean": -97.01778059537959, + "Phi Std": 32.30869514198137, + "Psi Mean": 178.79381760936826, + "Psi Std": 25.87744001843269 + } + }, + { + "Linkage": "NAG-FUL", + "Stats": { + "Phi Mean": 69.03838375955962, + "Phi Std": 73.59835377046004, + "Psi Mean": 166.6378711058896, + "Psi Std": 95.29341821515608 + } + }, + { + "Linkage": "BMA-NAG", + "Stats": { + "Phi Mean": -75.24000852158719, + "Phi Std": 25.914269881912638, + "Psi Mean": 169.08484454807297, + "Psi Std": 75.75859963050023 + } + }, + { + "Linkage": "GLC-MAN", + "Stats": { + "Phi Mean": 68.6194763183594, + "Phi Std": -0.0, + "Psi Mean": 100.22621154785156, + "Psi Std": -0.0 + } + }, + { + "Linkage": "FUC-BGC", + "Stats": { + "Phi Mean": -61.706624352774156, + "Phi Std": 53.825989762322735, + "Psi Mean": -102.71735372631815, + "Psi Std": 19.139854009067033 + } + }, + { + "Linkage": "GLA-GLA", + "Stats": { + "Phi Mean": 93.01558198472173, + "Phi Std": 13.200233423753328, + "Psi Mean": -157.55371657330963, + "Psi Std": 81.08152601752913 + } + }, + { + "Linkage": "FRU-GLC", + "Stats": { + "Phi Mean": 105.4614007759256, + "Phi Std": 9.553031039865935, + "Psi Mean": -156.4073839659267, + "Psi Std": 23.927527013189156 + } + }, + { + "Linkage": "FRU-FRU", + "Stats": { + "Phi Mean": 138.5184173273247, + "Phi Std": 6.995833566811945, + "Psi Mean": -117.28842773879849, + "Psi Std": 6.6685743220008735 + } + }, + { + "Linkage": "GAL-FUC", + "Stats": { + "Phi Mean": -66.47229003906251, + "Phi Std": 1.556614298015407, + "Psi Mean": -100.75963592529295, + "Psi Std": 0.5292472323606048 + } + }, + { + "Linkage": "NAG-FCA", + "Stats": { + "Phi Mean": 168.66688537597656, + "Phi Std": -0.0, + "Psi Mean": 139.98585510253906, + "Psi Std": -0.0 + } + }, + { + "Linkage": "NAG-MAN", + "Stats": { + "Phi Mean": 143.56104193305663, + "Phi Std": 62.31040534075559, + "Psi Mean": -109.23784441504715, + "Psi Std": 64.72555423953676 + } + }, + { + "Linkage": "GAL-SIA", + "Stats": { + "Phi Mean": 56.0842630153567, + "Phi Std": 67.62503172487473, + "Psi Mean": 146.69825865537996, + "Psi Std": 43.234765467482774 + } + }, + { + "Linkage": "BGC-GLA", + "Stats": { + "Phi Mean": 43.98302122666445, + "Phi Std": 12.701895564568316, + "Psi Mean": -160.36226307135007, + "Psi Std": 18.649110533977524 + } + }, + { + "Linkage": "BMA-XYP", + "Stats": { + "Phi Mean": -79.376894221166, + "Phi Std": 4.869243671144392, + "Psi Mean": 134.85837760823767, + "Psi Std": 9.055197432762707 + } + }, + { + "Linkage": "GLC-FRU", + "Stats": { + "Phi Mean": -54.514125823974595, + "Phi Std": 3.8282673330686228, + "Psi Mean": 164.81099700927734, + "Psi Std": 1.116711680820396 + } + }, + { + "Linkage": "BGC-BGC", + "Stats": { + "Phi Mean": -83.65961063839418, + "Phi Std": 13.85129354047636, + "Psi Mean": -152.55898552142295, + "Psi Std": 50.643256009738124 + } + }, + { + "Linkage": "GAL-GLA", + "Stats": { + "Phi Mean": 88.25079449315956, + "Phi Std": 31.818157474831608, + "Psi Mean": 140.18292100914687, + "Psi Std": 66.56068894551385 + } + }, + { + "Linkage": "GLC-GLC", + "Stats": { + "Phi Mean": 88.77705642343238, + "Phi Std": 13.584261987584622, + "Psi Mean": -147.21771287268382, + "Psi Std": 39.12512454423201 + } + }, + { + "Linkage": "NAG-NDG", + "Stats": { + "Phi Mean": 59.662699658098745, + "Phi Std": 21.68423612419877, + "Psi Mean": 134.13228532960636, + "Psi Std": 60.22853718786928 + } + }, + { + "Linkage": "NGA-NAG", + "Stats": { + "Phi Mean": -90.82688903808594, + "Phi Std": -0.0, + "Psi Mean": -62.05270004272458, + "Psi Std": -0.0 + } + }, + { + "Linkage": "NAG-BMA", + "Stats": { + "Phi Mean": -86.83359670389288, + "Phi Std": 18.411190308166134, + "Psi Mean": -133.33602175308062, + "Psi Std": 18.70293833204839 + } + }, + { + "Linkage": "GAL-GAL", + "Stats": { + "Phi Mean": -93.17328411017021, + "Phi Std": 26.32790743958914, + "Psi Mean": 126.49718595370081, + "Psi Std": 20.32654423084125 + } + }, + { + "Linkage": "BMA-GAL", + "Stats": { + "Phi Mean": -71.11648941040039, + "Phi Std": 1.261262326532947, + "Psi Mean": -126.7465934753418, + "Psi Std": 4.200432213587802 + } + }, + { + "Linkage": "GLC-XYS", + "Stats": { + "Phi Mean": 63.631027221679716, + "Phi Std": -0.0, + "Psi Mean": 149.83773803710932, + "Psi Std": 8.537736462515939e-07 + } + }, + { + "Linkage": "BGC-GAL", + "Stats": { + "Phi Mean": -82.06125797445374, + "Phi Std": 6.71270167128625, + "Psi Mean": -130.23580269059045, + "Psi Std": 15.823549462410835 + } + }, + { + "Linkage": "NDG-BMA", + "Stats": { + "Phi Mean": 116.80231678934342, + "Phi Std": 26.022241975531617, + "Psi Mean": -128.0176452926261, + "Psi Std": 11.380287763252477 + } + } +] \ No newline at end of file diff --git a/data/transform_glycomics_data.py b/data/transform_glycomics_data.py new file mode 100644 index 000000000..6c694e263 --- /dev/null +++ b/data/transform_glycomics_data.py @@ -0,0 +1,21 @@ +import json + +def main(): + data_file = "glycomics/privateer_glycomics_database.json" + + with open(data_file, "r") as data_file: + + data = json.load(data_file) + + output = {} + d = data["data"] + + for x in d: + output[x["Sequence"]] = {"GlyToucan": x["AccessionNumber"], "GlyConnect": x["glyconnect"]} + + output_path = "glycomics/privateer_glycomics_database_slim.json" + with open(output_path, "w") as output_file: + json.dump(output, output_file) + + +main() \ No newline at end of file diff --git a/emsdk b/emsdk deleted file mode 160000 index 88c2c9595..000000000 --- a/emsdk +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 88c2c9595500de8c64699152fb4da3609aac159f diff --git a/privateer.wasm b/privateer.wasm deleted file mode 100755 index a4f513a7d..000000000 Binary files a/privateer.wasm and /dev/null differ diff --git a/privateer_webserver_dependencies b/privateer_webserver_dependencies deleted file mode 160000 index e7d0c2749..000000000 --- a/privateer_webserver_dependencies +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e7d0c2749083f9e02fd62f41549f4ce1d75166d6 diff --git a/src/privateer/utils/update_glycomics_database.py b/src/privateer/utils/update_glycomics_database.py index 25fb788ea..493612883 100644 --- a/src/privateer/utils/update_glycomics_database.py +++ b/src/privateer/utils/update_glycomics_database.py @@ -204,6 +204,14 @@ def find_glytoucan_id_in_glyconnect_data(glyconnect_data, glytoucan_id): with open(fullPath, "w", encoding="utf-8") as file: json.dump(jsonOutput, file, ensure_ascii=False, indent=4) + output = {} + for x in array_of_entries: + output[x["Sequence"]] = {"GlyToucan": x["AccessionNumber"], "GlyConnect": x["glyconnect"]} + + output_path = os.path.join(outputFolder,"privateer_glycomics_database_slim.json") + with open(output_path, "w") as output_file: + json.dump(output, output_file) + print( f"Finished downloading and appending GlyConnect data. \nAbsolute path of the output: {fullPath}" ) diff --git a/webapp/.eslintignore b/webapp/.eslintignore new file mode 100644 index 000000000..f3fef8cf1 --- /dev/null +++ b/webapp/.eslintignore @@ -0,0 +1,3 @@ +**/privateer.js +**/baby-gru/** +**.test.ts \ No newline at end of file diff --git a/webapp/.eslintrc.json b/webapp/.eslintrc.json new file mode 100644 index 000000000..422fd2348 --- /dev/null +++ b/webapp/.eslintrc.json @@ -0,0 +1,30 @@ +{ + "env": { + "browser": true, + "es2021": true + }, + "extends": ["standard-with-typescript", "plugin:react/recommended"], + "parserOptions": { + "ecmaVersion": "latest", + "sourceType": "module", + "project": ["./tsconfig.json"] + }, + "plugins": ["react"], + "rules": { + "@typescript-eslint/no-invalid-void-type": "off", + "@typescript-eslint/semi": "off", + "@typescript-eslint/explicit-function-return-type": "off", + "@typescript-eslint/ban-ts-comment": "off", + "no-tabs": "off", + "@typescript-eslint/no-unused-vars": [ + "warn", // or "error" + { + "argsIgnorePattern": "^_", + "varsIgnorePattern": "^_", + "caughtErrorsIgnorePattern": "^_" + } + ], + "@typescript-eslint/triple-slash-reference": "off", + "@typescript-eslint/no-misused-promises": "warn" + } +} diff --git a/webserver/.gitignore b/webapp/.gitignore similarity index 100% rename from webserver/.gitignore rename to webapp/.gitignore diff --git a/webapp/.prettierignore b/webapp/.prettierignore new file mode 100644 index 000000000..78599ef32 --- /dev/null +++ b/webapp/.prettierignore @@ -0,0 +1,3 @@ +node_modules +dist +public \ No newline at end of file diff --git a/webapp/.prettierrc b/webapp/.prettierrc new file mode 100644 index 000000000..f91488470 --- /dev/null +++ b/webapp/.prettierrc @@ -0,0 +1,6 @@ +{ + "trailingComma": "es5", + "tabWidth": 4, + "semi": true, + "singleQuote": true +} diff --git a/webapp/config-overrides.js b/webapp/config-overrides.js new file mode 100644 index 000000000..987b96d49 --- /dev/null +++ b/webapp/config-overrides.js @@ -0,0 +1,35 @@ +/* config-overrides.js */ +const ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin'); +const path = require('path'); + +module.exports = function override(config, env) { + config.resolve.plugins = config.resolve.plugins.filter( + (plugin) => !(plugin instanceof ModuleScopePlugin) + ); + config.resolve.fallback = { + fs: false, + path: false, + crypto: false, + }; + + const wasmExtensionRegExp = /\.wasm$/; + config.resolve.extensions.push('.wasm'); + config.module.rules.forEach((rule) => { + (rule.oneOf || []).forEach((oneOf) => { + if (oneOf.loader && oneOf.loader.indexOf('file-loader') >= 0) { + oneOf.exclude.push(wasmExtensionRegExp); + } + }); + }); + + // Add a dedicated loader for WASM + config.module.rules.push({ + test: wasmExtensionRegExp, + include: path.resolve(__dirname, 'src'), + use: [{ loader: require.resolve('wasm-loader'), options: {} }], + }); + + return config; + + return config; +}; diff --git a/webapp/index.html b/webapp/index.html new file mode 100644 index 000000000..659ef2827 --- /dev/null +++ b/webapp/index.html @@ -0,0 +1,39 @@ + + + + + + + + + + + Privateer + + +
+ + + diff --git a/webapp/jest-puppeteer.config.cjs b/webapp/jest-puppeteer.config.cjs new file mode 100644 index 000000000..336ae1bc3 --- /dev/null +++ b/webapp/jest-puppeteer.config.cjs @@ -0,0 +1,17 @@ +module.exports = { + launch: { + headless: true, + slowMo: 50, + devtools: true, + product: 'chrome', + args: [ + `--no-sandbox`, + `--disable-setuid-sandbox`, + '--window-size=1920,1080', + ], + }, + server: { + command: 'npx vite --port 5173 --mode development', + launchTimeout: 10000, + }, +}; diff --git a/webapp/jest.config.cjs b/webapp/jest.config.cjs new file mode 100644 index 000000000..8b8723770 --- /dev/null +++ b/webapp/jest.config.cjs @@ -0,0 +1,5 @@ +module.exports = { + preset: 'jest-puppeteer', + testMatch: ['**/*.test.ts'], + verbose: true, +}; diff --git a/webserver/moorhen-0.5.1.tgz b/webapp/moorhen-0.5.1.tgz similarity index 100% rename from webserver/moorhen-0.5.1.tgz rename to webapp/moorhen-0.5.1.tgz diff --git a/webapp/moorhen-0.6.7.tgz b/webapp/moorhen-0.6.7.tgz new file mode 100644 index 000000000..789079104 Binary files /dev/null and b/webapp/moorhen-0.6.7.tgz differ diff --git a/webapp/package-lock.json b/webapp/package-lock.json new file mode 100644 index 000000000..f0a1ee432 --- /dev/null +++ b/webapp/package-lock.json @@ -0,0 +1,13269 @@ +{ + "name": "privateer", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "privateer", + "version": "0.0.0", + "dependencies": { + "@types/jest": "^29.5.6", + "@types/node": "^20.8.9", + "jest": "^29.7.0", + "jest-puppeteer": "^9.0.2", + "moorhen": "file:moorhen-0.6.7.tgz", + "pako": "^2.1.0", + "plotly.js": "^2.26.0", + "puppeteer": "^21.6.1", + "react": "^18.2.0", + "react-collapsed": "^4.1.2", + "react-dom": "^18.2.0", + "react-grid-layout": "^1.4.4", + "react-icons": "^4.11.0", + "react-inlinesvg": "^3.0.2", + "react-plotly.js": "^2.6.0", + "react-redux": "^9.0.2", + "react-responsive-carousel": "^3.2.23", + "react-spinners": "^0.13.8", + "react-table": "^7.8.0", + "react-tooltip": "^5.25.0", + "serve": "^14.2.1", + "styled-components": "^6.0.6", + "vite-plugin-top-level-await": "^1.3.1", + "zlib": "^1.0.5" + }, + "devDependencies": { + "@types/pako": "^2.0.3", + "@types/react": "^18.2.33", + "@types/react-dom": "^18.2.14", + "@typescript-eslint/eslint-plugin": "^6.14.0", + "@vitejs/plugin-react-swc": "^3.3.2", + "autoprefixer": "^10.4.14", + "eslint": "^8.55.0", + "eslint-config-standard-with-typescript": "^42.0.0", + "eslint-plugin-import": "^2.29.0", + "eslint-plugin-n": "^16.4.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "postcss": "^8.4.27", + "prettier": "3.1.1", + "react-router-dom": "^6.20.0", + "tailwindcss": "^3.3.3", + "typescript": "^5.3.3", + "vite": "^4.4.5", + "vite-plugin-cross-origin-isolation": "^0.1.6", + "vite-plugin-wasm": "^3.2.2" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/cli": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.22.9.tgz", + "integrity": "sha512-nb2O7AThqRo7/E53EGiuAkMaRbb7J5Qp3RvN+dmua1U+kydm0oznkhqbTEG15yk26G/C3yL6OdZjzgl+DMXVVA==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.2.0", + "make-dir": "^2.1.0", + "slash": "^2.0.0" + }, + "bin": { + "babel": "bin/babel.js", + "babel-external-helpers": "bin/babel-external-helpers.js" + }, + "engines": { + "node": ">=6.9.0" + }, + "optionalDependencies": { + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", + "chokidar": "^3.4.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "dependencies": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/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==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/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==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/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==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/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==" + }, + "node_modules/@babel/code-frame/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==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/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==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", + "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.9.tgz", + "integrity": "sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.9", + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helpers": "^7.22.6", + "@babel/parser": "^7.22.7", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.8", + "@babel/types": "^7.22.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "dependencies": { + "@babel/types": "^7.23.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz", + "integrity": "sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz", + "integrity": "sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==", + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz", + "integrity": "sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz", + "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", + "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", + "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", + "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", + "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-wrap-function": "^7.22.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", + "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.9.tgz", + "integrity": "sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q==", + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz", + "integrity": "sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==", + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.6", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "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==", + "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==", + "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==", + "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==" + }, + "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==", + "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==", + "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==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", + "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", + "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-external-helpers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-external-helpers/-/plugin-external-helpers-7.22.5.tgz", + "integrity": "sha512-ngnNEWxmykPk82mH4ajZT0qTztr3Je6hrMuKAslZVM8G1YZTENJSYwrIGtt6KOtznug3exmAtF4so/nPqJuA4A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", + "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", + "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", + "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.10.tgz", + "integrity": "sha512-eueE8lvKVzq5wIObKK/7dvoeKJ+xc6TvRn6aysIjS6pSCeLy7S/eVi7pEQknZqyqvzaNKdDtem8nUNTBgDVR2g==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", + "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz", + "integrity": "sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", + "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz", + "integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz", + "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes/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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", + "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz", + "integrity": "sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", + "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", + "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz", + "integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", + "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz", + "integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", + "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", + "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz", + "integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", + "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz", + "integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", + "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", + "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", + "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", + "dependencies": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz", + "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", + "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", + "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz", + "integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz", + "integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz", + "integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==", + "dependencies": { + "@babel/compat-data": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", + "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz", + "integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.10.tgz", + "integrity": "sha512-MMkQqZAZ+MGj+jGTG3OTuhKeBpNcO+0oCEbrGNEaOmiEn+1MzRyQlYsruGiU8RTK3zV6XwrVJTmwiDOyYK6J9g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", + "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", + "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz", + "integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", + "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz", + "integrity": "sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz", + "integrity": "sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", + "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz", + "integrity": "sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", + "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", + "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", + "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", + "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", + "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", + "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", + "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.9.tgz", + "integrity": "sha512-BnVR1CpKiuD0iobHPaM1iLvcwPYN2uVFAqoLVSpEDKWuOikoCv5HbKLxclhKYUXlWkX86DoZGtqI4XhbOsyrMg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.9", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-typescript": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", + "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", + "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", + "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", + "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.10.tgz", + "integrity": "sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A==", + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.10", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.10", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.22.10", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.5", + "@babel/plugin-transform-classes": "^7.22.6", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.22.10", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.5", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.5", + "@babel/plugin-transform-for-of": "^7.22.5", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.5", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", + "@babel/plugin-transform-modules-systemjs": "^7.22.5", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", + "@babel/plugin-transform-numeric-separator": "^7.22.5", + "@babel/plugin-transform-object-rest-spread": "^7.22.5", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.10", + "@babel/plugin-transform-parameters": "^7.22.5", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.5", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.10", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.10", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "@babel/types": "^7.22.10", + "babel-plugin-polyfill-corejs2": "^0.4.5", + "babel-plugin-polyfill-corejs3": "^0.8.3", + "babel-plugin-polyfill-regenerator": "^0.5.2", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.5.tgz", + "integrity": "sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-transform-react-display-name": "^7.22.5", + "@babel/plugin-transform-react-jsx": "^7.22.5", + "@babel/plugin-transform-react-jsx-development": "^7.22.5", + "@babel/plugin-transform-react-pure-annotations": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz", + "integrity": "sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", + "@babel/plugin-transform-typescript": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" + }, + "node_modules/@babel/runtime": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.10.tgz", + "integrity": "sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + }, + "node_modules/@choojs/findup": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@choojs/findup/-/findup-0.2.1.tgz", + "integrity": "sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw==", + "dependencies": { + "commander": "^2.15.1" + }, + "bin": { + "findup": "bin/findup.js" + } + }, + "node_modules/@choojs/findup/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", + "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + }, + "node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.17.tgz", + "integrity": "sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.17.tgz", + "integrity": "sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.17.tgz", + "integrity": "sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.17.tgz", + "integrity": "sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.17.tgz", + "integrity": "sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.17.tgz", + "integrity": "sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.17.tgz", + "integrity": "sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.17.tgz", + "integrity": "sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.17.tgz", + "integrity": "sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.17.tgz", + "integrity": "sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.17.tgz", + "integrity": "sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.17.tgz", + "integrity": "sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.17.tgz", + "integrity": "sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.17.tgz", + "integrity": "sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.17.tgz", + "integrity": "sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.17.tgz", + "integrity": "sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.17.tgz", + "integrity": "sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.17.tgz", + "integrity": "sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.17.tgz", + "integrity": "sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.17.tgz", + "integrity": "sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.17.tgz", + "integrity": "sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.17.tgz", + "integrity": "sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==", + "cpu": [ + "x64" + ], + "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.6.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz", + "integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", + "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.2.tgz", + "integrity": "sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A==", + "dependencies": { + "@floating-ui/utils": "^0.1.3" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", + "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", + "dependencies": { + "@floating-ui/core": "^1.4.2", + "@floating-ui/utils": "^0.1.3" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", + "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.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": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "node_modules/@jest/transform/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@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==", + "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==", + "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==", + "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==" + }, + "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==", + "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==" + }, + "node_modules/@mapbox/geojson-rewind": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", + "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==", + "dependencies": { + "get-stream": "^6.0.1", + "minimist": "^1.2.6" + }, + "bin": { + "geojson-rewind": "geojson-rewind" + } + }, + "node_modules/@mapbox/geojson-types": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz", + "integrity": "sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==" + }, + "node_modules/@mapbox/jsonlint-lines-primitives": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", + "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@mapbox/mapbox-gl-supported": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz", + "integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==", + "peerDependencies": { + "mapbox-gl": ">=0.32.1 <2.0.0" + } + }, + "node_modules/@mapbox/point-geometry": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", + "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==" + }, + "node_modules/@mapbox/tiny-sdf": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.2.5.tgz", + "integrity": "sha512-cD8A/zJlm6fdJOk6DqPUV8mcpyJkRz2x2R+/fYcWDYG3oWbG7/L7Yl/WqQ1VZCjnL9OTIMAn6c+BC5Eru4sQEw==" + }, + "node_modules/@mapbox/unitbezier": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", + "integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==" + }, + "node_modules/@mapbox/vector-tile": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", + "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", + "dependencies": { + "@mapbox/point-geometry": "~0.1.0" + } + }, + "node_modules/@mapbox/whoots-js": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", + "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", + "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", + "optional": 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/@plotly/d3": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@plotly/d3/-/d3-3.8.1.tgz", + "integrity": "sha512-x49ThEu1FRA00kTso4Jdfyf2byaCPLBGmLjAYQz5OzaPyLUhHesX3/Nfv2OHEhynhdy2UB39DLXq6thYe2L2kg==" + }, + "node_modules/@plotly/d3-sankey": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@plotly/d3-sankey/-/d3-sankey-0.7.2.tgz", + "integrity": "sha512-2jdVos1N3mMp3QW0k2q1ph7Gd6j5PY1YihBrwpkFnKqO+cqtZq3AdEYUeSGXMeLsBDQYiqTVcihYfk8vr5tqhw==", + "dependencies": { + "d3-array": "1", + "d3-collection": "1", + "d3-shape": "^1.2.0" + } + }, + "node_modules/@plotly/d3-sankey-circular": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@plotly/d3-sankey-circular/-/d3-sankey-circular-0.33.1.tgz", + "integrity": "sha512-FgBV1HEvCr3DV7RHhDsPXyryknucxtfnLwPtCKKxdolKyTFYoLX/ibEfX39iFYIL7DYbVeRtP43dbFcrHNE+KQ==", + "dependencies": { + "d3-array": "^1.2.1", + "d3-collection": "^1.0.4", + "d3-shape": "^1.2.0", + "elementary-circuits-directed-graph": "^1.0.4" + } + }, + "node_modules/@plotly/point-cluster": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@plotly/point-cluster/-/point-cluster-3.1.9.tgz", + "integrity": "sha512-MwaI6g9scKf68Orpr1pHZ597pYx9uP8UEFXLPbsCmuw3a84obwz6pnMXGc90VhgDNeNiLEdlmuK7CPo+5PIxXw==", + "dependencies": { + "array-bounds": "^1.0.1", + "binary-search-bounds": "^2.0.4", + "clamp": "^1.0.1", + "defined": "^1.0.0", + "dtype": "^2.0.0", + "flatten-vertex-data": "^1.0.2", + "is-obj": "^1.0.1", + "math-log2": "^1.0.1", + "parse-rect": "^1.2.0", + "pick-by-alias": "^1.2.0" + } + }, + "node_modules/@puppeteer/browsers": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.9.0.tgz", + "integrity": "sha512-QwguOLy44YBGC8vuPP2nmpX4MUN2FzWbsnvZJtiCzecU3lHmVZkaC1tq6rToi9a200m8RzlVtDyxCS0UIDrxUg==", + "dependencies": { + "debug": "4.3.4", + "extract-zip": "2.0.1", + "progress": "2.0.3", + "proxy-agent": "6.3.1", + "tar-fs": "3.0.4", + "unbzip2-stream": "1.4.3", + "yargs": "17.7.2" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=16.3.0" + } + }, + "node_modules/@remix-run/router": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.13.0.tgz", + "integrity": "sha512-5dMOnVnefRsl4uRnAdoWjtVTdh8e6aZqgM4puy9nmEADH72ck+uXwzpJLEKE9Q6F8ZljNewLgmTfkxUrBdv4WA==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rollup/plugin-virtual": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-virtual/-/plugin-virtual-3.0.1.tgz", + "integrity": "sha512-fK8O0IL5+q+GrsMLuACVNk2x21g3yaw+sG2qn16SnUd3IlBsQyvWxLMGHmCmXRMecPjGRSZ/1LmZB4rjQm68og==", + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@sideway/address": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@swc/core": { + "version": "1.3.71", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.71.tgz", + "integrity": "sha512-T8dqj+SV/S8laW/FGmKHhCGw1o4GRUvJ2jHfbYgEwiJpeutT9uavHvG02t39HJvObBJ52EZs/krGtni4U5928Q==", + "hasInstallScript": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.3.71", + "@swc/core-darwin-x64": "1.3.71", + "@swc/core-linux-arm-gnueabihf": "1.3.71", + "@swc/core-linux-arm64-gnu": "1.3.71", + "@swc/core-linux-arm64-musl": "1.3.71", + "@swc/core-linux-x64-gnu": "1.3.71", + "@swc/core-linux-x64-musl": "1.3.71", + "@swc/core-win32-arm64-msvc": "1.3.71", + "@swc/core-win32-ia32-msvc": "1.3.71", + "@swc/core-win32-x64-msvc": "1.3.71" + }, + "peerDependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.3.71", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.71.tgz", + "integrity": "sha512-xOm0hDbcO2ShwQu1CjLtq3fwrG9AvhuE0s8vtBc8AsamYExHmR8bo6GQHJUtfPG1FVPk5a8xoQSd1fs09FQjLg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.3.71", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.71.tgz", + "integrity": "sha512-9sbDXBWgM22w/3Ll5kPhXMPkOiHRoqwMOyxLJBfGtIMnFlh5O+NRN3umRerK3pe4Q6/7hj2M5V+crEHYrXmuxg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.3.71", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.71.tgz", + "integrity": "sha512-boKdMZsfKvhBs0FDeqH7KQj0lfYe0wCtrL1lv50oYMEeLajY9o4U5xSmc61Sg4HRXjlbR6dlM2cFfL84t7NpAA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.3.71", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.71.tgz", + "integrity": "sha512-yDatyHYMiOVwhyIA/LBwknPs2CUtLYWEMzPZjgLc+56PbgPs3oiEbNWeVUND5onPrfDQgK7NK1y8JeiXZqTgGQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.3.71", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.71.tgz", + "integrity": "sha512-xAdCA0L/hoa0ULL5SR4sMZCxkWk7C90DOU7wJalNVG9qNWYICfq3G7AR0E9Ohphzqyahfb5QJED/nA7N0+XwbQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.3.71", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.71.tgz", + "integrity": "sha512-j94qLXP/yqhu2afnABAq/xrJIU8TEqcNkp1TlsAeO3R2nVLYL1w4XX8GW71SPnXmd2bwF102c3Cfv/2ilf2y2A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.3.71", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.71.tgz", + "integrity": "sha512-YiyU848ql6dLlmt0BHccGAaZ36Cf61VzCAMDKID/gd72snvzWcMCHrwSRW0gEFNXHsjBJrmNl+SLYZHfqoGwUA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.3.71", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.71.tgz", + "integrity": "sha512-1UsJ+6hnIRe/PVdgDPexvgGaN4KpBncT/bAOqlWc9XC7KeBXAWcGA08LrPUz2Ei00DJXzR622IGZVEYOHNkUOw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.3.71", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.71.tgz", + "integrity": "sha512-KnuI89+zojR9lDFELdQYZpxzPZ6pBfLwJfWTSGatnpL1ZHhIsV3tK1jwqIdJK1zkRxpBwc6p6FzSZdZwCSpnJw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.3.71", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.71.tgz", + "integrity": "sha512-Pcw7fFirpaBOZsU8fhO48ZCb7NxIjuLnLRPrHqWQ4Mapx1+w9ZNdGya2DKP9n8EAiUrJO20WDsrBNMT2MQSWkA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==" + }, + "node_modules/@turf/area": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/area/-/area-6.5.0.tgz", + "integrity": "sha512-xCZdiuojokLbQ+29qR6qoMD89hv+JAgWjLrwSEWL+3JV8IXKeNFl6XkEJz9HGkVpnXvQKJoRz4/liT+8ZZ5Jyg==", + "dependencies": { + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/bbox": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.5.0.tgz", + "integrity": "sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==", + "dependencies": { + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/centroid": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-6.5.0.tgz", + "integrity": "sha512-MwE1oq5E3isewPprEClbfU5pXljIK/GUOMbn22UM3IFPDJX0KeoyLNwghszkdmFp/qMGL/M13MMWvU+GNLXP/A==", + "dependencies": { + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/helpers": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.5.0.tgz", + "integrity": "sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==", + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/meta": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.5.0.tgz", + "integrity": "sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==", + "dependencies": { + "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-zONci81DZYCZjiLe0r6equvZut0b+dBRPBN5kBDjsONnutYNtJMoWQ9uR2RkL1gLG9NMTzvf+29e5RFfPbeKhQ==" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.2.tgz", + "integrity": "sha512-8toY6FgdltSdONav1XtUHl4LN1yTmLza+EuDazb/fEmRNCwjyqNVIQWs2IfC74IqjHkREs/nQ2FWq5kZU9IC0w==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.3.tgz", + "integrity": "sha512-1nESsePMBlf0RPRffLZi5ujYh7IH1BWL4y9pr+Bn3cJBdxz+RTP8bUFljLz9HvzhhOSWKdyBZ4DIivdL6rvgZg==", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.6", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.6.tgz", + "integrity": "sha512-/t9NnzkOpXb4Nfvg17ieHE6EeSjDS2SGSpNYfoLbUAeL/EOueU/RSdOWFpfQTXBEM7BguYW1XQ0EbM+6RlIh6w==", + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.8.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.9.tgz", + "integrity": "sha512-UzykFsT3FhHb1h7yD4CA4YhBHq545JC0YnEz41xkipN88eKQtL6rSgocL5tbAP6Ola9Izm/Aw4Ora8He4x0BHg==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/pako": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/pako/-/pako-2.0.3.tgz", + "integrity": "sha512-bq0hMV9opAcrmE0Byyo0fY3Ew4tgOevJmQ9grUhpXQhYfyLJ1Kqg3P33JT5fdbT2AjeAjR51zqqVjAL/HMkx7Q==", + "dev": true + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "devOptional": true + }, + "node_modules/@types/react": { + "version": "18.2.33", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.33.tgz", + "integrity": "sha512-v+I7S+hu3PIBoVkKGpSYYpiBT1ijqEzWpzQD62/jm4K74hPpSP7FF9BnKG6+fg2+62weJYkkBWDJlZt5JO/9hg==", + "devOptional": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.2.14", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.14.tgz", + "integrity": "sha512-V835xgdSVmyQmI1KLV2BEIUgqEuinxp9O4G6g3FqO/SqLac049E53aysv0oEFD2kHfejeKU+ZqL2bcFWj9gLAQ==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", + "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==", + "devOptional": true + }, + "node_modules/@types/semver": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", + "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.2.tgz", + "integrity": "sha512-g7CK9nHdwjK2n0ymT2CW698FuWJRIx+RP6embAzZ2Qi8/ilIrA1Imt2LVSeHUzKvpoi7BhmmQcXz95eS0f2JXw==" + }, + "node_modules/@types/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-n4sx2bqL0mW1tvDf/loQ+aMX7GQD3lc3fkCMC55VFNDu/vBOabO+LTIeXKM14xK0ppk5TUGcWRjiSpIlUpghKw==" + }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", + "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" + }, + "node_modules/@types/yargs": { + "version": "17.0.29", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.29.tgz", + "integrity": "sha512-nacjqA3ee9zRF/++a3FUY1suHTFKZeHba2n8WeDw9cCVdmzmHpIxyzOJBcpHvvEmS8E9KqWlSnWHUkOrkhWcvA==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.2", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.2.tgz", + "integrity": "sha512-5qcvofLPbfjmBfKaLfj/+f+Sbd6pN4zl7w7VSVI5uz7m9QZTuB2aZAa2uo1wHFBNN2x6g/SoTkXmd8mQnQF2Cw==" + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.14.0.tgz", + "integrity": "sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.14.0", + "@typescript-eslint/type-utils": "6.14.0", + "@typescript-eslint/utils": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/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/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/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/@typescript-eslint/parser": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.14.0.tgz", + "integrity": "sha512-QjToC14CKacd4Pa7JK4GeB/vHmWFJckec49FR4hmIRf97+KXole0T97xxu9IFiPxVQ1DBWrQ5wreLwAGwWAVQA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.14.0", + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/typescript-estree": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz", + "integrity": "sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.14.0.tgz", + "integrity": "sha512-x6OC9Q7HfYKqjnuNu5a7kffIYs3No30isapRBJl1iCHLitD8O0lFbRcVGiOcuyN837fqXzPZ1NS10maQzZMKqw==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "6.14.0", + "@typescript-eslint/utils": "6.14.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.14.0.tgz", + "integrity": "sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz", + "integrity": "sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/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/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/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/@typescript-eslint/utils": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.14.0.tgz", + "integrity": "sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.14.0", + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/typescript-estree": "6.14.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/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/@typescript-eslint/utils/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils/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/@typescript-eslint/visitor-keys": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz", + "integrity": "sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.14.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-react-swc": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.3.2.tgz", + "integrity": "sha512-VJFWY5sfoZerQRvJrh518h3AcQt6f/yTuWn4/TRB+dqmYU0NX1qz7qM5Wfd+gOQqUzQW4gxKqKN3KpE/P3+zrA==", + "dev": true, + "dependencies": { + "@swc/core": "^1.3.61" + }, + "peerDependencies": { + "vite": "^4" + } + }, + "node_modules/@zeit/schemas": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.29.0.tgz", + "integrity": "sha512-g5QiLIfbg3pLuYUJPlisNKY+epQJTcMDsOnVNkscrDP1oi7vmJnzOANYJI/1pZcVJ6umUkBv3aFtlg1UvUHGzA==" + }, + "node_modules/abs-svg-path": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", + "integrity": "sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "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/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "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/almost-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/almost-equal/-/almost-equal-1.1.0.tgz", + "integrity": "sha512-0V/PkoculFl5+0Lp47JoxUcO0xSxhIBvm+BxHdD/OgXNmdRpRHCFnKVuUoWyS9EzQP+otSGv0m9Lb4yVkQBn2A==" + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/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==" + }, + "node_modules/ansi-align/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==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "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==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "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/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-bounds": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-bounds/-/array-bounds-1.0.1.tgz", + "integrity": "sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ==" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-normalize": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array-normalize/-/array-normalize-1.1.4.tgz", + "integrity": "sha512-fCp0wKFLjvSPmCn4F5Tiw4M3lpMZoHlCjfcs7nNzuj3vqQQ1/a8cgB9DXcpDSn18c+coLnaW7rqfcYCvKbyJXg==", + "dependencies": { + "array-bounds": "^1.0.0" + } + }, + "node_modules/array-range": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-range/-/array-range-1.0.1.tgz", + "integrity": "sha512-shdaI1zT3CVNL2hnx9c0JMc0ZogGaxDs5e85akgHWKYa0yVbIyp06Ind3dVkTj/uuFrzaHBOyqFzo+VV6aXgtA==" + }, + "node_modules/array-rearrange": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/array-rearrange/-/array-rearrange-2.2.2.tgz", + "integrity": "sha512-UfobP5N12Qm4Qu4fwLDIi2v6+wZsSf6snYSxAMeKhrh37YGnNWZPRmVEKc/2wfms53TLQnzfpG8wCx2Y/6NG1w==" + }, + "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/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", + "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.1.3" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz", + "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/asynciterator.prototype": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", + "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + } + }, + "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/autoprefixer": { + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.4.tgz", + "integrity": "sha512-heJnIs6N4aa1eSthhN9M5ioILu8Wi8vmQW9iHQ9NUvfkJb0lEEDUiIdQNAuBtfUt3FxReaKdpQA5DbmMOqzF/A==", + "dependencies": { + "follow-redirects": "^1.15.4", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/b4a": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", + "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==" + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", + "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz", + "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.2", + "core-js-compat": "^3.31.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", + "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-styled-components": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz", + "integrity": "sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==", + "optional": true, + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "lodash": "^4.17.21", + "picomatch": "^2.3.1" + }, + "peerDependencies": { + "styled-components": ">= 2" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/basic-ftp": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.4.tgz", + "integrity": "sha512-8PzkB0arJFV4jJWSGOYR+OEic6aeKMu/osRhBULN6RY0ykby6LKhbmuQ5ublvaas5BOwboah5D87nrHyuh8PPA==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "devOptional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/binary-search-bounds": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.5.tgz", + "integrity": "sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA==" + }, + "node_modules/bit-twiddle": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz", + "integrity": "sha512-B9UhK0DKFZhoTFcfvAzhqsjStvGJp9vYWf3+6SNTtdSQnvIgfkHbgHrg/e4+TH71N2GDu8tpmCVoyfrL1d7ntA==" + }, + "node_modules/bitmap-sdf": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/bitmap-sdf/-/bitmap-sdf-1.0.4.tgz", + "integrity": "sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==" + }, + "node_modules/bl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", + "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/boxen": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.0.tgz", + "integrity": "sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^7.0.0", + "chalk": "^5.0.1", + "cli-boxes": "^3.0.0", + "string-width": "^5.1.2", + "type-fest": "^2.13.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/camelcase": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "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": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/builtins/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/builtins/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/builtins/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/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001517", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz", + "integrity": "sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==", + "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/canvas-fit": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/canvas-fit/-/canvas-fit-1.5.0.tgz", + "integrity": "sha512-onIcjRpz69/Hx5bB5HGbYKUF2uC6QT6Gp+pfpGm3A7mPfcluSLV5v4Zu+oflDUwLdUw0rLIBhUbi0v8hM4FJQQ==", + "dependencies": { + "element-size": "^1.1.1" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk-template": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/chalk-template?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "devOptional": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/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==", + "devOptional": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chromium-bidi": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.5.1.tgz", + "integrity": "sha512-dcCqOgq9fHKExc2R4JZs/oKbOghWpUNFAJODS8WKRtLhp3avtIH5UDCBrutdqZdh3pARogH8y1ObXm87emwb3g==", + "dependencies": { + "mitt": "3.0.1", + "urlpattern-polyfill": "9.0.0" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==" + }, + "node_modules/clamp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", + "integrity": "sha512-kgMuFyE78OC6Dyu3Dy7vcx4uy97EIbVxJB/B0eJ3bUNAkwdNcxYzgKltnyADiYwsR7SEqkkUPsEUT//OVS6XMA==" + }, + "node_modules/classnames": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", + "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clipboardy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-3.0.0.tgz", + "integrity": "sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==", + "dependencies": { + "arch": "^2.2.0", + "execa": "^5.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/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==" + }, + "node_modules/cliui/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==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/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==", + "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/clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==" + }, + "node_modules/color-alpha": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/color-alpha/-/color-alpha-1.0.4.tgz", + "integrity": "sha512-lr8/t5NPozTSqli+duAN+x+no/2WaKTeWvxhHGN+aXT6AJ8vPlzLa7UriyjWak0pSC2jHol9JgjBYnnHsGha9A==", + "dependencies": { + "color-parse": "^1.3.8" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-id": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/color-id/-/color-id-1.1.0.tgz", + "integrity": "sha512-2iRtAn6dC/6/G7bBIo0uupVrIne1NsQJvJxZOBCzQOfk7jRq97feaDZ3RdzuHakRXXnHGNwglto3pqtRx1sX0g==", + "dependencies": { + "clamp": "^1.0.1" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/color-normalize": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/color-normalize/-/color-normalize-1.5.0.tgz", + "integrity": "sha512-rUT/HDXMr6RFffrR53oX3HGWkDOP9goSAQGBkUaAYKjOE2JxozccdGyufageWDlInRAjm/jYPrf/Y38oa+7obw==", + "dependencies": { + "clamp": "^1.0.1", + "color-rgba": "^2.1.1", + "dtype": "^2.0.0" + } + }, + "node_modules/color-parse": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.3.8.tgz", + "integrity": "sha512-1Y79qFv0n1xair3lNMTNeoFvmc3nirMVBij24zbs1f13+7fPpQClMg5b4AuKXLt3szj7BRlHMCXHplkce6XlmA==", + "dependencies": { + "color-name": "^1.0.0", + "defined": "^1.0.0", + "is-plain-obj": "^1.1.0" + } + }, + "node_modules/color-rgba": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-2.1.1.tgz", + "integrity": "sha512-VaX97wsqrMwLSOR6H7rU1Doa2zyVdmShabKrPEIFywLlHoibgD3QW9Dw6fSqM4+H/LfjprDNAUUW31qEQcGzNw==", + "dependencies": { + "clamp": "^1.0.1", + "color-parse": "^1.3.8", + "color-space": "^1.14.6" + } + }, + "node_modules/color-space": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/color-space/-/color-space-1.16.0.tgz", + "integrity": "sha512-A6WMiFzunQ8KEPFmj02OnnoUnqhmSaHaZ/0LVFcPTdlvm8+3aMJ5x1HRHy3bDHPkovkf4sS0f4wsVvwk71fKkg==", + "dependencies": { + "hsluv": "^0.0.3", + "mumath": "^3.3.4" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/core-js-compat": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.0.tgz", + "integrity": "sha512-7a9a3D1k4UCVKnLhrgALyFcP7YCsLOQIxPd0dKjf/6GuPcgyiGP70ewWdCGrSK7evyhymi0qO4EqCmSJofDeYw==", + "dependencies": { + "browserslist": "^4.21.9" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/country-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/country-regex/-/country-regex-1.1.0.tgz", + "integrity": "sha512-iSPlClZP8vX7MC3/u6s3lrDuoQyhQukh5LyABJ3hvfzbQ3Yyayd4fp04zjLnfi267B/B2FkumcWWgrbban7sSA==" + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/cross-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/css-font": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-font/-/css-font-1.2.0.tgz", + "integrity": "sha512-V4U4Wps4dPDACJ4WpgofJ2RT5Yqwe1lEH6wlOOaIxMi0gTjdIijsc5FmxQlZ7ZZyKQkkutqqvULOp07l9c7ssA==", + "dependencies": { + "css-font-size-keywords": "^1.0.0", + "css-font-stretch-keywords": "^1.0.1", + "css-font-style-keywords": "^1.0.1", + "css-font-weight-keywords": "^1.0.0", + "css-global-keywords": "^1.0.1", + "css-system-font-keywords": "^1.0.0", + "pick-by-alias": "^1.2.0", + "string-split-by": "^1.0.0", + "unquote": "^1.1.0" + } + }, + "node_modules/css-font-size-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz", + "integrity": "sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q==" + }, + "node_modules/css-font-stretch-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz", + "integrity": "sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg==" + }, + "node_modules/css-font-style-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz", + "integrity": "sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg==" + }, + "node_modules/css-font-weight-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz", + "integrity": "sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA==" + }, + "node_modules/css-global-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-global-keywords/-/css-global-keywords-1.0.1.tgz", + "integrity": "sha512-X1xgQhkZ9n94WDwntqst5D/FKkmiU0GlJSFZSV3kLvyJ1WC5VeyoXDOuleUD+SIuH9C7W05is++0Woh0CGfKjQ==" + }, + "node_modules/css-system-font-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz", + "integrity": "sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA==" + }, + "node_modules/css-to-react-native": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/csscolorparser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", + "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/cwd": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/cwd/-/cwd-0.10.0.tgz", + "integrity": "sha512-YGZxdTTL9lmLkCUTpg4j0zQ7IhRB5ZmqNBbGCl3Tg6MP/d5/6sY7L5mmTjzbc6JKgVZYiqTQTNhPFsbXNGlRaA==", + "dependencies": { + "find-pkg": "^0.1.2", + "fs-exists-sync": "^0.1.0" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" + }, + "node_modules/d3-collection": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", + "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", + "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" + }, + "node_modules/d3-force": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", + "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", + "dependencies": { + "d3-collection": "1", + "d3-dispatch": "1", + "d3-quadtree": "1", + "d3-timer": "1" + } + }, + "node_modules/d3-format": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", + "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" + }, + "node_modules/d3-geo": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", + "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", + "dependencies": { + "d3-array": "1" + } + }, + "node_modules/d3-geo-projection": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-2.9.0.tgz", + "integrity": "sha512-ZULvK/zBn87of5rWAfFMc9mJOipeSo57O+BBitsKIXmU4rTVAnX1kSsJkE0R+TxY8pGNoM1nbyRRE7GYHhdOEQ==", + "dependencies": { + "commander": "2", + "d3-array": "1", + "d3-geo": "^1.12.0", + "resolve": "^1.1.10" + }, + "bin": { + "geo2svg": "bin/geo2svg", + "geograticule": "bin/geograticule", + "geoproject": "bin/geoproject", + "geoquantize": "bin/geoquantize", + "geostitch": "bin/geostitch" + } + }, + "node_modules/d3-geo-projection/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/d3-geo-projection/node_modules/resolve": { + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/d3-hierarchy": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", + "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" + }, + "node_modules/d3-quadtree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", + "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" + }, + "node_modules/d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "dependencies": { + "d3-path": "1" + } + }, + "node_modules/d3-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", + "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" + }, + "node_modules/d3-time-format": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", + "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", + "dependencies": { + "d3-time": "1" + } + }, + "node_modules/d3-timer": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", + "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" + }, + "node_modules/data-uri-to-buffer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.1.tgz", + "integrity": "sha512-MZd3VlchQkp8rdend6vrx7MmVDJzSNTBvghvKjirLkD+WTChA3KUf0jkE68Q4UyctNqI11zZO9/x2Yx+ub5Cvg==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.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==" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/degenerator/node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "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/detect-kerning": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-kerning/-/detect-kerning-2.1.2.tgz", + "integrity": "sha512-I3JIbrnKPAntNLl1I6TpSQQdQ4AutYzv/sKMFKbepawV/hlH0GmYKhUoOEMd4xqaUHT+Bm0f4127lh5qs1m1tw==" + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/devtools-protocol": { + "version": "0.0.1203626", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1203626.tgz", + "integrity": "sha512-nEzHZteIUZfGCZtTiS1fRpC8UZmsfD1SiyPvaUNvS13dvKf666OAm8YTi0+Ca3n1nLEyu49Cy4+dPWpaHFJk9g==" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "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/draw-svg-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/draw-svg-path/-/draw-svg-path-1.0.0.tgz", + "integrity": "sha512-P8j3IHxcgRMcY6sDzr0QvJDLzBnJJqpTG33UZ2Pvp8rw0apCHhJCWqYprqrXjrgHnJ6tuhP1iTJSAodPDHxwkg==", + "dependencies": { + "abs-svg-path": "~0.1.1", + "normalize-svg-path": "~0.1.0" + } + }, + "node_modules/dtype": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", + "integrity": "sha512-s2YVcLKdFGS0hpFqJaTwscsyt0E8nNFdmo73Ocd81xNPj4URI4rj6D60A+vFMIw7BXWlb4yRkEwfBqcZzPGiZg==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/dup": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dup/-/dup-1.0.0.tgz", + "integrity": "sha512-Bz5jxMMC0wgp23Zm15ip1x8IhYRqJvF3nFC0UInJUDkN1z4uNPk9jTnfCUJXbOGiQ1JbXLQsiV41Fb+HXcj5BA==" + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/earcut": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.474", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.474.tgz", + "integrity": "sha512-GsFT9gtxkFMkpHf13UeN/RFbWdLQVs4DMxA1aQv4xdUAT2qyXEoAQ0hodl2sUvWmztOlicM1UYnNPcoMdzQB5A==" + }, + "node_modules/element-size": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/element-size/-/element-size-1.1.1.tgz", + "integrity": "sha512-eaN+GMOq/Q+BIWy0ybsgpcYImjGIdNLyjLFJU4XsLHXYQao5jCNb36GyN6C2qwmDDYSfIBmKpPpr4VnBdLCsPQ==" + }, + "node_modules/elementary-circuits-directed-graph": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/elementary-circuits-directed-graph/-/elementary-circuits-directed-graph-1.3.1.tgz", + "integrity": "sha512-ZEiB5qkn2adYmpXGnJKkxT8uJHlW/mxmBpmeqawEHzPxh9HkLD4/1mFYX5l0On+f6rcPIt8/EWlRU2Vo3fX6dQ==", + "dependencies": { + "strongly-connected-components": "^1.0.1" + } + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz", + "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.1", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.1", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.0", + "safe-array-concat": "^1.0.0", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", + "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "dev": true, + "dependencies": { + "asynciterator.prototype": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.1", + "es-set-tostringtag": "^2.0.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.0.1" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es5-ext": { + "version": "0.10.62", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", + "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", + "hasInstallScript": true, + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/esbuild": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.17.tgz", + "integrity": "sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.17", + "@esbuild/android-arm64": "0.18.17", + "@esbuild/android-x64": "0.18.17", + "@esbuild/darwin-arm64": "0.18.17", + "@esbuild/darwin-x64": "0.18.17", + "@esbuild/freebsd-arm64": "0.18.17", + "@esbuild/freebsd-x64": "0.18.17", + "@esbuild/linux-arm": "0.18.17", + "@esbuild/linux-arm64": "0.18.17", + "@esbuild/linux-ia32": "0.18.17", + "@esbuild/linux-loong64": "0.18.17", + "@esbuild/linux-mips64el": "0.18.17", + "@esbuild/linux-ppc64": "0.18.17", + "@esbuild/linux-riscv64": "0.18.17", + "@esbuild/linux-s390x": "0.18.17", + "@esbuild/linux-x64": "0.18.17", + "@esbuild/netbsd-x64": "0.18.17", + "@esbuild/openbsd-x64": "0.18.17", + "@esbuild/sunos-x64": "0.18.17", + "@esbuild/win32-arm64": "0.18.17", + "@esbuild/win32-ia32": "0.18.17", + "@esbuild/win32-x64": "0.18.17" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "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/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", + "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.55.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "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.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-compat-utils": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz", + "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-config-standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", + "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", + "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" + } + ], + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", + "eslint-plugin-promise": "^6.0.0" + } + }, + "node_modules/eslint-config-standard-with-typescript": { + "version": "42.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-42.0.0.tgz", + "integrity": "sha512-m1/2g/Sicun1uFZOFigJVeOqo9fE7OkMsNtilcpHwdCdcGr21qsGqYiyxYSvvHfJwY7w5OTQH0hxk8sM2N5Ohg==", + "dev": true, + "dependencies": { + "@typescript-eslint/parser": "^6.4.0", + "eslint-config-standard": "17.1.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^6.4.0", + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", + "eslint-plugin-promise": "^6.0.0", + "typescript": "*" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-es-x": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.5.0.tgz", + "integrity": "sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.6.0", + "eslint-compat-utils": "^0.1.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": ">=8" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", + "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-n": { + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.4.0.tgz", + "integrity": "sha512-IkqJjGoWYGskVaJA7WQuN8PINIxc0N/Pk/jLeYT4ees6Fo5lAhpwGsYek6gS9tCUxgDC4zJ+OwY2bY/6/9OMKQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "builtins": "^5.0.1", + "eslint-plugin-es-x": "^7.5.0", + "get-tsconfig": "^4.7.0", + "ignore": "^5.2.4", + "is-builtin-module": "^3.2.1", + "is-core-module": "^2.12.1", + "minimatch": "^3.1.2", + "resolve": "^1.22.2", + "semver": "^7.5.3" + }, + "engines": { + "node": ">=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-n/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/eslint-plugin-n/node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-n/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-n/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/eslint-plugin-promise": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", + "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.33.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", + "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.12", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.4", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.8" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.3.tgz", + "integrity": "sha512-Hh0wv8bUNY877+sI0BlCUlsS0TYYQqvzEwJsJJPM2WF4RnTStSnSR3zdJYa2nPOJgg3UghXi54lVyMSmpCalzA==", + "dev": true, + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "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-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "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/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/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exenv": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", + "integrity": "sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==" + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-tilde": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", + "integrity": "sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==", + "dependencies": { + "os-homedir": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/expect-puppeteer": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/expect-puppeteer/-/expect-puppeteer-9.0.2.tgz", + "integrity": "sha512-nv3RD8MOStXOf4bLpr1wiqxPMLL7MwXvtMeZBtGvg5bubAHiHcYBcvDTJwkUjdOWz3scjOnOOl5z6KZakMobCw==", + "engines": { + "node": ">=16" + } + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/falafel": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.5.tgz", + "integrity": "sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==", + "dependencies": { + "acorn": "^7.1.1", + "isarray": "^2.0.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/falafel/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-equals": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz", + "integrity": "sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==" + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "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-isnumeric": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-isnumeric/-/fast-isnumeric-1.1.4.tgz", + "integrity": "sha512-1mM8qOr2LYz8zGaUdmiqRDiuue00Dxjgcb1NQR7TnhLVh6sQyngP9xvLo7Sl7LZpP/sk5eb+bcyWXw530NTBZw==", + "dependencies": { + "is-string-blank": "^1.0.1" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/fast-url-parser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, + "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/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "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==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-file-up": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-0.1.3.tgz", + "integrity": "sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==", + "dependencies": { + "fs-exists-sync": "^0.1.0", + "resolve-dir": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-pkg": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-0.1.2.tgz", + "integrity": "sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw==", + "dependencies": { + "find-file-up": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-process": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/find-process/-/find-process-1.4.7.tgz", + "integrity": "sha512-/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg==", + "dependencies": { + "chalk": "^4.0.0", + "commander": "^5.1.0", + "debug": "^4.1.1" + }, + "bin": { + "find-process": "bin/find-process.js" + } + }, + "node_modules/find-process/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "engines": { + "node": ">= 6" + } + }, + "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-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/flatten-vertex-data": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flatten-vertex-data/-/flatten-vertex-data-1.0.2.tgz", + "integrity": "sha512-BvCBFK2NZqerFTdMDgqfHBwxYWnxeCkwONsw6PvBMcUXqo8U/KDWwmXhqx1x2kLIg7DqIsJfOaJFOmlua3Lxuw==", + "dependencies": { + "dtype": "^2.0.0" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/font-atlas": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/font-atlas/-/font-atlas-2.1.0.tgz", + "integrity": "sha512-kP3AmvX+HJpW4w3d+PiPR2X6E1yvsBXt2yhuCw+yReO9F1WYhvZwx3c95DGZGwg9xYzDGrgJYa885xmVA+28Cg==", + "dependencies": { + "css-font": "^1.0.0" + } + }, + "node_modules/font-measure": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/font-measure/-/font-measure-1.2.2.tgz", + "integrity": "sha512-mRLEpdrWzKe9hbfaF3Qpr06TAjquuBVP5cHy4b3hyeNdjc9i0PO6HniGsX5vjL5OWv7+Bd++NiooNpT/s8BvIA==", + "dependencies": { + "css-font": "^1.2.0" + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "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/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/fs-exists-sync": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", + "integrity": "sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/geojson-vt": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", + "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==" + }, + "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==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-canvas-context": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz", + "integrity": "sha512-LnpfLf/TNzr9zVOGiIY6aKCz8EKuXmlYNV7CM2pUjBa/B+c2I15tS7KLySep75+FuerJdmArvJLcsAXWEy2H0A==" + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", + "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/get-uri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.2.tgz", + "integrity": "sha512-5KLucCJobh8vBY1K07EFV4+cPZH3mrV9YeAruUseCQKHB58SGjjT2l9/eA9LD082IiuMjSlFJEcdJ27TXvbZNw==", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.0", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/gl-mat4": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gl-mat4/-/gl-mat4-1.2.0.tgz", + "integrity": "sha512-sT5C0pwB1/e9G9AvAoLsoaJtbMGjfd/jfxo8jMCKqYYEnjZuFvqV5rehqar0538EmssjdDeiEWnKyBSTw7quoA==" + }, + "node_modules/gl-matrix": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", + "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" + }, + "node_modules/gl-text": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/gl-text/-/gl-text-1.3.1.tgz", + "integrity": "sha512-/f5gcEMiZd+UTBJLTl3D+CkCB/0UFGTx3nflH8ZmyWcLkZhsZ1+Xx5YYkw2rgWAzgPeE35xCqBuHSoMKQVsR+w==", + "dependencies": { + "bit-twiddle": "^1.0.2", + "color-normalize": "^1.5.0", + "css-font": "^1.2.0", + "detect-kerning": "^2.1.2", + "es6-weak-map": "^2.0.3", + "flatten-vertex-data": "^1.0.2", + "font-atlas": "^2.1.0", + "font-measure": "^1.2.2", + "gl-util": "^3.1.2", + "is-plain-obj": "^1.1.0", + "object-assign": "^4.1.1", + "parse-rect": "^1.2.0", + "parse-unit": "^1.0.1", + "pick-by-alias": "^1.2.0", + "regl": "^2.0.0", + "to-px": "^1.0.1", + "typedarray-pool": "^1.1.0" + } + }, + "node_modules/gl-util": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/gl-util/-/gl-util-3.1.3.tgz", + "integrity": "sha512-dvRTggw5MSkJnCbh74jZzSoTOGnVYK+Bt+Ckqm39CVcl6+zSsxqWk4lr5NKhkqXHL6qvZAU9h17ZF8mIskY9mA==", + "dependencies": { + "is-browser": "^2.0.1", + "is-firefox": "^1.0.3", + "is-plain-obj": "^1.1.0", + "number-is-integer": "^1.0.1", + "object-assign": "^4.1.0", + "pick-by-alias": "^1.2.0", + "weak-map": "^1.0.5" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "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/global-modules": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz", + "integrity": "sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA==", + "dependencies": { + "global-prefix": "^0.1.4", + "is-windows": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", + "integrity": "sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw==", + "dependencies": { + "homedir-polyfill": "^1.0.0", + "ini": "^1.3.4", + "is-windows": "^0.2.0", + "which": "^1.2.12" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/globby/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/glsl-inject-defines": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz", + "integrity": "sha512-W49jIhuDtF6w+7wCMcClk27a2hq8znvHtlGnrYkSWEr8tHe9eA2dcnohlcAmxLYBSpSSdzOkRdyPTrx9fw49+A==", + "dependencies": { + "glsl-token-inject-block": "^1.0.0", + "glsl-token-string": "^1.0.1", + "glsl-tokenizer": "^2.0.2" + } + }, + "node_modules/glsl-resolve": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/glsl-resolve/-/glsl-resolve-0.0.1.tgz", + "integrity": "sha512-xxFNsfnhZTK9NBhzJjSBGX6IOqYpvBHxxmo+4vapiljyGNCY0Bekzn0firQkQrazK59c1hYxMDxYS8MDlhw4gA==", + "dependencies": { + "resolve": "^0.6.1", + "xtend": "^2.1.2" + } + }, + "node_modules/glsl-resolve/node_modules/resolve": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz", + "integrity": "sha512-UHBY3viPlJKf85YijDUcikKX6tmF4SokIDp518ZDVT92JNDcG5uKIthaT/owt3Sar0lwtOafsQuwrg22/v2Dwg==" + }, + "node_modules/glsl-resolve/node_modules/xtend": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", + "integrity": "sha512-SLt5uylT+4aoXxXuwtQp5ZnMMzhDb1Xkg4pEqc00WUJCQifPfV9Ub1VrNhp9kXkrjZD2I2Hl8WnjP37jzZLPZw==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/glsl-token-assignments": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/glsl-token-assignments/-/glsl-token-assignments-2.0.2.tgz", + "integrity": "sha512-OwXrxixCyHzzA0U2g4btSNAyB2Dx8XrztY5aVUCjRSh4/D0WoJn8Qdps7Xub3sz6zE73W3szLrmWtQ7QMpeHEQ==" + }, + "node_modules/glsl-token-defines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glsl-token-defines/-/glsl-token-defines-1.0.0.tgz", + "integrity": "sha512-Vb5QMVeLjmOwvvOJuPNg3vnRlffscq2/qvIuTpMzuO/7s5kT+63iL6Dfo2FYLWbzuiycWpbC0/KV0biqFwHxaQ==", + "dependencies": { + "glsl-tokenizer": "^2.0.0" + } + }, + "node_modules/glsl-token-depth": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/glsl-token-depth/-/glsl-token-depth-1.1.2.tgz", + "integrity": "sha512-eQnIBLc7vFf8axF9aoi/xW37LSWd2hCQr/3sZui8aBJnksq9C7zMeUYHVJWMhFzXrBU7fgIqni4EhXVW4/krpg==" + }, + "node_modules/glsl-token-descope": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glsl-token-descope/-/glsl-token-descope-1.0.2.tgz", + "integrity": "sha512-kS2PTWkvi/YOeicVjXGgX5j7+8N7e56srNDEHDTVZ1dcESmbmpmgrnpjPcjxJjMxh56mSXYoFdZqb90gXkGjQw==", + "dependencies": { + "glsl-token-assignments": "^2.0.0", + "glsl-token-depth": "^1.1.0", + "glsl-token-properties": "^1.0.0", + "glsl-token-scope": "^1.1.0" + } + }, + "node_modules/glsl-token-inject-block": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/glsl-token-inject-block/-/glsl-token-inject-block-1.1.0.tgz", + "integrity": "sha512-q/m+ukdUBuHCOtLhSr0uFb/qYQr4/oKrPSdIK2C4TD+qLaJvqM9wfXIF/OOBjuSA3pUoYHurVRNao6LTVVUPWA==" + }, + "node_modules/glsl-token-properties": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/glsl-token-properties/-/glsl-token-properties-1.0.1.tgz", + "integrity": "sha512-dSeW1cOIzbuUoYH0y+nxzwK9S9O3wsjttkq5ij9ZGw0OS41BirKJzzH48VLm8qLg+au6b0sINxGC0IrGwtQUcA==" + }, + "node_modules/glsl-token-scope": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/glsl-token-scope/-/glsl-token-scope-1.1.2.tgz", + "integrity": "sha512-YKyOMk1B/tz9BwYUdfDoHvMIYTGtVv2vbDSLh94PT4+f87z21FVdou1KNKgF+nECBTo0fJ20dpm0B1vZB1Q03A==" + }, + "node_modules/glsl-token-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/glsl-token-string/-/glsl-token-string-1.0.1.tgz", + "integrity": "sha512-1mtQ47Uxd47wrovl+T6RshKGkRRCYWhnELmkEcUAPALWGTFe2XZpH3r45XAwL2B6v+l0KNsCnoaZCSnhzKEksg==" + }, + "node_modules/glsl-token-whitespace-trim": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glsl-token-whitespace-trim/-/glsl-token-whitespace-trim-1.0.0.tgz", + "integrity": "sha512-ZJtsPut/aDaUdLUNtmBYhaCmhIjpKNg7IgZSfX5wFReMc2vnj8zok+gB/3Quqs0TsBSX/fGnqUUYZDqyuc2xLQ==" + }, + "node_modules/glsl-tokenizer": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/glsl-tokenizer/-/glsl-tokenizer-2.1.5.tgz", + "integrity": "sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==", + "dependencies": { + "through2": "^0.6.3" + } + }, + "node_modules/glsl-tokenizer/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/glsl-tokenizer/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/glsl-tokenizer/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + }, + "node_modules/glsl-tokenizer/node_modules/through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", + "dependencies": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + }, + "node_modules/glslify": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/glslify/-/glslify-7.1.1.tgz", + "integrity": "sha512-bud98CJ6kGZcP9Yxcsi7Iz647wuDz3oN+IZsjCRi5X1PI7t/xPKeL0mOwXJjo+CRZMqvq0CkSJiywCcY7kVYog==", + "dependencies": { + "bl": "^2.2.1", + "concat-stream": "^1.5.2", + "duplexify": "^3.4.5", + "falafel": "^2.1.0", + "from2": "^2.3.0", + "glsl-resolve": "0.0.1", + "glsl-token-whitespace-trim": "^1.0.0", + "glslify-bundle": "^5.0.0", + "glslify-deps": "^1.2.5", + "minimist": "^1.2.5", + "resolve": "^1.1.5", + "stack-trace": "0.0.9", + "static-eval": "^2.0.5", + "through2": "^2.0.1", + "xtend": "^4.0.0" + }, + "bin": { + "glslify": "bin.js" + } + }, + "node_modules/glslify-bundle": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-5.1.1.tgz", + "integrity": "sha512-plaAOQPv62M1r3OsWf2UbjN0hUYAB7Aph5bfH58VxJZJhloRNbxOL9tl/7H71K7OLJoSJ2ZqWOKk3ttQ6wy24A==", + "dependencies": { + "glsl-inject-defines": "^1.0.1", + "glsl-token-defines": "^1.0.0", + "glsl-token-depth": "^1.1.1", + "glsl-token-descope": "^1.0.2", + "glsl-token-scope": "^1.1.1", + "glsl-token-string": "^1.0.1", + "glsl-token-whitespace-trim": "^1.0.0", + "glsl-tokenizer": "^2.0.2", + "murmurhash-js": "^1.0.0", + "shallow-copy": "0.0.1" + } + }, + "node_modules/glslify-deps": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/glslify-deps/-/glslify-deps-1.3.2.tgz", + "integrity": "sha512-7S7IkHWygJRjcawveXQjRXLO2FTjijPDYC7QfZyAQanY+yGLCFHYnPtsGT9bdyHiwPTw/5a1m1M9hamT2aBpag==", + "dependencies": { + "@choojs/findup": "^0.2.0", + "events": "^3.2.0", + "glsl-resolve": "0.0.1", + "glsl-tokenizer": "^2.0.0", + "graceful-fs": "^4.1.2", + "inherits": "^2.0.1", + "map-limit": "0.0.1", + "resolve": "^1.0.0" + } + }, + "node_modules/glslify-deps/node_modules/resolve": { + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glslify/node_modules/resolve": { + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/grid-index": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", + "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-hover": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-hover/-/has-hover-1.0.1.tgz", + "integrity": "sha512-0G6w7LnlcpyDzpeGUTuT0CEw05+QlMuGVk1IHNAlHrGJITGodjZu3x8BNDUMfKJSZXNB2ZAclqc1bvrd+uUpfg==", + "dependencies": { + "is-browser": "^2.0.1" + } + }, + "node_modules/has-passive-events": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-passive-events/-/has-passive-events-1.0.0.tgz", + "integrity": "sha512-2vSj6IeIsgvsRMyeQ0JaCX5Q3lX4zMn5HpoVc7MEhQ6pv8Iq9rsXjsp+E5ZwaT7T0xhMT0KmU8gtt1EFVdbJiw==", + "dependencies": { + "is-browser": "^2.0.1" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hsluv": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/hsluv/-/hsluv-0.0.3.tgz", + "integrity": "sha512-08iL2VyCRbkQKBySkSh6m8zMUa3sADAxGVWs3Z1aPcUkTJeK0ETG4Fc27tEmQBGUAXZjIsXOZqBvacuVNSC/fQ==" + }, + "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==" + }, + "node_modules/http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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/ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "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==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "devOptional": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-browser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-browser/-/is-browser-2.1.0.tgz", + "integrity": "sha512-F5rTJxDQ2sW81fcfOR1GnCXT6sVJC104fCyfj+mjpwNEwaPYSn5fte5jiHmBg3DHsIoL/l8Kvw5VN5SsTRcRFQ==" + }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-firefox": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-firefox/-/is-firefox-1.0.3.tgz", + "integrity": "sha512-6Q9ITjvWIm0Xdqv+5U12wgOKEM2KoBw4Y926m0OFkvlCxnbG94HKAsVz8w3fWcfAS5YA2fJORXX1dLrkprCCxA==", + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "devOptional": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-iexplorer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-iexplorer/-/is-iexplorer-1.0.0.tgz", + "integrity": "sha512-YeLzceuwg3K6O0MLM3UyUUjKAlyULetwryFp1mHy1I5PfArK0AEqlfa+MR4gkJjcbuJXoDJCvXbyqZVf5CR2Sg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-mobile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-4.0.0.tgz", + "integrity": "sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew==" + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "engines": { + "node": ">=0.10.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": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-port-reachable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-4.0.0.tgz", + "integrity": "sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string-blank": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-string-blank/-/is-string-blank-1.0.1.tgz", + "integrity": "sha512-9H+ZBCVs3L9OYqv8nuUAzpcT9OTgMD1yAWrG7ihlnibdkbtB850heAmYWxHuXc4CHy4lKeK69tN+ny1K7gBIrw==" + }, + "node_modules/is-svg-path": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-svg-path/-/is-svg-path-1.0.2.tgz", + "integrity": "sha512-Lj4vePmqpPR1ZnRctHv8ltSh1OrSxHkhUkd7wi+VQdcdP15/KvQFyk7LhNuM7ZW0EVbJz8kZLVmL9quLrfq4Kg==" + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", + "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/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==", + "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.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-dev-server": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-9.0.2.tgz", + "integrity": "sha512-Zc/JB0IlNNrpXkhBw+h86cGrde/Mey52KvF+FER2eyrtYJTHObOwW7Iarxm3rPyTKby5+3Y2QZtl8pRz/5GCxg==", + "dependencies": { + "chalk": "^4.1.2", + "cwd": "^0.10.0", + "find-process": "^1.4.7", + "prompts": "^2.4.2", + "spawnd": "^9.0.2", + "tree-kill": "^1.2.2", + "wait-on": "^7.2.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-puppeteer": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jest-environment-puppeteer/-/jest-environment-puppeteer-9.0.2.tgz", + "integrity": "sha512-t7+W4LUiPoOz+xpKREgnu6IElMuRthOWTkrThDZqVKPmLhwbK3yx7OCiX8xT1Pw/Cv5WnSoNhwtN7czdCC3fQg==", + "dependencies": { + "chalk": "^4.1.2", + "cosmiconfig": "^8.3.6", + "deepmerge": "^4.3.1", + "jest-dev-server": "^9.0.2", + "jest-environment-node": "^29.7.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-puppeteer": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jest-puppeteer/-/jest-puppeteer-9.0.2.tgz", + "integrity": "sha512-ZB0K/tH+0e7foRRn+VpKIufvkW1by8l7ifh62VOdOh5ijEf7yt8W2/PcBNNwP0RLm46AytiBkrIEenvWhxcBRQ==", + "dependencies": { + "expect-puppeteer": "^9.0.2", + "jest-environment-puppeteer": "^9.0.2" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "puppeteer": ">=19" + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve/node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/jest-resolve/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.19.1.tgz", + "integrity": "sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/joi": { + "version": "17.11.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz", + "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", + "dependencies": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "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==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.4.tgz", + "integrity": "sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/kdbush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", + "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==" + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "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/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "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": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/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==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/map-limit": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", + "integrity": "sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==", + "dependencies": { + "once": "~1.3.0" + } + }, + "node_modules/map-limit/node_modules/once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/mapbox-gl": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.10.1.tgz", + "integrity": "sha512-0aHt+lFUpYfvh0kMIqXqNXqoYMuhuAsMlw87TbhWrw78Tx2zfuPI0Lx31/YPUgJ+Ire0tzQ4JnuBL7acDNXmMg==", + "dependencies": { + "@mapbox/geojson-rewind": "^0.5.0", + "@mapbox/geojson-types": "^1.0.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/mapbox-gl-supported": "^1.5.0", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/tiny-sdf": "^1.1.1", + "@mapbox/unitbezier": "^0.0.0", + "@mapbox/vector-tile": "^1.3.1", + "@mapbox/whoots-js": "^3.1.0", + "csscolorparser": "~1.0.3", + "earcut": "^2.2.2", + "geojson-vt": "^3.2.1", + "gl-matrix": "^3.2.1", + "grid-index": "^1.1.0", + "minimist": "^1.2.5", + "murmurhash-js": "^1.0.0", + "pbf": "^3.2.1", + "potpack": "^1.0.1", + "quickselect": "^2.0.0", + "rw": "^1.3.3", + "supercluster": "^7.0.0", + "tinyqueue": "^2.0.3", + "vt-pbf": "^3.1.1" + }, + "engines": { + "node": ">=6.4.0" + } + }, + "node_modules/math-log2": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-log2/-/math-log2-1.0.1.tgz", + "integrity": "sha512-9W0yGtkaMAkf74XGYVy4Dqw3YUMnTNB2eeiw9aQbUl4A3KmuCEHTt2DgAB07ENzOYAjsYSAYufkAq0Zd+jU7zA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "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==", + "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/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=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==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + }, + "node_modules/moorhen": { + "version": "0.6.7", + "resolved": "file:moorhen-0.6.7.tgz", + "integrity": "sha512-zEb8tvbTL42I9KHt7nava3+APheHS60NMCYJTWplvojsX4uc4k0IF+xTDcdVK9Mq+pWrpGbB22PnINfi/YC3og==", + "license": "BSD-3-Clause" + }, + "node_modules/mouse-change": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/mouse-change/-/mouse-change-1.4.0.tgz", + "integrity": "sha512-vpN0s+zLL2ykyyUDh+fayu9Xkor5v/zRD9jhSqjRS1cJTGS0+oakVZzNm5n19JvvEj0you+MXlYTpNxUDQUjkQ==", + "dependencies": { + "mouse-event": "^1.0.0" + } + }, + "node_modules/mouse-event": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/mouse-event/-/mouse-event-1.0.5.tgz", + "integrity": "sha512-ItUxtL2IkeSKSp9cyaX2JLUuKk2uMoxBg4bbOWVd29+CskYJR9BGsUqtXenNzKbnDshvupjUewDIYVrOB6NmGw==" + }, + "node_modules/mouse-event-offset": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mouse-event-offset/-/mouse-event-offset-3.0.2.tgz", + "integrity": "sha512-s9sqOs5B1Ykox3Xo8b3Ss2IQju4UwlW6LSR+Q5FXWpprJ5fzMLefIIItr3PH8RwzfGy6gxs/4GAmiNuZScE25w==" + }, + "node_modules/mouse-wheel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mouse-wheel/-/mouse-wheel-1.2.0.tgz", + "integrity": "sha512-+OfYBiUOCTWcTECES49neZwL5AoGkXE+lFjIvzwNCnYRlso+EnfvovcBxGoyQ0yQt806eSPjS675K0EwWknXmw==", + "dependencies": { + "right-now": "^1.0.0", + "signum": "^1.0.0", + "to-px": "^1.0.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==" + }, + "node_modules/mumath": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/mumath/-/mumath-3.3.4.tgz", + "integrity": "sha512-VAFIOG6rsxoc7q/IaY3jdjmrsuX9f15KlRLYTHmixASBZkZEKC1IFqE2BC5CdhXmK6WLM1Re33z//AGmeRI6FA==", + "deprecated": "Redundant dependency in your project.", + "dependencies": { + "almost-equal": "^1.1.0" + } + }, + "node_modules/murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/native-promise-only": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz", + "integrity": "sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg==" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "node_modules/needle": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-svg-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-0.1.0.tgz", + "integrity": "sha512-1/kmYej2iedi5+ROxkRESL/pI02pkg0OBnaR4hJkSIX6+ORzepwbuUXfrdZaPjysTsJInj0Rj5NuX027+dMBvA==" + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/number-is-integer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-integer/-/number-is-integer-1.0.1.tgz", + "integrity": "sha512-Dq3iuiFBkrbmuQjGFFF3zckXNCQoSD37/SdSbgcBailUx6knDvDwb5CympBgcoWHy36sfS12u74MHYkXyHq6bg==", + "dependencies": { + "is-finite": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/object.hasown": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", + "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "engines": { + "node": ">=0.10.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==", + "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-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pac-proxy-agent": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz", + "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==", + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "pac-resolver": "^7.0.0", + "socks-proxy-agent": "^8.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-resolver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.0.tgz", + "integrity": "sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==", + "dependencies": { + "degenerator": "^5.0.0", + "ip": "^1.1.8", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parenthesis": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/parenthesis/-/parenthesis-3.1.8.tgz", + "integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw==" + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-rect": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parse-rect/-/parse-rect-1.2.0.tgz", + "integrity": "sha512-4QZ6KYbnE6RTwg9E0HpLchUM9EZt6DnDxajFZZDSV4p/12ZJEvPO702DZpGvRYEPo00yKDys7jASi+/w7aO8LA==", + "dependencies": { + "pick-by-alias": "^1.2.0" + } + }, + "node_modules/parse-svg-path": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", + "integrity": "sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==" + }, + "node_modules/parse-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz", + "integrity": "sha512-hrqldJHokR3Qj88EIlV/kAyAi/G5R2+R56TBANxNMy0uPlYcttx0jnMW6Yx5KsKPSbC3KddM/7qQm3+0wEXKxg==" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-to-regexp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", + "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pbf": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", + "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", + "dependencies": { + "ieee754": "^1.1.12", + "resolve-protobuf-schema": "^2.1.0" + }, + "bin": { + "pbf": "bin/pbf" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "node_modules/pick-by-alias": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pick-by-alias/-/pick-by-alias-1.2.0.tgz", + "integrity": "sha512-ESj2+eBxhGrcA1azgHs7lARG5+5iLakc/6nlfbpjcLl00HuuUOIuORhYXN4D1HfvMSKuVtFQjAlnwi1JHEeDIw==" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" + } + }, + "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==", + "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==", + "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==", + "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==", + "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==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/plotly.js": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-2.26.0.tgz", + "integrity": "sha512-FRIi4Tek9SDZRv2y0ONuPjojkAnUFC7mIOgBeBw2qtBHYoPWGbpUqz4nWK8BoRhFYUg53lsrgGQWzntSeeX8IQ==", + "dependencies": { + "@plotly/d3": "3.8.1", + "@plotly/d3-sankey": "0.7.2", + "@plotly/d3-sankey-circular": "0.33.1", + "@turf/area": "^6.4.0", + "@turf/bbox": "^6.4.0", + "@turf/centroid": "^6.0.2", + "canvas-fit": "^1.5.0", + "color-alpha": "1.0.4", + "color-normalize": "1.5.0", + "color-parse": "1.3.8", + "color-rgba": "2.1.1", + "country-regex": "^1.1.0", + "d3-force": "^1.2.1", + "d3-format": "^1.4.5", + "d3-geo": "^1.12.1", + "d3-geo-projection": "^2.9.0", + "d3-hierarchy": "^1.1.9", + "d3-interpolate": "^3.0.1", + "d3-time": "^1.1.0", + "d3-time-format": "^2.2.3", + "fast-isnumeric": "^1.1.4", + "gl-mat4": "^1.2.0", + "gl-text": "^1.3.1", + "glslify": "^7.1.1", + "has-hover": "^1.0.1", + "has-passive-events": "^1.0.0", + "is-mobile": "^4.0.0", + "mapbox-gl": "1.10.1", + "mouse-change": "^1.4.0", + "mouse-event-offset": "^3.0.2", + "mouse-wheel": "^1.2.0", + "native-promise-only": "^0.8.1", + "parse-svg-path": "^0.1.2", + "point-in-polygon": "^1.1.0", + "polybooljs": "^1.2.0", + "probe-image-size": "^7.2.3", + "regl": "npm:@plotly/regl@^2.1.2", + "regl-error2d": "^2.0.12", + "regl-line2d": "^3.1.2", + "regl-scatter2d": "^3.2.9", + "regl-splom": "^1.0.14", + "strongly-connected-components": "^1.0.1", + "superscript-text": "^1.0.0", + "svg-path-sdf": "^1.1.3", + "tinycolor2": "^1.4.2", + "to-px": "1.0.1", + "topojson-client": "^3.1.0", + "webgl-context": "^2.2.0", + "world-calendars": "^1.0.3" + } + }, + "node_modules/point-in-polygon": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.1.0.tgz", + "integrity": "sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==" + }, + "node_modules/polybooljs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/polybooljs/-/polybooljs-1.2.0.tgz", + "integrity": "sha512-mKjR5nolISvF+q2BtC1fi/llpxBPTQ3wLWN8+ldzdw2Hocpc8C72ZqnamCM4Z6z+68GVVjkeM01WJegQmZ8MEQ==" + }, + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-import/node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "engines": { + "node": ">= 14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/potpack": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz", + "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==" + }, + "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": "3.1.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", + "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/probe-image-size": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.2.3.tgz", + "integrity": "sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==", + "dependencies": { + "lodash.merge": "^4.6.2", + "needle": "^2.5.2", + "stream-parser": "~0.3.1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/protocol-buffers-schema": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", + "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==" + }, + "node_modules/proxy-agent": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.1.tgz", + "integrity": "sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.0.1", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "engines": { + "node": ">=12" + } + }, + "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/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/puppeteer": { + "version": "21.6.1", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-21.6.1.tgz", + "integrity": "sha512-O+pbc61oj8ln6m8EJKncrsQFmytgRyFYERtk190PeLbJn5JKpmmynn2p1PiFrlhCitAQXLJ0MOy7F0TeyCRqBg==", + "hasInstallScript": true, + "dependencies": { + "@puppeteer/browsers": "1.9.0", + "cosmiconfig": "8.3.6", + "puppeteer-core": "21.6.1" + }, + "bin": { + "puppeteer": "lib/esm/puppeteer/node/cli.js" + }, + "engines": { + "node": ">=16.13.2" + } + }, + "node_modules/puppeteer-core": { + "version": "21.6.1", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-21.6.1.tgz", + "integrity": "sha512-0chaaK/RL9S1U3bsyR4fUeUfoj51vNnjWvXgG6DcsyMjwYNpLcAThv187i1rZCo7QhJP0wZN8plQkjNyrq2h+A==", + "dependencies": { + "@puppeteer/browsers": "1.9.0", + "chromium-bidi": "0.5.1", + "cross-fetch": "4.0.0", + "debug": "4.3.4", + "devtools-protocol": "0.0.1203626", + "ws": "8.15.1" + }, + "engines": { + "node": ">=16.13.2" + } + }, + "node_modules/pure-rand": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "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/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==" + }, + "node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-collapsed": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/react-collapsed/-/react-collapsed-4.1.2.tgz", + "integrity": "sha512-vusqVnW/VbFCKJx29KNTnjJrwCbV7k3bB/FiO9/0Fj7JNoNarkU1xU7yK4FZHqPW0Q2izB7o6fYzG16zgdDNMQ==", + "dependencies": { + "tiny-warning": "^1.0.3" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17 || ^18", + "react-dom": "^16.9.0 || ^17 || ^18" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-draggable": { + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.6.tgz", + "integrity": "sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw==", + "dependencies": { + "clsx": "^1.1.1", + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" + } + }, + "node_modules/react-draggable/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/react-easy-swipe": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/react-easy-swipe/-/react-easy-swipe-0.0.21.tgz", + "integrity": "sha512-OeR2jAxdoqUMHIn/nS9fgreI5hSpgGoL5ezdal4+oO7YSSgJR8ga+PkYGJrSrJ9MKlPcQjMQXnketrD7WNmNsg==", + "dependencies": { + "prop-types": "^15.5.8" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/react-from-dom": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/react-from-dom/-/react-from-dom-0.6.2.tgz", + "integrity": "sha512-qvWWTL/4xw4k/Dywd41RBpLQUSq97csuv15qrxN+izNeLYlD9wn5W8LspbfYe5CWbaSdkZ72BsaYBPQf2x4VbQ==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-grid-layout": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/react-grid-layout/-/react-grid-layout-1.4.4.tgz", + "integrity": "sha512-7+Lg8E8O8HfOH5FrY80GCIR1SHTn2QnAYKh27/5spoz+OHhMmEhU/14gIkRzJOtympDPaXcVRX/nT1FjmeOUmQ==", + "dependencies": { + "clsx": "^2.0.0", + "fast-equals": "^4.0.3", + "prop-types": "^15.8.1", + "react-draggable": "^4.4.5", + "react-resizable": "^3.0.5", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" + } + }, + "node_modules/react-icons": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.11.0.tgz", + "integrity": "sha512-V+4khzYcE5EBk/BvcuYRq6V/osf11ODUM2J8hg2FDSswRrGvqiYUYPRy4OdrWaQOBj4NcpJfmHZLNaD+VH0TyA==", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-inlinesvg": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/react-inlinesvg/-/react-inlinesvg-3.0.2.tgz", + "integrity": "sha512-BEzkpMGQwEY68fgaouY7ZWvAUPb8jbj7dE9iDbWZxstDhMuz9qfpxNgvGSENKcDMdpq/XHduSk/LAmNKin4nKw==", + "dependencies": { + "exenv": "^1.2.2", + "react-from-dom": "^0.6.2" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-plotly.js": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/react-plotly.js/-/react-plotly.js-2.6.0.tgz", + "integrity": "sha512-g93xcyhAVCSt9kV1svqG1clAEdL6k3U+jjuSzfTV7owaSU9Go6Ph8bl25J+jKfKvIGAEYpe4qj++WHJuc9IaeA==", + "dependencies": { + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "plotly.js": ">1.34.0", + "react": ">0.13.0" + } + }, + "node_modules/react-redux": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.0.3.tgz", + "integrity": "sha512-bilZStJN00qYqAXBpu/taUXv0tcuOrhBFD86fSERgYUm0+IHi/OQnqopbNalhgSo7+KMjSW5H/UTrWasXDvtug==", + "dependencies": { + "@types/use-sync-external-store": "^0.0.3", + "use-sync-external-store": "^1.0.0" + }, + "peerDependencies": { + "@types/react": "^18.2.25", + "react": "^18.0", + "react-native": "^0.69.0", + "redux": "^5.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react-native": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, + "node_modules/react-resizable": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/react-resizable/-/react-resizable-3.0.5.tgz", + "integrity": "sha512-vKpeHhI5OZvYn82kXOs1bC8aOXktGU5AmKAgaZS4F5JPburCtbmDPqE7Pzp+1kN4+Wb81LlF33VpGwWwtXem+w==", + "dependencies": { + "prop-types": "15.x", + "react-draggable": "^4.0.3" + }, + "peerDependencies": { + "react": ">= 16.3" + } + }, + "node_modules/react-responsive-carousel": { + "version": "3.2.23", + "resolved": "https://registry.npmjs.org/react-responsive-carousel/-/react-responsive-carousel-3.2.23.tgz", + "integrity": "sha512-pqJLsBaKHWJhw/ItODgbVoziR2z4lpcJg+YwmRlSk4rKH32VE633mAtZZ9kDXjy4wFO+pgUZmDKPsPe1fPmHCg==", + "dependencies": { + "classnames": "^2.2.5", + "prop-types": "^15.5.8", + "react-easy-swipe": "^0.0.21" + } + }, + "node_modules/react-router": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.20.0.tgz", + "integrity": "sha512-pVvzsSsgUxxtuNfTHC4IxjATs10UaAtvLGVSA1tbUE4GDaOSU1Esu2xF5nWLz7KPiMuW8BJWuPFdlGYJ7/rW0w==", + "dev": true, + "dependencies": { + "@remix-run/router": "1.13.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.20.0.tgz", + "integrity": "sha512-CbcKjEyiSVpA6UtCHOIYLUYn/UJfwzp55va4yEfpk7JBN3GPqWfHrdLkAvNCcpXr8QoihcDMuk0dzWZxtlB/mQ==", + "dev": true, + "dependencies": { + "@remix-run/router": "1.13.0", + "react-router": "6.20.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/react-spinners": { + "version": "0.13.8", + "resolved": "https://registry.npmjs.org/react-spinners/-/react-spinners-0.13.8.tgz", + "integrity": "sha512-3e+k56lUkPj0vb5NDXPVFAOkPC//XyhKPJjvcGjyMNPWsBKpplfeyialP74G7H7+It7KzhtET+MvGqbKgAqpZA==", + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-table": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/react-table/-/react-table-7.8.0.tgz", + "integrity": "sha512-hNaz4ygkZO4bESeFfnfOft73iBUj8K5oKi1EcSHPAibEydfsX2MyU6Z8KCr3mv3C9Kqqh71U+DhZkFvibbnPbA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.3 || ^17.0.0-0 || ^18.0.0" + } + }, + "node_modules/react-tooltip": { + "version": "5.25.1", + "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-5.25.1.tgz", + "integrity": "sha512-GDD0hrfbwGr2C6zEzVzzDzXSKeHM55cRFZQv2/EFmiFKVxWZk8hzOO5FNcwCpPyqVxQKUtYckReU5bXMd63alQ==", + "dependencies": { + "@floating-ui/dom": "^1.0.0", + "classnames": "^2.3.0" + }, + "peerDependencies": { + "react": ">=16.14.0", + "react-dom": ">=16.14.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "devOptional": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", + "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "dependencies": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==", + "dependencies": { + "rc": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/regl": { + "name": "@plotly/regl", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@plotly/regl/-/regl-2.1.2.tgz", + "integrity": "sha512-Mdk+vUACbQvjd0m/1JJjOOafmkp/EpmHjISsopEz5Av44CBq7rPC05HHNbYGKVyNUF2zmEoBS/TT0pd0SPFFyw==" + }, + "node_modules/regl-error2d": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/regl-error2d/-/regl-error2d-2.0.12.tgz", + "integrity": "sha512-r7BUprZoPO9AbyqM5qlJesrSRkl+hZnVKWKsVp7YhOl/3RIpi4UDGASGJY0puQ96u5fBYw/OlqV24IGcgJ0McA==", + "dependencies": { + "array-bounds": "^1.0.1", + "color-normalize": "^1.5.0", + "flatten-vertex-data": "^1.0.2", + "object-assign": "^4.1.1", + "pick-by-alias": "^1.2.0", + "to-float32": "^1.1.0", + "update-diff": "^1.1.0" + } + }, + "node_modules/regl-line2d": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/regl-line2d/-/regl-line2d-3.1.2.tgz", + "integrity": "sha512-nmT7WWS/WxmXAQMkgaMKWXaVmwJ65KCrjbqHGOUjjqQi6shfT96YbBOvelXwO9hG7/hjvbzjtQ2UO0L3e7YaXQ==", + "dependencies": { + "array-bounds": "^1.0.1", + "array-find-index": "^1.0.2", + "array-normalize": "^1.1.4", + "color-normalize": "^1.5.0", + "earcut": "^2.1.5", + "es6-weak-map": "^2.0.3", + "flatten-vertex-data": "^1.0.2", + "glslify": "^7.0.0", + "object-assign": "^4.1.1", + "parse-rect": "^1.2.0", + "pick-by-alias": "^1.2.0", + "to-float32": "^1.1.0" + } + }, + "node_modules/regl-scatter2d": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/regl-scatter2d/-/regl-scatter2d-3.2.9.tgz", + "integrity": "sha512-PNrXs+xaCClKpiB2b3HZ2j3qXQXhC5kcTh/Nfgx9rLO0EpEhab0BSQDqAsbdbpdf+pSHSJvbgitB7ulbGeQ+Fg==", + "dependencies": { + "@plotly/point-cluster": "^3.1.9", + "array-range": "^1.0.1", + "array-rearrange": "^2.2.2", + "clamp": "^1.0.1", + "color-id": "^1.1.0", + "color-normalize": "^1.5.0", + "color-rgba": "^2.1.1", + "flatten-vertex-data": "^1.0.2", + "glslify": "^7.0.0", + "is-iexplorer": "^1.0.0", + "object-assign": "^4.1.1", + "parse-rect": "^1.2.0", + "pick-by-alias": "^1.2.0", + "to-float32": "^1.1.0", + "update-diff": "^1.1.0" + } + }, + "node_modules/regl-splom": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/regl-splom/-/regl-splom-1.0.14.tgz", + "integrity": "sha512-OiLqjmPRYbd7kDlHC6/zDf6L8lxgDC65BhC8JirhP4ykrK4x22ZyS+BnY8EUinXKDeMgmpRwCvUmk7BK4Nweuw==", + "dependencies": { + "array-bounds": "^1.0.1", + "array-range": "^1.0.1", + "color-alpha": "^1.0.4", + "flatten-vertex-data": "^1.0.2", + "parse-rect": "^1.2.0", + "pick-by-alias": "^1.2.0", + "raf": "^3.4.1", + "regl-scatter2d": "^3.2.3" + } + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, + "node_modules/resolve": { + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz", + "integrity": "sha512-QxMPqI6le2u0dCLyiGzgy92kjkkL6zO0XyvHzjdTNH3zM6e5Hz3BwG6+aEyNgiQ5Xz6PwTwgQEj3U50dByPKIA==", + "dependencies": { + "expand-tilde": "^1.2.2", + "global-modules": "^0.2.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "dependencies": { + "protocol-buffers-schema": "^3.3.1" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "engines": { + "node": ">=10" + } + }, + "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/right-now": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz", + "integrity": "sha512-DA8+YS+sMIVpbsuKgy+Z67L9Lxb1p05mNxRpDPNksPDEFir4vmBlUtuN9jkTGn9YMMdlBuK7XQgFiz6ws+yhSg==" + }, + "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/rollup": { + "version": "3.26.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.26.3.tgz", + "integrity": "sha512-7Tin0C8l86TkpcMtXvQu6saWH93nhG3dGQ1/+l5V2TDMceTxO7kDiK6GzbfLWNNxqJXm591PcEZUozZm51ogwQ==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "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/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serve": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/serve/-/serve-14.2.1.tgz", + "integrity": "sha512-48er5fzHh7GCShLnNyPBRPEjs2I6QBozeGr02gaacROiyS/8ARADlj595j39iZXAqBbJHH/ivJJyPRWY9sQWZA==", + "dependencies": { + "@zeit/schemas": "2.29.0", + "ajv": "8.11.0", + "arg": "5.0.2", + "boxen": "7.0.0", + "chalk": "5.0.1", + "chalk-template": "0.4.0", + "clipboardy": "3.0.0", + "compression": "1.7.4", + "is-port-reachable": "4.0.0", + "serve-handler": "6.1.5", + "update-check": "1.5.4" + }, + "bin": { + "serve": "build/main.js" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/serve-handler": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", + "integrity": "sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==", + "dependencies": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "fast-url-parser": "1.1.3", + "mime-types": "2.1.18", + "minimatch": "3.1.2", + "path-is-inside": "1.0.2", + "path-to-regexp": "2.2.1", + "range-parser": "1.2.0" + } + }, + "node_modules/serve-handler/node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/serve/node_modules/chalk": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", + "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/serve/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==" + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/signum": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/signum/-/signum-1.0.0.tgz", + "integrity": "sha512-yodFGwcyt59XRh7w5W3jPcIQb3Bwi21suEfT7MAWnBX3iCdklJpgDgvGT9o04UonglZN5SNMfJFkHIR/jO8GHw==" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/socks/node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spawnd": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-9.0.2.tgz", + "integrity": "sha512-nl8DVHEDQ57IcKakzpjanspVChkMpGLuVwMR/eOn9cXE55Qr6luD2Kn06sA0ootRMdgrU4tInN6lA6ohTNvysw==", + "dependencies": { + "signal-exit": "^4.1.0", + "tree-kill": "^1.2.2" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/spawnd/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/stack-trace": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", + "integrity": "sha512-vjUc6sfgtgY0dxCdnc40mK6Oftjo9+2K8H/NG81TMhgL392FtiPA9tn9RLyTxXmTLPJPjF3VyzFp6bsWFLisMQ==", + "engines": { + "node": "*" + } + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/static-eval": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz", + "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==", + "dependencies": { + "escodegen": "^1.11.1" + } + }, + "node_modules/stream-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", + "integrity": "sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==", + "dependencies": { + "debug": "2" + } + }, + "node_modules/stream-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/stream-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" + }, + "node_modules/streamx": { + "version": "2.15.6", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.6.tgz", + "integrity": "sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==", + "dependencies": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-split-by": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string-split-by/-/string-split-by-1.0.0.tgz", + "integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==", + "dependencies": { + "parenthesis": "^3.1.5" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", + "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strongly-connected-components": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strongly-connected-components/-/strongly-connected-components-1.0.1.tgz", + "integrity": "sha512-i0TFx4wPcO0FwX+4RkLJi1MxmcTv90jNZgxMu9XRnMXMeFUY1VJlIoXpZunPUvUUqbCT1pg5PEkFqqpcaElNaA==" + }, + "node_modules/styled-components": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.0.6.tgz", + "integrity": "sha512-gkToLizJyiaRLGlPzfzvBY4DoC/fAKnRulstNXv/zXyvqKVaIQNHFbufjM1sspwqd77azcpnWuoZBL4O+oqxVw==", + "dependencies": { + "@babel/cli": "^7.21.0", + "@babel/core": "^7.21.0", + "@babel/helper-module-imports": "^7.18.6", + "@babel/plugin-external-helpers": "^7.18.6", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.7", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@babel/traverse": "^7.21.2", + "@emotion/is-prop-valid": "^1.2.1", + "@emotion/unitless": "^0.8.0", + "@types/stylis": "^4.0.2", + "css-to-react-native": "^3.2.0", + "csstype": "^3.1.2", + "postcss": "^8.4.23", + "shallowequal": "^1.1.0", + "stylis": "^4.3.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "babel-plugin-styled-components": ">= 2", + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0" + }, + "peerDependenciesMeta": { + "babel-plugin-styled-components": { + "optional": true + } + } + }, + "node_modules/stylis": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.0.tgz", + "integrity": "sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==" + }, + "node_modules/sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "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/supercluster": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz", + "integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==", + "dependencies": { + "kdbush": "^3.0.0" + } + }, + "node_modules/superscript-text": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/superscript-text/-/superscript-text-1.0.0.tgz", + "integrity": "sha512-gwu8l5MtRZ6koO0icVTlmN5pm7Dhh1+Xpe9O4x6ObMAsW+3jPbW14d1DsBq1F4wiI+WOFjXF35pslgec/G8yCQ==" + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-arc-to-cubic-bezier": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz", + "integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==" + }, + "node_modules/svg-path-bounds": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/svg-path-bounds/-/svg-path-bounds-1.0.2.tgz", + "integrity": "sha512-H4/uAgLWrppIC0kHsb2/dWUYSmb4GE5UqH06uqWBcg6LBjX2fu0A8+JrO2/FJPZiSsNOKZAhyFFgsLTdYUvSqQ==", + "dependencies": { + "abs-svg-path": "^0.1.1", + "is-svg-path": "^1.0.1", + "normalize-svg-path": "^1.0.0", + "parse-svg-path": "^0.1.2" + } + }, + "node_modules/svg-path-bounds/node_modules/normalize-svg-path": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-1.1.0.tgz", + "integrity": "sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg==", + "dependencies": { + "svg-arc-to-cubic-bezier": "^3.0.0" + } + }, + "node_modules/svg-path-sdf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/svg-path-sdf/-/svg-path-sdf-1.1.3.tgz", + "integrity": "sha512-vJJjVq/R5lSr2KLfVXVAStktfcfa1pNFjFOgyJnzZFXlO/fDZ5DmM8FpnSKKzLPfEYTVeXuVBTHF296TpxuJVg==", + "dependencies": { + "bitmap-sdf": "^1.0.0", + "draw-svg-path": "^1.0.0", + "is-svg-path": "^1.0.1", + "parse-svg-path": "^0.1.2", + "svg-path-bounds": "^1.0.1" + } + }, + "node_modules/tailwindcss": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", + "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.18.2", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tar-fs": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", + "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==", + "dependencies": { + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + } + }, + "node_modules/tar-stream": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", + "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "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==", + "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/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "node_modules/tinycolor2": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", + "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" + }, + "node_modules/tinyqueue": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", + "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + }, + "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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-float32": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/to-float32/-/to-float32-1.1.0.tgz", + "integrity": "sha512-keDnAusn/vc+R3iEiSDw8TOF7gPiTLdK1ArvWtYbJQiVfmRg6i/CAvbKq3uIS0vWroAC7ZecN3DjQKw3aSklUg==" + }, + "node_modules/to-px": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-px/-/to-px-1.0.1.tgz", + "integrity": "sha512-2y3LjBeIZYL19e5gczp14/uRWFDtDUErJPVN3VU9a7SJO+RjGRtYR47aMN2bZgGlxvW4ZcEz2ddUPVHXcMfuXw==", + "dependencies": { + "parse-unit": "^1.0.1" + } + }, + "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==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/topojson-client": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", + "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", + "dependencies": { + "commander": "2" + }, + "bin": { + "topo2geo": "bin/topo2geo", + "topomerge": "bin/topomerge", + "topoquantize": "bin/topoquantize" + } + }, + "node_modules/topojson-client/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "dev": true, + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "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-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "node_modules/typedarray-pool": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/typedarray-pool/-/typedarray-pool-1.2.0.tgz", + "integrity": "sha512-YTSQbzX43yvtpfRtIDAYygoYtgT+Rpjuxy9iOpczrjpXLgGoyG7aS5USJXV2d3nn8uHTeb9rXDvzS27zUg5KYQ==", + "dependencies": { + "bit-twiddle": "^1.0.0", + "dup": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "devOptional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" + }, + "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==", + "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/update-check": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.4.tgz", + "integrity": "sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==", + "dependencies": { + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0" + } + }, + "node_modules/update-diff": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-diff/-/update-diff-1.1.0.tgz", + "integrity": "sha512-rCiBPiHxZwT4+sBhEbChzpO5hYHjm91kScWgdHf4Qeafs6Ba7MBl+d9GlGv72bcTZQO0sLmtQS1pHSWoCLtN/A==" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urlpattern-polyfill": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-9.0.0.tgz", + "integrity": "sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g==" + }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "4.4.7", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.7.tgz", + "integrity": "sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw==", + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.26", + "rollup": "^3.25.2" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-cross-origin-isolation": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/vite-plugin-cross-origin-isolation/-/vite-plugin-cross-origin-isolation-0.1.6.tgz", + "integrity": "sha512-OY0naW9nPUDrKTffYnY7FRYXOgZdHoNwMGpPxUmj/n32mGZi01fcq+J536jkmwGWX7DLT95XBQVHHbrAJzTvrw==", + "dev": true + }, + "node_modules/vite-plugin-top-level-await": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/vite-plugin-top-level-await/-/vite-plugin-top-level-await-1.3.1.tgz", + "integrity": "sha512-55M1h4NAwkrpxPNOJIBzKZFihqLUzIgnElLSmPNPMR2Fn9+JHKaNg3sVX1Fq+VgvuBksQYxiD3OnwQAUu7kaPQ==", + "dependencies": { + "@rollup/plugin-virtual": "^3.0.1", + "@swc/core": "^1.3.10", + "uuid": "^9.0.0" + }, + "peerDependencies": { + "vite": ">=2.8" + } + }, + "node_modules/vite-plugin-wasm": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/vite-plugin-wasm/-/vite-plugin-wasm-3.2.2.tgz", + "integrity": "sha512-cdbBUNR850AEoMd5nvLmnyeq63CSfoP1ctD/L2vLk/5+wsgAPlAVAzUK5nGKWO/jtehNlrSSHLteN+gFQw7VOA==", + "dev": true, + "peerDependencies": { + "vite": "^2 || ^3 || ^4" + } + }, + "node_modules/vt-pbf": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", + "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", + "dependencies": { + "@mapbox/point-geometry": "0.1.0", + "@mapbox/vector-tile": "^1.3.1", + "pbf": "^3.2.1" + } + }, + "node_modules/wait-on": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz", + "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==", + "dependencies": { + "axios": "^1.6.1", + "joi": "^17.11.0", + "lodash": "^4.17.21", + "minimist": "^1.2.8", + "rxjs": "^7.8.1" + }, + "bin": { + "wait-on": "bin/wait-on" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/weak-map": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.8.tgz", + "integrity": "sha512-lNR9aAefbGPpHO7AEnY0hCFjz1eTkWCXYvkTRrTHs9qv8zJp+SkVYpzfLIFXQQiG3tVvbNFQgVg2bQS8YGgxyw==" + }, + "node_modules/webgl-context": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/webgl-context/-/webgl-context-2.2.0.tgz", + "integrity": "sha512-q/fGIivtqTT7PEoF07axFIlHNk/XCPaYpq64btnepopSWvKNFkoORlQYgqDigBIuGA1ExnFd/GnSUnBNEPQY7Q==", + "dependencies": { + "get-canvas-context": "^1.0.1" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dev": true, + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/widest-line": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "dependencies": { + "string-width": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/world-calendars": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/world-calendars/-/world-calendars-1.0.3.tgz", + "integrity": "sha512-sAjLZkBnsbHkHWVhrsCU5Sa/EVuf9QqgvrN8zyJ2L/F9FR9Oc6CvVK0674+PGAtmmmYQMH98tCUSO4QLQv3/TQ==", + "dependencies": { + "object-assign": "^4.1.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-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==" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ws": { + "version": "8.15.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.15.1.tgz", + "integrity": "sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "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==" + }, + "node_modules/yaml": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", + "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/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==" + }, + "node_modules/yargs/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==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zlib": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zlib/-/zlib-1.0.5.tgz", + "integrity": "sha512-40fpE2II+Cd3k8HWTWONfeKE2jL+P42iWJ1zzps5W51qcTsOUKM5Q5m2PFb0CLxlmFAaUuUdJGc3OfZy947v0w==", + "hasInstallScript": true, + "engines": { + "node": ">=0.2.0" + } + } + } +} diff --git a/webapp/package.json b/webapp/package.json new file mode 100644 index 000000000..bf68e3b3a --- /dev/null +++ b/webapp/package.json @@ -0,0 +1,65 @@ +{ + "name": "privateer", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "lint": "eslint --fix --ext .ts,.tsx ./src", + "preview": "vite preview --port 4000", + "prettier": "prettier --write .", + "test": "jest --verbose", + "testserver": "vite --port 5173" + }, + "dependencies": { + "@types/jest": "^29.5.6", + "@types/node": "^20.8.9", + "jest": "^29.7.0", + "jest-puppeteer": "^9.0.2", + "moorhen": "file:moorhen-0.6.7.tgz", + "pako": "^2.1.0", + "plotly.js": "^2.26.0", + "puppeteer": "^21.6.1", + "react": "^18.2.0", + "react-collapsed": "^4.1.2", + "react-dom": "^18.2.0", + "react-grid-layout": "^1.4.4", + "react-icons": "^4.11.0", + "react-inlinesvg": "^3.0.2", + "react-plotly.js": "^2.6.0", + "react-redux": "^9.0.2", + "react-responsive-carousel": "^3.2.23", + "react-spinners": "^0.13.8", + "react-table": "^7.8.0", + "react-tooltip": "^5.25.0", + "serve": "^14.2.1", + "styled-components": "^6.0.6", + "vite-plugin-top-level-await": "^1.3.1", + "zlib": "^1.0.5" + }, + "devDependencies": { + "@types/pako": "^2.0.3", + "@types/react": "^18.2.33", + "@types/react-dom": "^18.2.14", + "@typescript-eslint/eslint-plugin": "^6.14.0", + "@vitejs/plugin-react-swc": "^3.3.2", + "autoprefixer": "^10.4.14", + "eslint": "^8.55.0", + "eslint-config-standard-with-typescript": "^42.0.0", + "eslint-plugin-import": "^2.29.0", + "eslint-plugin-n": "^16.4.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.3", + "postcss": "^8.4.27", + "prettier": "3.1.1", + "react-router-dom": "^6.20.0", + "tailwindcss": "^3.3.3", + "typescript": "^5.3.3", + "vite": "^4.4.5", + "vite-plugin-cross-origin-isolation": "^0.1.6", + "vite-plugin-wasm": "^3.2.2" + } +} diff --git a/webserver/postcss.config.js b/webapp/postcss.config.js similarity index 96% rename from webserver/postcss.config.js rename to webapp/postcss.config.js index d41ad6355..49c0612d5 100644 --- a/webserver/postcss.config.js +++ b/webapp/postcss.config.js @@ -3,4 +3,4 @@ export default { tailwindcss: {}, autoprefixer: {}, }, -} +}; diff --git a/webserver/privateer.data b/webapp/privateer.data similarity index 100% rename from webserver/privateer.data rename to webapp/privateer.data diff --git a/webserver/public/Cremer-Pople.png b/webapp/public/Cremer-Pople.png similarity index 100% rename from webserver/public/Cremer-Pople.png rename to webapp/public/Cremer-Pople.png diff --git a/webapp/public/baby-gru/CootWorker.js b/webapp/public/baby-gru/CootWorker.js new file mode 100644 index 000000000..e76cf9529 --- /dev/null +++ b/webapp/public/baby-gru/CootWorker.js @@ -0,0 +1 @@ +var cootModule,molecules_container,ccp4Module,__assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var a,t=1,s=arguments.length;t0)for(var U=0;U0)for(U=0;Us)){S.push(B[0]),S.push(B[1]),S.push(B[2]),P=H.position,M.push(P[0]),M.push(P[1]),M.push(P[2]),L=H.colour,z.push(L[0]),z.push(L[1]),z.push(L[2]),z.push(L[3]);var V=H.orientation;T.push(V[0][0]),T.push(V[0][1]),T.push(V[0][2]),T.push(V[0][3]),T.push(V[1][0]),T.push(V[1][1]),T.push(V[1][2]),T.push(V[1][3]),T.push(V[2][0]),T.push(V[2][1]),T.push(V[2][2]),T.push(V[2][3]),T.push(V[3][0]),T.push(V[3][1]),T.push(V[3][2]),T.push(V[3][3]),H.delete()}}j.delete(),x.delete(),n.push(b),o.push(y),r.push(v),i.push(S),l.push(M),_.push(T),c.push(z),d.push(!0),f?u.push("PERFECT_SPHERES"):u.push("TRIANGLES")}m.delete();var K=simpleMeshToMeshData(p);return e.delete(),K.idx_tri.length>0&&K.idx_tri[0].length>0&&K.idx_tri[0][0].length>0?t?{prim_types:[u,K.prim_types[0]],idx_tri:[r,K.idx_tri[0]],vert_tri:[l,K.vert_tri[0]],norm_tri:[n,K.norm_tri[0]],col_tri:[c,K.col_tri[0]],instance_use_colors:[d,null],instance_sizes:[i,null],instance_origins:[l,null],instance_orientations:[_,null]}:{prim_types:[u,K.prim_types[0]],idx_tri:[r,K.idx_tri[0]],vert_tri:[o,K.vert_tri[0]],norm_tri:[n,K.norm_tri[0]],col_tri:[c,K.col_tri[0]],instance_use_colors:[d,null],instance_sizes:[i,null],instance_origins:[l,null],instance_orientations:[_,null]}:{prim_types:[u],idx_tri:[r],vert_tri:[o],norm_tri:[n],col_tri:[c],instance_use_colors:[d],instance_sizes:[i],instance_origins:[l],instance_orientations:[_]}},simpleMeshToMeshData=function(e,a){void 0===a&&(a=!1);for(var t=e.vertices,s=e.triangles,r=[],o=[],n=[],i=[],c=s.size(),l=0;l0){var a=e[0].label.split("/"),t=a[3].split("."),r=t[0],o=t[1];o=o||"";var n=new cootModule.moved_residue_t(a[2],parseInt(r),o);e.forEach((function(e){var a=new cootModule.moved_atom_t(e.name,e.alt_loc,e.x,e.y,e.z,-1);n.add_atom(a),a.delete()})),s.push_back(n),n.delete()}})),t+=molecules_container.new_positions_for_atoms_in_residues(e,s),s.delete(),t},read_mtz=function(e,a,t){var s=guid(),r=new Uint8Array(e);cootModule.FS_createDataFile(".","".concat(s,".mtz"),r,!0,!0);var o="./".concat(s,".mtz"),n=[o,t.F,t.PHI,"",!1,t.isDifference],i=molecules_container.read_mtz.apply(molecules_container,n);return cootModule.FS_unlink(o),i},associate_data_mtz_file_with_map=function(e,a,t,s,r){var o=new Uint8Array(a.data);cootModule.FS_createDataFile(".","".concat(a.fileName,".mtz"),o,!0,!0);var n="./".concat(a.fileName,".mtz"),i=[e,n,t,s,r];return molecules_container.associate_data_mtz_file_with_map.apply(molecules_container,i),n},read_ccp4_map=function(e,a,t){var s=guid(),r=new Uint8Array(e),o="";a.endsWith(".map.gz")?o="map.gz":a.endsWith(".mrc.gz")&&(o="mrc.gz"),cootModule.FS_createDataFile(".","".concat(s).concat(o),r,!0,!0);var n="./".concat(s).concat(o),i=[n,t],c=molecules_container.read_ccp4_map.apply(molecules_container,i);return cootModule.FS_unlink(n),c},setUserDefinedBondColours=function(e,a,t){void 0===t&&(t=!1);var s=new cootModule.MapIntFloat3,r=new cootModule.VectorStringUInt_pair;a.forEach((function(e,a){s.set(a+51,e.rgb);var t={first:e.cid,second:a+51};r.push_back(t)})),molecules_container.set_user_defined_bond_colours(e,s),molecules_container.set_user_defined_atom_colour_by_selection(e,r,t),r.delete(),s.delete()},doCootCommand=function(e){var a=e.returnType,t=e.command,s=e.commandArgs,r=e.messageId,o=e.myTimeStamp,n=e.message;try{var i=void 0;switch(t){case"shim_new_positions_for_residue_atoms":i=new_positions_for_residue_atoms.apply(void 0,s);break;case"shim_read_mtz":i=read_mtz.apply(void 0,s);break;case"shim_auto_open_mtz":i=auto_open_mtz.apply(void 0,s);break;case"shim_read_ccp4_map":i=read_ccp4_map.apply(void 0,s);break;case"shim_associate_data_mtz_file_with_map":i=associate_data_mtz_file_with_map.apply(void 0,s);break;case"shim_replace_map_by_mtz_from_file":i=replace_map_by_mtz_from_file.apply(void 0,s);break;case"shim_set_bond_colours":i=setUserDefinedBondColours.apply(void 0,s);break;default:i=molecules_container[t].apply(molecules_container,s)}var c=void 0;switch(a){case"instanced_mesh_perm":c=instancedMeshToMeshData(i,!0);break;case"histogram_info_t":c=histogramInfoToJSData(i);break;case"symmetry":c=symmetryToJSData(i);break;case"mmrrcc_stats":c=mmrrccStatsToJSArray(i);break;case"colour_rules":c=colourRulesToJSArray(i);break;case"instanced_mesh_perfect_spheres":c=instancedMeshToMeshData(i,!1,!0);break;case"instanced_mesh":c=instancedMeshToMeshData(i,!1,!1,5);break;case"mesh_perm":c=simpleMeshToMeshData(i,!0);break;case"mesh":c=simpleMeshToMeshData(i);break;case"lit_lines_mesh":c=simpleMeshToLineMeshData(i,!0);break;case"lines_mesh":c=simpleMeshToLineMeshData(i,!1);break;case"float_array":c=floatArrayToJSArray(i);break;case"int_array":c=intArrayToJSArray(i);break;case"auto_read_mtz_info_array":c=autoReadMtzInfoVectToJSArray(i);break;case"map_molecule_centre_info_t":c=mapMoleculeCentreInfoToJSObject(i);break;case"string_array":c=stringArrayToJSArray(i);break;case"residue_specs":c=residueSpecToJSArray(i);break;case"atom_specs":c=atomSpecToJSArray(i);break;case"ramachandran_data":c=ramachandranDataToJSArray(i,e.chainID);break;case"validation_data":c=validationDataToJSArray(i,e.chainID);break;case"interesting_places_data":c=interestingPlaceDataToJSArray(i);break;case"superpose_results":c=SuperposeResultsToJSArray(i);break;case"generic_3d_lines_bonds_box":c=linesBoxToJSArray(i);break;case"vector_hbond":c=vectorHBondToJSArray(i);break;case"status_instanced_mesh_pair":c={status:i.first,mesh:instancedMeshToMeshData(i.second,!1,!1,5)};break;case"void":c=null;break;default:c=i}return{messageId:r,messageSendTime:Date.now(),command:t,consoleMessage:"Completed ".concat(t," in ").concat(Date.now()-o," ms"),result:{status:"Completed",result:c}}}catch(e){return console.log(e),{messageId:r,myTimeStamp:o,message:n,consoleMessage:"EXCEPTION RAISED IN ".concat(t,", ").concat(e),result:{status:"Exception"}}}};onmessage=function(e){if("CootInitialize"===e.data.message)createRSRModule({locateFile:function(e){return"./wasm/".concat(e)},onRuntimeInitialized:function(){},mainScriptUrlOrBlob:"moorhen.js",print,printErr:print}).then((function(a){postMessage({consoleMessage:"Initialized molecules_container",message:e.data.message,messageId:e.data.messageId}),(molecules_container=new(cootModule=a).molecules_container_js(!1)).set_show_timings(!1),molecules_container.fill_rotamer_probability_tables(),molecules_container.set_map_sampling_rate(1.7),cootModule.FS.mkdir("COOT_BACKUP")})).catch((function(e){console.log(e),print(e)})),createCCP4Module({locateFile:function(e){return"./wasm/".concat(e)},onRuntimeInitialized:function(){},mainScriptUrlOrBlob:"web_example.js",print,printErr:print}).then((function(e){ccp4Module=e})).catch((function(e){console.log(e),print(e)}));else if("get_mtz_data"===e.data.message){var a=cootModule.FS.readFile(e.data.fileName,{encoding:"binary"});postMessage({messageId:e.data.messageId,myTimeStamp:e.data.myTimeStamp,consoleMessage:"Fetched mtz data for map ".concat(e.data.molNo),message:e.data.message,result:{molNo:e.data.molNo,mtzData:a}})}else if("get_map"===e.data.message){var t=guid(),s="./".concat(t,".map");molecules_container.writeCCP4Map(e.data.molNo,s);var r=cootModule.FS.readFile(s,{encoding:"binary"});cootModule.FS_unlink(s),postMessage({messageId:e.data.messageId,myTimeStamp:e.data.myTimeStamp,consoleMessage:"Fetched map of map ".concat(e.data.molNo),message:e.data.message,result:{molNo:e.data.molNo,mapData:r.buffer}})}else if("delete_file_name"===e.data.message){var o=cootModule.FS_unlink(e.data.fileName);postMessage({messageId:e.data.messageId,myTimeStamp:e.data.myTimeStamp,messageTag:"result",result:o})}else if("coot_command_list"===e.data.message){var n=e.data.commandList.map((function(a){return doCootCommand(__assign(__assign({},e.data),a))}));postMessage({messageId:e.data.messageId,resultList:n})}"coot_command"===e.data.message&&(o=doCootCommand(e.data),postMessage(o))}; \ No newline at end of file diff --git a/webserver/public/baby-gru/CootWorker.ts b/webapp/public/baby-gru/CootWorker.ts similarity index 73% rename from webserver/public/baby-gru/CootWorker.ts rename to webapp/public/baby-gru/CootWorker.ts index fd5c24dde..a921cbc34 100644 --- a/webserver/public/baby-gru/CootWorker.ts +++ b/webapp/public/baby-gru/CootWorker.ts @@ -359,6 +359,7 @@ const mapMoleculeCentreInfoToJSObject = (mapMoleculeCentreInfo: libcootApi.MapMo updatedCentre.z() ] as [number, number, number], success: mapMoleculeCentreInfo.success, + suggested_radius: mapMoleculeCentreInfo.suggested_radius, suggested_contour_level: mapMoleculeCentreInfo.suggested_contour_level } updatedCentre.delete() @@ -422,7 +423,7 @@ const symmetryToJSData = (symmetryDataPair: libcootApi.PairType, emscriptem.map>) => { +const mmrrccStatsToJSArray = (mmrrccStats: libcootApi.PairType, emscriptem.map>): libcootApi.MMRCCStatsJS => { const parseStats = (stats: emscriptem.map) => { let result: {resNum: number; insCode: string; modelNumber: number; chainId: string; n: number; correlation: number; }[] = [] const residueSpecs = stats.keys() @@ -458,6 +459,28 @@ const mmrrccStatsToJSArray = (mmrrccStats: libcootApi.PairType): libcootApi.AtomSpecJS[] => { + let returnResult: libcootApi.AtomSpecJS[] = [] + const atomsSize = atomSpecs.size() + for (let ic = 0; ic < atomsSize; ic++) { + const atom = atomSpecs.get(ic) + returnResult.push({ + chain_id: atom.chain_id, + res_no: atom.res_no, + ins_code: atom.ins_code, + atom_name: atom.atom_name, + alt_conf: atom.alt_conf, + int_user_data: atom.int_user_data, + float_user_data: atom.float_user_data, + string_user_data: atom.string_user_data, + model_number: atom.model_number + }) + atom.delete() + } + atomSpecs.delete() + return returnResult +} + const residueSpecToJSArray = (residueSpecs: emscriptem.vector): libcootApi.ResidueSpecJS[] => { let returnResult: { resNum: number; insCode: string; modelNumber: number; chainId: string; }[] = [] const residuesSize = residueSpecs.size() @@ -604,6 +627,48 @@ const interestingPlaceDataToJSArray = (interestingPlaceData: emscriptem.vector { + const histogramCounts = histogramInfo.counts + const counts = intArrayToJSArray(histogramCounts) + const result: libcootApi.HistogramInfoJS = { + counts: counts, + bin_width: histogramInfo.bin_width, + base: histogramInfo.base + } + return result +} + +const autoReadMtzInfoVectToJSArray = (autoReadMtzInfoArray: emscriptem.vector): libcootApi.AutoReadMtzInfoJS[] => { + let returnResult: {idx: number; + F: string; + phi: string; + w: string; + F_obs: string; + sigF_obs: string; + Rfree: string; + weights_used: boolean; + }[] = [] + + const autoReadMtzInfoArraySize = autoReadMtzInfoArray.size() + for(let i = 0; i < autoReadMtzInfoArraySize; i++) { + const autoReadMtzInfo = autoReadMtzInfoArray.get(i) + returnResult.push({ + idx: autoReadMtzInfo.idx, + F: autoReadMtzInfo.F, + phi: autoReadMtzInfo.phi, + w: autoReadMtzInfo.w, + Rfree: autoReadMtzInfo.Rfree, + F_obs: autoReadMtzInfo.F_obs, + sigF_obs: autoReadMtzInfo.sigF_obs, + weights_used: autoReadMtzInfo.weights_used, + }) + autoReadMtzInfo.delete() + } + autoReadMtzInfoArray.delete() + + return returnResult +} + const ramachandranDataToJSArray = (ramachandraData: emscriptem.vector, chainID: string): libcootApi.RamaDataJS[] => { let returnResult: { chainId: string; insCode: string; seqNum: number; restype: string; isOutlier: boolean; phi: number; psi: number; is_pre_pro: boolean; }[] = []; const ramachandraDataSize = ramachandraData.size() @@ -664,15 +729,6 @@ const simpleMeshToLineMeshData = (simpleMesh: libcootApi.SimpleMeshT, normalLigh } -const read_pdb = (coordData: string, name: string) => { - const theGuid = guid() - cootModule.FS_createDataFile(".", `${theGuid}.pdb`, coordData, true, true); - const tempFilename = `./${theGuid}.pdb` - const molNo = molecules_container.read_pdb(tempFilename) - cootModule.FS_unlink(tempFilename) - return molNo -} - const auto_open_mtz = (mtzData: ArrayBufferLike) => { const theGuid = guid() const asUint8Array = new Uint8Array(mtzData) @@ -683,24 +739,6 @@ const auto_open_mtz = (mtzData: ArrayBufferLike) => { return result } -const read_dictionary = (coordData: string, associatedMolNo: number) => { - const theGuid = guid() - cootModule.FS_createDataFile(".", `${theGuid}.cif`, coordData, true, true); - const tempFilename = `./${theGuid}.cif` - const returnVal = molecules_container.import_cif_dictionary(tempFilename, associatedMolNo) - cootModule.FS_unlink(tempFilename) - return returnVal -} - -const replace_molecule_by_model_from_file = (imol: number, coordData: string) => { - const theGuid = guid() - const tempFilename = `./${theGuid}.pdb` - cootModule.FS_createDataFile(".", tempFilename, coordData, true, true) - const result = molecules_container.replace_molecule_by_model_from_file(imol, tempFilename) - cootModule.FS_unlink(tempFilename) - return result -} - const replace_map_by_mtz_from_file = (imol: number, mtzData: ArrayBufferLike, selectedColumns: { F: string; PHI: string; }) => { const theGuid = guid() const tempFilename = `./${theGuid}.mtz` @@ -760,43 +798,182 @@ const associate_data_mtz_file_with_map = (iMol: number, mtzData: { data: ArrayBu const read_ccp4_map = (mapData: ArrayBufferLike, name: string, isDiffMap: boolean) => { const theGuid = guid() const asUint8Array = new Uint8Array(mapData) - cootModule.FS_createDataFile(".", `${theGuid}.map`, asUint8Array, true, true); - const tempFilename = `./${theGuid}.map` + let fileExtension = '' + if (name.endsWith('.map.gz')) { + fileExtension = 'map.gz' + } else if (name.endsWith('.mrc.gz')) { + fileExtension = 'mrc.gz' + } + cootModule.FS_createDataFile(".", `${theGuid}${fileExtension}`, asUint8Array, true, true); + const tempFilename = `./${theGuid}${fileExtension}` const read_map_args: [string, boolean] = [tempFilename, isDiffMap] const molNo = molecules_container.read_ccp4_map(...read_map_args) cootModule.FS_unlink(tempFilename) return molNo } -const doColourTest = (imol: number) => { - console.log('DEBUG: Start test...') - - const colours = { - 0: { cid: '//A/1-10/', rgb: [255., 0., 0.] }, - 1: { cid: '//A/11-20/', rgb: [0., 255., 0.] }, - 2: { cid: '//A/21-30/', rgb: [0., 0., 255.] }, - } - +const setUserDefinedBondColours = (imol: number, colours: { cid: string; rgb: [number, number, number] }[], applyColourToNonCarbonAtoms: boolean = false) => { let colourMap = new cootModule.MapIntFloat3() - for (const key in Object.keys(colours)) { - colourMap[key] = colours[key].rgb - } - let indexedResiduesVec = new cootModule.VectorStringUInt_pair() - for (const key in Object.keys(colours)) { - const i = { first: colours[key].cid, second: parseInt(key) } + + colours.forEach((colour, index) => { + colourMap.set(index + 51, colour.rgb) + const i = { first: colour.cid, second: index + 51 } indexedResiduesVec.push_back(i) - } + }) - console.log('DEBUG: Running molecules_container.set_user_defined_bond_colours') molecules_container.set_user_defined_bond_colours(imol, colourMap) - console.log('DEBUG: Running molecules_container.set_user_defined_atom_colour_by_residue') - molecules_container.set_user_defined_atom_colour_by_residue(imol, indexedResiduesVec) + molecules_container.set_user_defined_atom_colour_by_selection(imol, indexedResiduesVec, applyColourToNonCarbonAtoms) indexedResiduesVec.delete() colourMap.delete() } +const doCootCommand = (messageData: { + myTimeStamp: number; + chainID?: string; + messageId?: string; + message: string; + returnType: string; + command: string; + commandArgs: any[]; + }) => { + + const { returnType, command, commandArgs, messageId, myTimeStamp, message } = messageData + + try { + + let cootResult + switch (command) { + case 'shim_new_positions_for_residue_atoms': + cootResult = new_positions_for_residue_atoms(...commandArgs as [number, libcootApi.AtomInfo[][]]) + break + case 'shim_read_mtz': + cootResult = read_mtz(...commandArgs as [ArrayBufferLike, string, { F: string; PHI: string; isDifference: boolean; }]) + break + case 'shim_auto_open_mtz': + cootResult = auto_open_mtz(...commandArgs as [ArrayBuffer]) + break + case 'shim_read_ccp4_map': + cootResult = read_ccp4_map(...commandArgs as [ArrayBuffer, string, boolean]) + break + case 'shim_associate_data_mtz_file_with_map': + cootResult = associate_data_mtz_file_with_map(...commandArgs as [number, { data: ArrayBufferLike; fileName: string; }, string, string, string]) + break + case 'shim_replace_map_by_mtz_from_file': + cootResult = replace_map_by_mtz_from_file(...commandArgs as [number, ArrayBufferLike, { F: string; PHI: string; }]) + break + case 'shim_set_bond_colours': + cootResult = setUserDefinedBondColours(...commandArgs as [number, { cid: string; rgb: [number, number, number] }[], boolean]) + break + default: + cootResult = molecules_container[command](...commandArgs) + break + } + + let returnResult; + switch (returnType) { + case 'instanced_mesh_perm': + returnResult = instancedMeshToMeshData(cootResult, true) + break; + case 'histogram_info_t': + returnResult = histogramInfoToJSData(cootResult) + break + case 'symmetry': + returnResult = symmetryToJSData(cootResult) + break; + case 'mmrrcc_stats': + returnResult = mmrrccStatsToJSArray(cootResult) + break; + case 'colour_rules': + returnResult = colourRulesToJSArray(cootResult) + break; + case 'instanced_mesh_perfect_spheres': + returnResult = instancedMeshToMeshData(cootResult, false, true) + break; + case 'instanced_mesh': + returnResult = instancedMeshToMeshData(cootResult, false, false, 5) + break; + case 'mesh_perm': + returnResult = simpleMeshToMeshData(cootResult, true) + break; + case 'mesh': + returnResult = simpleMeshToMeshData(cootResult) + break; + case 'lit_lines_mesh': + returnResult = simpleMeshToLineMeshData(cootResult, true) + break; + case 'lines_mesh': + returnResult = simpleMeshToLineMeshData(cootResult, false) + break; + case 'float_array': + returnResult = floatArrayToJSArray(cootResult) + break; + case 'int_array': + returnResult = intArrayToJSArray(cootResult) + break; + case 'auto_read_mtz_info_array': + returnResult = autoReadMtzInfoVectToJSArray(cootResult) + break; + case 'map_molecule_centre_info_t': + returnResult = mapMoleculeCentreInfoToJSObject(cootResult) + break; + case 'string_array': + returnResult = stringArrayToJSArray(cootResult) + break; + case 'residue_specs': + returnResult = residueSpecToJSArray(cootResult) + break; + case 'atom_specs': + returnResult = atomSpecToJSArray(cootResult) + break; + case 'ramachandran_data': + returnResult = ramachandranDataToJSArray(cootResult, messageData.chainID as string) + break; + case 'validation_data': + returnResult = validationDataToJSArray(cootResult, messageData.chainID) + break; + case 'interesting_places_data': + returnResult = interestingPlaceDataToJSArray(cootResult) + break; + case 'superpose_results': + returnResult = SuperposeResultsToJSArray(cootResult) + break + case 'generic_3d_lines_bonds_box': + returnResult = linesBoxToJSArray(cootResult) + break; + case 'vector_hbond': + returnResult = vectorHBondToJSArray(cootResult) + break; + case 'status_instanced_mesh_pair': + returnResult = { status: cootResult.first, mesh: instancedMeshToMeshData(cootResult.second, false, false, 5) } + break; + case 'void': + returnResult = null + break + case 'status': + default: + returnResult = cootResult + break; + } + + return { + messageId, messageSendTime: Date.now(), command: command, + consoleMessage: `Completed ${command} in ${Date.now() - myTimeStamp} ms`, + result: { status: 'Completed', result: returnResult } + } + } + + catch (err) { + console.log(err) + return { + messageId, myTimeStamp, message, + consoleMessage: `EXCEPTION RAISED IN ${command}, ${err}`, + result: { status: 'Exception' } + } + } +} + onmessage = function (e) { if (e.data.message === 'CootInitialize') { createRSRModule({ @@ -836,28 +1013,6 @@ onmessage = function (e) { }); } - else if (e.data.message === 'get_atoms') { - const theGuid = guid() - const tempFilename = `./${theGuid}.pdb` - if (e.data.format === 'pdb') { - molecules_container.writePDBASCII(e.data.molNo, tempFilename) - } else if (e.data.format === 'mmcif') { - molecules_container.writeCIFASCII(e.data.molNo, tempFilename) - } else { - console.log(`Unrecognised format... ${e.data.format}`) - } - - const pdbData = cootModule.FS.readFile(tempFilename, { encoding: 'utf8' }); - cootModule.FS_unlink(tempFilename) - postMessage({ - messageId: e.data.messageId, - myTimeStamp: e.data.myTimeStamp, - consoleMessage: `Fetched coordinates of molecule ${e.data.molNo}`, - message: e.data.message, - result: { molNo: e.data.molNo, pdbData: pdbData } - }) - } - else if (e.data.message === 'get_mtz_data') { const mtzData = cootModule.FS.readFile(e.data.fileName, { encoding: 'binary' }); postMessage({ @@ -885,70 +1040,8 @@ onmessage = function (e) { }) } - else if (e.data.message === 'read_mtz') { - try { - const theGuid = guid() - cootModule.FS_createDataFile(".", `${theGuid}.mtz`, e.data.data, true, true, true); - const tempFilename = `./${theGuid}.mtz` - const molNo = molecules_container.read_mtz(tempFilename, 'FWT', 'PHWT', "", false, false) - cootModule.FS_unlink(tempFilename) - postMessage({ - messageId: e.data.messageId, - myTimeStamp: e.data.myTimeStamp, - consoleMessage: `Read map MTZ as molecule ${molNo}`, - message: e.data.message, - result: { molNo: molNo, name: e.data.name } - }) - } - catch (err) { - print(err) - } - } - - else if (e.data.message === 'get_rama') { - const theGuid = guid() - const tempFilename = `./${theGuid}.pdb` - molecules_container.writePDBASCII(e.data.molNo, tempFilename) - const result = cootModule.getRamachandranData(tempFilename, e.data.chainId); - cootModule.FS_unlink(tempFilename) - let resInfo: { - chainId: string; - insCode: string; - seqNum: number; - restype: string; - phi: number; - psi: number; - isOutlier: boolean; - is_pre_pro: boolean; - }[] = []; - for (let ir = 0; ir < result.size(); ir++) { - const cppres = result.get(ir); - //TODO - Is there a nicer way to do this? - const jsres = { chainId: cppres.chainId, insCode: cppres.insCode, seqNum: cppres.seqNum, restype: cppres.restype, phi: cppres.phi, psi: cppres.psi, isOutlier: cppres.isOutlier, is_pre_pro: cppres.is_pre_pro }; - resInfo.push(jsres); - } - - postMessage({ - messageId: e.data.messageId, - myTimeStamp: e.data.myTimeStamp, - messageTag: "result", - result: resInfo, - }) - } - - else if (e.data.message === 'copy_fragment') { - const newmolNo = molecules_container.copy_fragment_using_residue_range(e.data.molNo, e.data.chainId, e.data.res_no_start, e.data.res_no_end) - - postMessage({ - messageId: e.data.messageId, - myTimeStamp: e.data.myTimeStamp, - messageTag: "result", - result: newmolNo, - }) - } - - else if (e.data.message === 'delete') { - const result = molecules_container.close_molecule(e.data.molNo) + else if (e.data.message === 'delete_file_name') { + const result = cootModule.FS_unlink(e.data.fileName) postMessage({ messageId: e.data.messageId, @@ -956,175 +1049,16 @@ onmessage = function (e) { messageTag: "result", result: result, }) - } - - else if (e.data.message === 'delete_file_name') { - const result = cootModule.FS_unlink(e.data.fileName) + } else if (e.data.message === 'coot_command_list') { + const resultList = e.data.commandList.map(command => doCootCommand({...e.data, ...command})) postMessage({ - messageId: e.data.messageId, - myTimeStamp: e.data.myTimeStamp, - messageTag: "result", - result: result, + messageId: e.data.messageId, resultList }) } if (e.data.message === 'coot_command') { - const { returnType, command, commandArgs, messageId } = e.data - try { - - const timeMainThreadToWorker = `Message from main thread to worker took ${Date.now() - e.data.myTimeStamp} ms (${command}) - (${messageId.slice(0, 5)})` - - let startTime = new Date() - - /* A debug message to show tht commands are reachng CootWorker - postMessage({ consoleMessage: `Received ${command} with args ${commandArgs}` }) - */ - - /* Here a block of "shims" - * over time want to reduce these to none - */ - let cootResult - if (command === 'shim_read_pdb') { - cootResult = read_pdb(...commandArgs as [string, string]) - } - else if (command === 'shim_new_positions_for_residue_atoms') { - cootResult = new_positions_for_residue_atoms(...commandArgs as [number, libcootApi.AtomInfo[][]]) - } - else if (command === 'shim_read_mtz') { - cootResult = read_mtz(...commandArgs as [ArrayBufferLike, string, { F: string; PHI: string; isDifference: boolean; }]) - } - else if (command === 'shim_auto_open_mtz') { - cootResult = auto_open_mtz(...commandArgs as [ArrayBuffer]) - } - else if (command === 'shim_read_ccp4_map') { - cootResult = read_ccp4_map(...commandArgs as [ArrayBuffer, string, boolean]) - } - else if (command === 'shim_read_dictionary') { - cootResult = read_dictionary(...commandArgs as [string, number]) - } - else if (command === 'shim_associate_data_mtz_file_with_map') { - cootResult = associate_data_mtz_file_with_map(...commandArgs as [number, { data: ArrayBufferLike; fileName: string; }, string, string, string]) - } - else if (command === 'shim_replace_molecule_by_model_from_file') { - cootResult = replace_molecule_by_model_from_file(...commandArgs as [number, string]) - } - else if (command === 'shim_replace_map_by_mtz_from_file') { - cootResult = replace_map_by_mtz_from_file(...commandArgs as [number, ArrayBufferLike, { F: string; PHI: string; }]) - } - else if (command === 'shim_do_colour_test') { - cootResult = doColourTest(...commandArgs as [number]) - } - else if (command === 'shim_smiles_to_pdb') { - cootResult = cootModule.SmilesToPDB(...commandArgs as [string, string, number, number]) - } - else { - cootResult = molecules_container[command](...commandArgs) - } - - let endTime = new Date() - // @ts-ignore - let timeDiff = endTime - startTime - const timelibcootAPI = `libcootAPI command ${command} took ${timeDiff} ms - (${messageId.slice(0, 5)})` - let returnResult; - startTime = new Date() - - switch (returnType) { - case 'instanced_mesh_perm': - returnResult = instancedMeshToMeshData(cootResult, true) - break; - case 'symmetry': - returnResult = symmetryToJSData(cootResult) - break; - case 'mmrrcc_stats': - returnResult = mmrrccStatsToJSArray(cootResult) - break; - case 'colour_rules': - returnResult = colourRulesToJSArray(cootResult) - break; - case 'instanced_mesh_perfect_spheres': - returnResult = instancedMeshToMeshData(cootResult, false, true) - break; - case 'instanced_mesh': - returnResult = instancedMeshToMeshData(cootResult, false, false, 5) - break; - case 'mesh_perm': - returnResult = simpleMeshToMeshData(cootResult, true) - break; - case 'mesh': - returnResult = simpleMeshToMeshData(cootResult) - break; - case 'lit_lines_mesh': - returnResult = simpleMeshToLineMeshData(cootResult, true) - break; - case 'lines_mesh': - returnResult = simpleMeshToLineMeshData(cootResult, false) - break; - case 'float_array': - returnResult = floatArrayToJSArray(cootResult) - break; - case 'int_array': - returnResult = intArrayToJSArray(cootResult) - break; - case 'map_molecule_centre_info_t': - returnResult = mapMoleculeCentreInfoToJSObject(cootResult) - break; - case 'string_array': - returnResult = stringArrayToJSArray(cootResult) - break; - case 'residue_specs': - returnResult = residueSpecToJSArray(cootResult) - break; - case 'ramachandran_data': - returnResult = ramachandranDataToJSArray(cootResult, e.data.chainID) - break; - case 'validation_data': - returnResult = validationDataToJSArray(cootResult, e.data.chainID) - break; - case 'interesting_places_data': - returnResult = interestingPlaceDataToJSArray(cootResult) - break; - case 'superpose_results': - returnResult = SuperposeResultsToJSArray(cootResult) - break - case 'generic_3d_lines_bonds_box': - returnResult = linesBoxToJSArray(cootResult) - break; - case 'vector_hbond': - returnResult = vectorHBondToJSArray(cootResult) - break; - case 'status_instanced_mesh_pair': - returnResult = { status: cootResult.first, mesh: instancedMeshToMeshData(cootResult.second, false, false, 5) } - break; - case 'status': - default: - returnResult = cootResult - break; - } - - endTime = new Date() - // @ts-ignore - timeDiff = endTime - startTime - const timeconvertingWASMJS = `conversion of output of ${command} to JS data took ${timeDiff} ms - (${messageId.slice(0, 5)})` - - postMessage({ - timelibcootAPI, timeconvertingWASMJS, timeMainThreadToWorker, - messageId, messageSendTime: Date.now(), - consoleMessage: `Completed ${command} in ${Date.now() - e.data.myTimeStamp} ms`, - result: { status: 'Completed', result: returnResult } - }) - } - - catch (err) { - console.log(err) - postMessage({ - messageId: e.data.messageId, - myTimeStamp: e.data.myTimeStamp, - message: e.data.message, - consoleMessage: `EXCEPTION RAISED IN ${command}, ${err}`, - result: { status: 'Exception' } - }) - } + const result = doCootCommand(e.data) + postMessage(result) } - } diff --git a/webapp/public/baby-gru/_darkly.css b/webapp/public/baby-gru/_darkly.css new file mode 100644 index 000000000..daca156a4 --- /dev/null +++ b/webapp/public/baby-gru/_darkly.css @@ -0,0 +1,12 @@ +@charset "UTF-8";/*! + * Bootswatch v5.2.2 (https://bootswatch.com) + * Theme: darkly + * Copyright 2012-2022 Thomas Park + * Licensed under MIT + * Based on Bootstrap +*//*! + * Bootstrap v5.2.2 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors + * Copyright 2011-2022 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */@import url(https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400&display=swap);:root{--bs-blue:#375a7f;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#e83e8c;--bs-red:#e74c3c;--bs-orange:#fd7e14;--bs-yellow:#f39c12;--bs-green:#00bc8c;--bs-teal:#20c997;--bs-cyan:#3498db;--bs-black:#000;--bs-white:#fff;--bs-gray:#888;--bs-gray-dark:#303030;--bs-gray-100:#f8f9fa;--bs-gray-200:#ebebeb;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#888;--bs-gray-700:#444;--bs-gray-800:#303030;--bs-gray-900:#222;--bs-primary:#375a7f;--bs-secondary:#444;--bs-success:#00bc8c;--bs-info:#3498db;--bs-warning:#f39c12;--bs-danger:#e74c3c;--bs-light:#adb5bd;--bs-dark:#303030;--bs-primary-rgb:55,90,127;--bs-secondary-rgb:68,68,68;--bs-success-rgb:0,188,140;--bs-info-rgb:52,152,219;--bs-warning-rgb:243,156,18;--bs-danger-rgb:231,76,60;--bs-light-rgb:173,181,189;--bs-dark-rgb:48,48,48;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-color-rgb:255,255,255;--bs-body-bg-rgb:34,34,34;--bs-font-sans-serif:Lato,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#fff;--bs-body-bg:#222;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, 0.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-2xl:2rem;--bs-border-radius-pill:50rem;--bs-link-color:#00bc8c;--bs-link-hover-color:#009670;--bs-code-color:#e83e8c;--bs-highlight-bg:#fdebd0}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;border:0;border-top:1px solid;opacity:.25}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:calc(1.425rem + 2.1vw)}@media (min-width:1200px){.h1,h1{font-size:3rem}}.h2,h2{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h2,h2{font-size:2.5rem}}.h3,h3{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h3,h3{font-size:2rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:var(--bs-link-color);text-decoration:underline}a:hover{color:var(--bs-link-hover-color)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em;color:inherit}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#888;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#888}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#222;border:1px solid var(--bs-border-color);border-radius:.375rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#888}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-color:var(--bs-body-color);--bs-table-bg:transparent;--bs-table-border-color:#444;--bs-table-accent-bg:transparent;--bs-table-striped-color:var(--bs-body-color);--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:var(--bs-body-color);--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:var(--bs-body-color);--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:var(--bs-table-color);vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:2px solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-striped-columns>:not(caption)>tr>:nth-child(even){--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover>*{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-color:#fff;--bs-table-bg:#375a7f;--bs-table-border-color:#4b6b8c;--bs-table-striped-bg:#416285;--bs-table-striped-color:#fff;--bs-table-active-bg:#4b6b8c;--bs-table-active-color:#fff;--bs-table-hover-bg:#466689;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color:#fff;--bs-table-bg:#444444;--bs-table-border-color:#575757;--bs-table-striped-bg:#4d4d4d;--bs-table-striped-color:#fff;--bs-table-active-bg:#575757;--bs-table-active-color:#fff;--bs-table-hover-bg:#525252;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color:#fff;--bs-table-bg:#00bc8c;--bs-table-border-color:#1ac398;--bs-table-striped-bg:#0dbf92;--bs-table-striped-color:#fff;--bs-table-active-bg:#1ac398;--bs-table-active-color:#fff;--bs-table-hover-bg:#13c195;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color:#fff;--bs-table-bg:#3498db;--bs-table-border-color:#48a2df;--bs-table-striped-bg:#3e9ddd;--bs-table-striped-color:#fff;--bs-table-active-bg:#48a2df;--bs-table-active-color:#fff;--bs-table-hover-bg:#43a0de;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color:#fff;--bs-table-bg:#f39c12;--bs-table-border-color:#f4a62a;--bs-table-striped-bg:#f4a11e;--bs-table-striped-color:#fff;--bs-table-active-bg:#f4a62a;--bs-table-active-color:#fff;--bs-table-hover-bg:#f4a324;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color:#fff;--bs-table-bg:#e74c3c;--bs-table-border-color:#e95e50;--bs-table-striped-bg:#e85546;--bs-table-striped-color:#fff;--bs-table-active-bg:#e95e50;--bs-table-active-color:#fff;--bs-table-hover-bg:#e9594b;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color:#fff;--bs-table-bg:#adb5bd;--bs-table-border-color:#b5bcc4;--bs-table-striped-bg:#b1b9c0;--bs-table-striped-color:#fff;--bs-table-active-bg:#b5bcc4;--bs-table-active-color:#fff;--bs-table-hover-bg:#b3bbc2;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#303030;--bs-table-border-color:#454545;--bs-table-striped-bg:#3a3a3a;--bs-table-striped-color:#fff;--bs-table-active-bg:#454545;--bs-table-active-color:#fff;--bs-table-hover-bg:#404040;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#888}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#303030;background-color:#fff;background-clip:padding-box;border:1px solid #222;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.375rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#303030;background-color:#fff;border-color:#9badbf;outline:0;box-shadow:0 0 0 .25rem rgba(55,90,127,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#888;opacity:1}.form-control::placeholder{color:#888;opacity:1}.form-control:disabled{background-color:#ebebeb;opacity:1}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#fff;background-color:#444;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#fff;background-color:#444;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#414141}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#414141}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#fff;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.25rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{width:3rem;height:calc(1.5em + .75rem + 2px);padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:.375rem}.form-control-color::-webkit-color-swatch{border-radius:.375rem}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + 2px)}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + 2px)}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(0.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#303030;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23303030' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #222;border-radius:.375rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#9badbf;outline:0;box-shadow:0 0 0 .25rem rgba(55,90,127,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#ebebeb}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #303030}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:.25rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:.5rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#9badbf;outline:0;box-shadow:0 0 0 .25rem rgba(55,90,127,.25)}.form-check-input:checked{background-color:#375a7f;border-color:#375a7f}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#375a7f;border-color:#375a7f;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%239badbf'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #222,0 0 0 .25rem rgba(55,90,127,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #222,0 0 0 .25rem rgba(55,90,127,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#375a7f;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#c3ced9}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#375a7f;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#c3ced9}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;width:100%;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::-moz-placeholder,.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:not(:-moz-placeholder-shown),.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label{border-width:1px 0}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#adb5bd;text-align:center;white-space:nowrap;background-color:#444;border:1px solid #222;border-radius:.375rem}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:.25rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#00bc8c}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(0,188,140,.9);border-radius:.375rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#00bc8c;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300bc8c' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#00bc8c;box-shadow:0 0 0 .25rem rgba(0,188,140,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#00bc8c}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23303030' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300bc8c' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#00bc8c;box-shadow:0 0 0 .25rem rgba(0,188,140,.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#00bc8c}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#00bc8c}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(0,188,140,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#00bc8c}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-control:not(:focus):valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.was-validated .input-group>.form-select:not(:focus):valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#e74c3c}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(231,76,60,.9);border-radius:.375rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#e74c3c;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23e74c3c'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23e74c3c' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#e74c3c;box-shadow:0 0 0 .25rem rgba(231,76,60,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#e74c3c}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23303030' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23e74c3c'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23e74c3c' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#e74c3c;box-shadow:0 0 0 .25rem rgba(231,76,60,.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#e74c3c}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#e74c3c}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(231,76,60,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#e74c3c}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-control:not(:focus):invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.was-validated .input-group>.form-select:not(:focus):invalid{z-index:4}.btn{--bs-btn-padding-x:0.75rem;--bs-btn-padding-y:0.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:#fff;--bs-btn-bg:transparent;--bs-btn-border-width:1px;--bs-btn-border-color:transparent;--bs-btn-border-radius:0.375rem;--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.15),0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity:0.65;--bs-btn-focus-box-shadow:0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible,.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#375a7f;--bs-btn-border-color:#375a7f;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#2f4d6c;--bs-btn-hover-border-color:#2c4866;--bs-btn-focus-shadow-rgb:85,115,146;--bs-btn-active-color:#fff;--bs-btn-active-bg:#2c4866;--bs-btn-active-border-color:#29445f;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#375a7f;--bs-btn-disabled-border-color:#375a7f}.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#444;--bs-btn-border-color:#444;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#3a3a3a;--bs-btn-hover-border-color:#363636;--bs-btn-focus-shadow-rgb:96,96,96;--bs-btn-active-color:#fff;--bs-btn-active-bg:#363636;--bs-btn-active-border-color:#333333;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#444;--bs-btn-disabled-border-color:#444}.btn-success{--bs-btn-color:#fff;--bs-btn-bg:#00bc8c;--bs-btn-border-color:#00bc8c;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#00a077;--bs-btn-hover-border-color:#009670;--bs-btn-focus-shadow-rgb:38,198,157;--bs-btn-active-color:#fff;--bs-btn-active-bg:#009670;--bs-btn-active-border-color:#008d69;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#00bc8c;--bs-btn-disabled-border-color:#00bc8c}.btn-info{--bs-btn-color:#fff;--bs-btn-bg:#3498db;--bs-btn-border-color:#3498db;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#2c81ba;--bs-btn-hover-border-color:#2a7aaf;--bs-btn-focus-shadow-rgb:82,167,224;--bs-btn-active-color:#fff;--bs-btn-active-bg:#2a7aaf;--bs-btn-active-border-color:#2772a4;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#3498db;--bs-btn-disabled-border-color:#3498db}.btn-warning{--bs-btn-color:#fff;--bs-btn-bg:#f39c12;--bs-btn-border-color:#f39c12;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#cf850f;--bs-btn-hover-border-color:#c27d0e;--bs-btn-focus-shadow-rgb:245,171,54;--bs-btn-active-color:#fff;--bs-btn-active-bg:#c27d0e;--bs-btn-active-border-color:#b6750e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#f39c12;--bs-btn-disabled-border-color:#f39c12}.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#e74c3c;--bs-btn-border-color:#e74c3c;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#c44133;--bs-btn-hover-border-color:#b93d30;--bs-btn-focus-shadow-rgb:235,103,89;--bs-btn-active-color:#fff;--bs-btn-active-bg:#b93d30;--bs-btn-active-border-color:#ad392d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#e74c3c;--bs-btn-disabled-border-color:#e74c3c}.btn-light{--bs-btn-color:#fff;--bs-btn-bg:#adb5bd;--bs-btn-border-color:#adb5bd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#939aa1;--bs-btn-hover-border-color:#8a9197;--bs-btn-focus-shadow-rgb:185,192,199;--bs-btn-active-color:#fff;--bs-btn-active-bg:#8a9197;--bs-btn-active-border-color:#82888e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#adb5bd;--bs-btn-disabled-border-color:#adb5bd}.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#303030;--bs-btn-border-color:#303030;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#4f4f4f;--bs-btn-hover-border-color:#454545;--bs-btn-focus-shadow-rgb:79,79,79;--bs-btn-active-color:#fff;--bs-btn-active-bg:#595959;--bs-btn-active-border-color:#454545;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#303030;--bs-btn-disabled-border-color:#303030}.btn-outline-primary{--bs-btn-color:#375a7f;--bs-btn-border-color:#375a7f;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#375a7f;--bs-btn-hover-border-color:#375a7f;--bs-btn-focus-shadow-rgb:55,90,127;--bs-btn-active-color:#fff;--bs-btn-active-bg:#375a7f;--bs-btn-active-border-color:#375a7f;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#375a7f;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#375a7f;--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#444;--bs-btn-border-color:#444;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#444;--bs-btn-hover-border-color:#444;--bs-btn-focus-shadow-rgb:68,68,68;--bs-btn-active-color:#fff;--bs-btn-active-bg:#444;--bs-btn-active-border-color:#444;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#444;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#444;--bs-gradient:none}.btn-outline-success{--bs-btn-color:#00bc8c;--bs-btn-border-color:#00bc8c;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#00bc8c;--bs-btn-hover-border-color:#00bc8c;--bs-btn-focus-shadow-rgb:0,188,140;--bs-btn-active-color:#fff;--bs-btn-active-bg:#00bc8c;--bs-btn-active-border-color:#00bc8c;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#00bc8c;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#00bc8c;--bs-gradient:none}.btn-outline-info{--bs-btn-color:#3498db;--bs-btn-border-color:#3498db;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#3498db;--bs-btn-hover-border-color:#3498db;--bs-btn-focus-shadow-rgb:52,152,219;--bs-btn-active-color:#fff;--bs-btn-active-bg:#3498db;--bs-btn-active-border-color:#3498db;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#3498db;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#3498db;--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#f39c12;--bs-btn-border-color:#f39c12;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#f39c12;--bs-btn-hover-border-color:#f39c12;--bs-btn-focus-shadow-rgb:243,156,18;--bs-btn-active-color:#fff;--bs-btn-active-bg:#f39c12;--bs-btn-active-border-color:#f39c12;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#f39c12;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f39c12;--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#e74c3c;--bs-btn-border-color:#e74c3c;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#e74c3c;--bs-btn-hover-border-color:#e74c3c;--bs-btn-focus-shadow-rgb:231,76,60;--bs-btn-active-color:#fff;--bs-btn-active-bg:#e74c3c;--bs-btn-active-border-color:#e74c3c;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#e74c3c;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#e74c3c;--bs-gradient:none}.btn-outline-light{--bs-btn-color:#adb5bd;--bs-btn-border-color:#adb5bd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#adb5bd;--bs-btn-hover-border-color:#adb5bd;--bs-btn-focus-shadow-rgb:173,181,189;--bs-btn-active-color:#fff;--bs-btn-active-bg:#adb5bd;--bs-btn-active-border-color:#adb5bd;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#adb5bd;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#adb5bd;--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#303030;--bs-btn-border-color:#303030;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#303030;--bs-btn-hover-border-color:#303030;--bs-btn-focus-shadow-rgb:48,48,48;--bs-btn-active-color:#fff;--bs-btn-active-bg:#303030;--bs-btn-active-border-color:#303030;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#303030;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#303030;--bs-gradient:none}.btn-link{--bs-btn-font-weight:400;--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:#888;--bs-btn-disabled-border-color:transparent;--bs-btn-box-shadow:none;--bs-btn-focus-shadow-rgb:85,115,146;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--bs-btn-padding-y:0.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius:0.5rem}.btn-group-sm>.btn,.btn-sm{--bs-btn-padding-y:0.25rem;--bs-btn-padding-x:0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius:0.25rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex:1000;--bs-dropdown-min-width:10rem;--bs-dropdown-padding-x:0;--bs-dropdown-padding-y:0.5rem;--bs-dropdown-spacer:0.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color:#fff;--bs-dropdown-bg:#222;--bs-dropdown-border-color:#444;--bs-dropdown-border-radius:0.375rem;--bs-dropdown-border-width:1px;--bs-dropdown-inner-border-radius:calc(0.375rem - 1px);--bs-dropdown-divider-bg:#444;--bs-dropdown-divider-margin-y:0.5rem;--bs-dropdown-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-dropdown-link-color:#fff;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-link-hover-bg:#375a7f;--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#375a7f;--bs-dropdown-link-disabled-color:#adb5bd;--bs-dropdown-item-padding-x:1rem;--bs-dropdown-item-padding-y:0.25rem;--bs-dropdown-header-color:#888;--bs-dropdown-header-padding-x:1rem;--bs-dropdown-header-padding-y:0.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color:#dee2e6;--bs-dropdown-bg:#303030;--bs-dropdown-border-color:#444;--bs-dropdown-box-shadow: ;--bs-dropdown-link-color:#dee2e6;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-divider-bg:#444;--bs-dropdown-link-hover-bg:rgba(255, 255, 255, 0.15);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#375a7f;--bs-dropdown-link-disabled-color:#adb5bd;--bs-dropdown-header-color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:.375rem}.btn-group>.btn-group:not(:first-child),.btn-group>:not(.btn-check:first-child)+.btn{margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x:2rem;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:#adb5bd;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link.disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:1px;--bs-nav-tabs-border-color:#444;--bs-nav-tabs-border-radius:0.375rem;--bs-nav-tabs-link-hover-border-color:#444 #444 transparent;--bs-nav-tabs-link-active-color:#fff;--bs-nav-tabs-link-active-bg:#222;--bs-nav-tabs-link-active-border-color:#444 #444 transparent;border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));background:0 0;border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.disabled,.nav-tabs .nav-link:disabled{color:var(--bs-nav-link-disabled-color);background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius:0.375rem;--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#375a7f}.nav-pills .nav-link{background:0 0;border:0;border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link:disabled{color:var(--bs-nav-link-disabled-color);background-color:transparent;border-color:transparent}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:1rem;--bs-navbar-color:rgba(34, 34, 34, 0.7);--bs-navbar-hover-color:#222;--bs-navbar-disabled-color:rgba(0, 0, 0, 0.3);--bs-navbar-active-color:#222;--bs-navbar-brand-padding-y:0.3125rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:1.25rem;--bs-navbar-brand-color:#222;--bs-navbar-brand-hover-color:#222;--bs-navbar-nav-link-padding-x:0.5rem;--bs-navbar-toggler-padding-y:0.25rem;--bs-navbar-toggler-padding-x:0.75rem;--bs-navbar-toggler-font-size:1.25rem;--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2834, 34, 34, 0.7%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color:rgba(34, 34, 34, 0.1);--bs-navbar-toggler-border-radius:0.375rem;--bs-navbar-toggler-focus-width:0.25rem;--bs-navbar-toggler-transition:box-shadow 0.15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x:0;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .show>.nav-link{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark{--bs-navbar-color:rgba(255, 255, 255, 0.6);--bs-navbar-hover-color:#fff;--bs-navbar-disabled-color:rgba(255, 255, 255, 0.25);--bs-navbar-active-color:#fff;--bs-navbar-brand-color:#fff;--bs-navbar-brand-hover-color:#fff;--bs-navbar-toggler-border-color:rgba(255, 255, 255, 0.1);--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.6%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y:1rem;--bs-card-spacer-x:1rem;--bs-card-title-spacer-y:0.5rem;--bs-card-border-width:1px;--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:0.375rem;--bs-card-box-shadow: ;--bs-card-inner-border-radius:calc(0.375rem - 1px);--bs-card-cap-padding-y:0.5rem;--bs-card-cap-padding-x:1rem;--bs-card-cap-bg:#444;--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg:#303030;--bs-card-img-overlay-padding:1rem;--bs-card-group-margin:0.75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion{--bs-accordion-color:#fff;--bs-accordion-bg:#222;--bs-accordion-transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,border-radius 0.15s ease;--bs-accordion-border-color:var(--bs-border-color);--bs-accordion-border-width:1px;--bs-accordion-border-radius:0.375rem;--bs-accordion-inner-border-radius:calc(0.375rem - 1px);--bs-accordion-btn-padding-x:1.25rem;--bs-accordion-btn-padding-y:1rem;--bs-accordion-btn-color:#fff;--bs-accordion-btn-bg:var(--bs-accordion-bg);--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width:1.25rem;--bs-accordion-btn-icon-transform:rotate(-180deg);--bs-accordion-btn-icon-transition:transform 0.2s ease-in-out;--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23325172'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color:#9badbf;--bs-accordion-btn-focus-box-shadow:0 0 0 0.25rem rgba(55, 90, 127, 0.25);--bs-accordion-body-padding-x:1.25rem;--bs-accordion-body-padding-y:1rem;--bs-accordion-active-color:#325172;--bs-accordion-active-bg:#ebeff2}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}.breadcrumb{--bs-breadcrumb-padding-x:0.75rem;--bs-breadcrumb-padding-y:0.375rem;--bs-breadcrumb-margin-bottom:1rem;--bs-breadcrumb-bg:#444;--bs-breadcrumb-border-radius:0.25rem;--bs-breadcrumb-divider-color:#888;--bs-breadcrumb-item-padding-x:0.5rem;--bs-breadcrumb-item-active-color:#888;display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x:0.75rem;--bs-pagination-padding-y:0.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color:#fff;--bs-pagination-bg:#00bc8c;--bs-pagination-border-width:0;--bs-pagination-border-color:transparent;--bs-pagination-border-radius:0.375rem;--bs-pagination-hover-color:#fff;--bs-pagination-hover-bg:#00efb2;--bs-pagination-hover-border-color:transparent;--bs-pagination-focus-color:var(--bs-link-hover-color);--bs-pagination-focus-bg:#ebebeb;--bs-pagination-focus-box-shadow:0 0 0 0.25rem rgba(55, 90, 127, 0.25);--bs-pagination-active-color:#fff;--bs-pagination-active-bg:#00efb2;--bs-pagination-active-border-color:transparent;--bs-pagination-disabled-color:#fff;--bs-pagination-disabled-bg:#007053;--bs-pagination-disabled-border-color:transparent;display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.active>.page-link,.page-link.active{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.disabled>.page-link,.page-link.disabled{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:0}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x:1.5rem;--bs-pagination-padding-y:0.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius:0.5rem}.pagination-sm{--bs-pagination-padding-x:0.5rem;--bs-pagination-padding-y:0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius:0.25rem}.badge{--bs-badge-padding-x:0.65em;--bs-badge-padding-y:0.35em;--bs-badge-font-size:0.75em;--bs-badge-font-weight:700;--bs-badge-color:#fff;--bs-badge-border-radius:0.375rem;display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:1px solid var(--bs-alert-border-color);--bs-alert-border-radius:0.375rem;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color:#21364c;--bs-alert-bg:#d7dee5;--bs-alert-border-color:#c3ced9}.alert-primary .alert-link{color:#1a2b3d}.alert-secondary{--bs-alert-color:#292929;--bs-alert-bg:#dadada;--bs-alert-border-color:#c7c7c7}.alert-secondary .alert-link{color:#212121}.alert-success{--bs-alert-color:#007154;--bs-alert-bg:#ccf2e8;--bs-alert-border-color:#b3ebdd}.alert-success .alert-link{color:#005a43}.alert-info{--bs-alert-color:#1f5b83;--bs-alert-bg:#d6eaf8;--bs-alert-border-color:#c2e0f4}.alert-info .alert-link{color:#194969}.alert-warning{--bs-alert-color:#925e0b;--bs-alert-bg:#fdebd0;--bs-alert-border-color:#fbe1b8}.alert-warning .alert-link{color:#754b09}.alert-danger{--bs-alert-color:#8b2e24;--bs-alert-bg:#fadbd8;--bs-alert-border-color:#f8c9c5}.alert-danger .alert-link{color:#6f251d}.alert-light{--bs-alert-color:#686d71;--bs-alert-bg:#eff0f2;--bs-alert-border-color:#e6e9eb}.alert-light .alert-link{color:#53575a}.alert-dark{--bs-alert-color:#1d1d1d;--bs-alert-bg:#d6d6d6;--bs-alert-border-color:#c1c1c1}.alert-dark .alert-link{color:#171717}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{--bs-progress-height:1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg:#444;--bs-progress-border-radius:0.375rem;--bs-progress-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-progress-bar-color:#fff;--bs-progress-bar-bg:#375a7f;--bs-progress-bar-transition:width 0.6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color:#fff;--bs-list-group-bg:#303030;--bs-list-group-border-color:#444;--bs-list-group-border-width:1px;--bs-list-group-border-radius:0.375rem;--bs-list-group-item-padding-x:1rem;--bs-list-group-item-padding-y:0.5rem;--bs-list-group-action-color:#444;--bs-list-group-action-hover-color:#fff;--bs-list-group-action-hover-bg:#444;--bs-list-group-action-active-color:#fff;--bs-list-group-action-active-bg:#222;--bs-list-group-disabled-color:#888;--bs-list-group-disabled-bg:#303030;--bs-list-group-active-color:#fff;--bs-list-group-active-bg:#375a7f;--bs-list-group-active-border-color:#375a7f;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#21364c;background-color:#d7dee5}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#21364c;background-color:#c2c8ce}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#21364c;border-color:#21364c}.list-group-item-secondary{color:#292929;background-color:#dadada}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#292929;background-color:#c4c4c4}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#292929;border-color:#292929}.list-group-item-success{color:#007154;background-color:#ccf2e8}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#007154;background-color:#b8dad1}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#007154;border-color:#007154}.list-group-item-info{color:#1f5b83;background-color:#d6eaf8}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#1f5b83;background-color:#c1d3df}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#1f5b83;border-color:#1f5b83}.list-group-item-warning{color:#925e0b;background-color:#fdebd0}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#925e0b;background-color:#e4d4bb}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#925e0b;border-color:#925e0b}.list-group-item-danger{color:#8b2e24;background-color:#fadbd8}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#8b2e24;background-color:#e1c5c2}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#8b2e24;border-color:#8b2e24}.list-group-item-light{color:#686d71;background-color:#eff0f2}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#686d71;background-color:#d7d8da}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#686d71;border-color:#686d71}.list-group-item-dark{color:#1d1d1d;background-color:#d6d6d6}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1d1d1d;background-color:#c1c1c1}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1d1d1d;border-color:#1d1d1d}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#fff;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:.4}.btn-close:hover{color:#fff;text-decoration:none;opacity:1}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(55,90,127,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{--bs-toast-zindex:1090;--bs-toast-padding-x:0.75rem;--bs-toast-padding-y:0.5rem;--bs-toast-spacing:1.5rem;--bs-toast-max-width:350px;--bs-toast-font-size:0.875rem;--bs-toast-color: ;--bs-toast-bg:#444;--bs-toast-border-width:1px;--bs-toast-border-color:var(--bs-border-color-translucent);--bs-toast-border-radius:0.375rem;--bs-toast-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-toast-header-color:#888;--bs-toast-header-bg:#303030;--bs-toast-header-border-color:rgba(0, 0, 0, 0.05);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex:1090;position:absolute;z-index:var(--bs-toast-zindex);width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex:1055;--bs-modal-width:500px;--bs-modal-padding:1rem;--bs-modal-margin:0.5rem;--bs-modal-color: ;--bs-modal-bg:#303030;--bs-modal-border-color:#444;--bs-modal-border-width:1px;--bs-modal-border-radius:0.5rem;--bs-modal-box-shadow:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-modal-inner-border-radius:calc(0.5rem - 1px);--bs-modal-header-padding-x:1rem;--bs-modal-header-padding-y:1rem;--bs-modal-header-padding:1rem 1rem;--bs-modal-header-border-color:#444;--bs-modal-header-border-width:1px;--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color:#444;--bs-modal-footer-border-width:1px;position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex:1050;--bs-backdrop-bg:#000;--bs-backdrop-opacity:0.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex:1080;--bs-tooltip-max-width:200px;--bs-tooltip-padding-x:0.5rem;--bs-tooltip-padding-y:0.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:0.875rem;--bs-tooltip-color:#fff;--bs-tooltip-bg:#000;--bs-tooltip-border-radius:0.375rem;--bs-tooltip-opacity:0.9;--bs-tooltip-arrow-width:0.8rem;--bs-tooltip-arrow-height:0.4rem;z-index:var(--bs-tooltip-zindex);display:block;padding:var(--bs-tooltip-arrow-height);margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex:1070;--bs-popover-max-width:276px;--bs-popover-font-size:0.875rem;--bs-popover-bg:#303030;--bs-popover-border-width:1px;--bs-popover-border-color:var(--bs-border-color-translucent);--bs-popover-border-radius:0.5rem;--bs-popover-inner-border-radius:calc(0.5rem - 1px);--bs-popover-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color: ;--bs-popover-header-bg:#444;--bs-popover-body-padding-x:1rem;--bs-popover-body-padding-y:1rem;--bs-popover-body-color:#fff;--bs-popover-arrow-width:1rem;--bs-popover-arrow-height:0.5rem;--bs-popover-arrow-border:var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-top>.popover-arrow::before{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-end>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::before{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-start>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}.spinner-border,.spinner-grow{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-border-width:0.25em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--bs-offcanvas-zindex:1045;--bs-offcanvas-width:400px;--bs-offcanvas-height:30vh;--bs-offcanvas-padding-x:1rem;--bs-offcanvas-padding-y:1rem;--bs-offcanvas-color: ;--bs-offcanvas-bg:#303030;--bs-offcanvas-border-width:1px;--bs-offcanvas-border-color:#444;--bs-offcanvas-box-shadow:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075)}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:575.98px){.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}}@media (max-width:575.98px){.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media (min-width:576px){.offcanvas-sm{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:767.98px) and (prefers-reduced-motion:reduce){.offcanvas-md{transition:none}}@media (max-width:767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:767.98px){.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:767.98px){.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:767.98px){.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:767.98px){.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}}@media (max-width:767.98px){.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media (min-width:768px){.offcanvas-md{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:991.98px) and (prefers-reduced-motion:reduce){.offcanvas-lg{transition:none}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:991.98px){.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}}@media (max-width:991.98px){.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media (min-width:992px){.offcanvas-lg{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:1199.98px) and (prefers-reduced-motion:reduce){.offcanvas-xl{transition:none}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:1199.98px){.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}}@media (max-width:1199.98px){.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media (min-width:1200px){.offcanvas-xl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:1399.98px) and (prefers-reduced-motion:reduce){.offcanvas-xxl{transition:none}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:1399.98px){.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}}@media (max-width:1399.98px){.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{visibility:visible}}@media (min-width:1400px){.offcanvas-xxl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin-top:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(55,90,127,var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(68,68,68,var(--bs-bg-opacity,1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(0,188,140,var(--bs-bg-opacity,1))!important}.text-bg-info{color:#fff!important;background-color:RGBA(52,152,219,var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#fff!important;background-color:RGBA(243,156,18,var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(231,76,60,var(--bs-bg-opacity,1))!important}.text-bg-light{color:#fff!important;background-color:RGBA(173,181,189,var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(48,48,48,var(--bs-bg-opacity,1))!important}.link-primary{color:#375a7f!important}.link-primary:focus,.link-primary:hover{color:#2c4866!important}.link-secondary{color:#444!important}.link-secondary:focus,.link-secondary:hover{color:#363636!important}.link-success{color:#00bc8c!important}.link-success:focus,.link-success:hover{color:#009670!important}.link-info{color:#3498db!important}.link-info:focus,.link-info:hover{color:#2a7aaf!important}.link-warning{color:#f39c12!important}.link-warning:focus,.link-warning:hover{color:#c27d0e!important}.link-danger{color:#e74c3c!important}.link-danger:focus,.link-danger:hover{color:#b93d30!important}.link-light{color:#adb5bd!important}.link-light:focus,.link-light:hover{color:#8a9197!important}.link-dark{color:#303030!important}.link-dark:focus,.link-dark:hover{color:#262626!important}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:1px;min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity:1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity:1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity:1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity:1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity:1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity:1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity:1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity:1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-1{--bs-border-width:1px}.border-2{--bs-border-width:2px}.border-3{--bs-border-width:3px}.border-4{--bs-border-width:4px}.border-5{--bs-border-width:5px}.border-opacity-10{--bs-border-opacity:0.1}.border-opacity-25{--bs-border-opacity:0.25}.border-opacity-50{--bs-border-opacity:0.5}.border-opacity-75{--bs-border-opacity:0.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.425rem + 2.1vw)!important}.fs-2{font-size:calc(1.375rem + 1.5vw)!important}.fs-3{font-size:calc(1.325rem + .9vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-semibold{font-weight:600!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:#888!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-2xl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:3rem!important}.fs-2{font-size:2.5rem!important}.fs-3{font-size:2rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}:root{color-scheme:dark}.blockquote-footer{color:#888}.input-group-addon{color:#fff}.form-floating>label{color:#444}.nav-pills .nav-item.open .nav-link,.nav-pills .nav-item.open .nav-link:focus,.nav-pills .nav-item.open .nav-link:hover,.nav-pills .nav-link,.nav-pills .nav-link.active,.nav-pills .nav-link.active:focus,.nav-pills .nav-link.active:hover,.nav-tabs .nav-item.open .nav-link,.nav-tabs .nav-item.open .nav-link:focus,.nav-tabs .nav-item.open .nav-link:hover,.nav-tabs .nav-link,.nav-tabs .nav-link.active,.nav-tabs .nav-link.active:focus,.nav-tabs .nav-link.active:hover{color:#fff}.breadcrumb a{color:#fff}.pagination a:hover{text-decoration:none}.alert{color:#fff;border:none}.alert .alert-link,.alert a{color:#fff;text-decoration:underline}.alert-primary{background-color:#375a7f}.alert-secondary{background-color:#444}.alert-success{background-color:#00bc8c}.alert-info{background-color:#3498db}.alert-warning{background-color:#f39c12}.alert-danger{background-color:#e74c3c}.alert-light{background-color:#adb5bd}.alert-dark{background-color:#303030} \ No newline at end of file diff --git a/webapp/public/baby-gru/_flatly.css b/webapp/public/baby-gru/_flatly.css new file mode 100644 index 000000000..a31edf0cd --- /dev/null +++ b/webapp/public/baby-gru/_flatly.css @@ -0,0 +1,12 @@ +@charset "UTF-8";/*! + * Bootswatch v5.2.2 (https://bootswatch.com) + * Theme: flatly + * Copyright 2012-2022 Thomas Park + * Licensed under MIT + * Based on Bootstrap +*//*! + * Bootstrap v5.2.2 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors + * Copyright 2011-2022 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */@import url(https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400&display=swap);:root{--bs-blue:#2c3e50;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#e83e8c;--bs-red:#e74c3c;--bs-orange:#fd7e14;--bs-yellow:#f39c12;--bs-green:#18bc9c;--bs-teal:#20c997;--bs-cyan:#3498db;--bs-black:#000;--bs-white:#fff;--bs-gray:#95a5a6;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#ecf0f1;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#b4bcc2;--bs-gray-600:#95a5a6;--bs-gray-700:#7b8a8b;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#2c3e50;--bs-secondary:#95a5a6;--bs-success:#18bc9c;--bs-info:#3498db;--bs-warning:#f39c12;--bs-danger:#e74c3c;--bs-light:#ecf0f1;--bs-dark:#7b8a8b;--bs-primary-rgb:44,62,80;--bs-secondary-rgb:149,165,166;--bs-success-rgb:24,188,156;--bs-info-rgb:52,152,219;--bs-warning-rgb:243,156,18;--bs-danger-rgb:231,76,60;--bs-light-rgb:236,240,241;--bs-dark-rgb:123,138,139;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-color-rgb:33,37,41;--bs-body-bg-rgb:255,255,255;--bs-font-sans-serif:Lato,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#fff;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, 0.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-2xl:2rem;--bs-border-radius-pill:50rem;--bs-link-color:#18bc9c;--bs-link-hover-color:#13967d;--bs-code-color:#e83e8c;--bs-highlight-bg:#fdebd0}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;border:0;border-top:1px solid;opacity:.25}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:calc(1.425rem + 2.1vw)}@media (min-width:1200px){.h1,h1{font-size:3rem}}.h2,h2{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h2,h2{font-size:2.5rem}}.h3,h3{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h3,h3{font-size:2rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:var(--bs-link-color);text-decoration:underline}a:hover{color:var(--bs-link-hover-color)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#95a5a6;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#95a5a6}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid var(--bs-border-color);border-radius:.375rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#95a5a6}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-color:var(--bs-body-color);--bs-table-bg:transparent;--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg:transparent;--bs-table-striped-color:var(--bs-body-color);--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:var(--bs-body-color);--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:var(--bs-body-color);--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:var(--bs-table-color);vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:2px solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-striped-columns>:not(caption)>tr>:nth-child(even){--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover>*{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-color:#fff;--bs-table-bg:#2c3e50;--bs-table-border-color:#415162;--bs-table-striped-bg:#374859;--bs-table-striped-color:#fff;--bs-table-active-bg:#415162;--bs-table-active-color:#fff;--bs-table-hover-bg:#3c4c5d;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color:#fff;--bs-table-bg:#95a5a6;--bs-table-border-color:#a0aeaf;--bs-table-striped-bg:#9aaaaa;--bs-table-striped-color:#fff;--bs-table-active-bg:#a0aeaf;--bs-table-active-color:#fff;--bs-table-hover-bg:#9dacad;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color:#fff;--bs-table-bg:#18bc9c;--bs-table-border-color:#2fc3a6;--bs-table-striped-bg:#24bfa1;--bs-table-striped-color:#fff;--bs-table-active-bg:#2fc3a6;--bs-table-active-color:#fff;--bs-table-hover-bg:#29c1a3;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color:#fff;--bs-table-bg:#3498db;--bs-table-border-color:#48a2df;--bs-table-striped-bg:#3e9ddd;--bs-table-striped-color:#fff;--bs-table-active-bg:#48a2df;--bs-table-active-color:#fff;--bs-table-hover-bg:#43a0de;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color:#fff;--bs-table-bg:#f39c12;--bs-table-border-color:#f4a62a;--bs-table-striped-bg:#f4a11e;--bs-table-striped-color:#fff;--bs-table-active-bg:#f4a62a;--bs-table-active-color:#000;--bs-table-hover-bg:#f4a324;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color:#fff;--bs-table-bg:#e74c3c;--bs-table-border-color:#e95e50;--bs-table-striped-bg:#e85546;--bs-table-striped-color:#fff;--bs-table-active-bg:#e95e50;--bs-table-active-color:#fff;--bs-table-hover-bg:#e9594b;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color:#000;--bs-table-bg:#ecf0f1;--bs-table-border-color:#d4d8d9;--bs-table-striped-bg:#e0e4e5;--bs-table-striped-color:#000;--bs-table-active-bg:#d4d8d9;--bs-table-active-color:#000;--bs-table-hover-bg:#dadedf;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#7b8a8b;--bs-table-border-color:#889697;--bs-table-striped-bg:#829091;--bs-table-striped-color:#fff;--bs-table-active-bg:#889697;--bs-table-active-color:#fff;--bs-table-hover-bg:#859394;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#95a5a6}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.375rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fff;border-color:#969fa8;outline:0;box-shadow:0 0 0 .25rem rgba(44,62,80,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#95a5a6;opacity:1}.form-control::placeholder{color:#95a5a6;opacity:1}.form-control:disabled{background-color:#ecf0f1;opacity:1}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#ecf0f1;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#ecf0f1;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#e0e4e5}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#e0e4e5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.25rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{width:3rem;height:calc(1.5em + .75rem + 2px);padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:.375rem}.form-control-color::-webkit-color-swatch{border-radius:.375rem}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + 2px)}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + 2px)}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(0.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.375rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#969fa8;outline:0;box-shadow:0 0 0 .25rem rgba(44,62,80,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#ecf0f1}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:.25rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:.5rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#969fa8;outline:0;box-shadow:0 0 0 .25rem rgba(44,62,80,.25)}.form-check-input:checked{background-color:#2c3e50;border-color:#2c3e50}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#2c3e50;border-color:#2c3e50;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23969fa8'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(44,62,80,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(44,62,80,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#2c3e50;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#c0c5cb}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#2c3e50;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#c0c5cb}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#b4bcc2}.form-range:disabled::-moz-range-thumb{background-color:#b4bcc2}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;width:100%;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::-moz-placeholder,.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:not(:-moz-placeholder-shown),.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label{border-width:1px 0}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#ecf0f1;border:1px solid #ced4da;border-radius:.375rem}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:.25rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#18bc9c}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(24,188,156,.9);border-radius:.375rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#18bc9c;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2318bc9c' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#18bc9c;box-shadow:0 0 0 .25rem rgba(24,188,156,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#18bc9c}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2318bc9c' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#18bc9c;box-shadow:0 0 0 .25rem rgba(24,188,156,.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#18bc9c}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#18bc9c}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(24,188,156,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#18bc9c}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-control:not(:focus):valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.was-validated .input-group>.form-select:not(:focus):valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#e74c3c}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(231,76,60,.9);border-radius:.375rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#e74c3c;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23e74c3c'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23e74c3c' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#e74c3c;box-shadow:0 0 0 .25rem rgba(231,76,60,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#e74c3c}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23e74c3c'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23e74c3c' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#e74c3c;box-shadow:0 0 0 .25rem rgba(231,76,60,.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#e74c3c}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#e74c3c}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(231,76,60,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#e74c3c}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-control:not(:focus):invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.was-validated .input-group>.form-select:not(:focus):invalid{z-index:4}.btn{--bs-btn-padding-x:0.75rem;--bs-btn-padding-y:0.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:#212529;--bs-btn-bg:transparent;--bs-btn-border-width:1px;--bs-btn-border-color:transparent;--bs-btn-border-radius:0.375rem;--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.15),0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity:0.65;--bs-btn-focus-box-shadow:0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible,.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#2c3e50;--bs-btn-border-color:#2c3e50;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#253544;--bs-btn-hover-border-color:#233240;--bs-btn-focus-shadow-rgb:76,91,106;--bs-btn-active-color:#fff;--bs-btn-active-bg:#233240;--bs-btn-active-border-color:#212f3c;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#2c3e50;--bs-btn-disabled-border-color:#2c3e50}.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#95a5a6;--bs-btn-border-color:#95a5a6;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#7f8c8d;--bs-btn-hover-border-color:#778485;--bs-btn-focus-shadow-rgb:165,179,179;--bs-btn-active-color:#fff;--bs-btn-active-bg:#778485;--bs-btn-active-border-color:#707c7d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#95a5a6;--bs-btn-disabled-border-color:#95a5a6}.btn-success{--bs-btn-color:#fff;--bs-btn-bg:#18bc9c;--bs-btn-border-color:#18bc9c;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#14a085;--bs-btn-hover-border-color:#13967d;--bs-btn-focus-shadow-rgb:59,198,171;--bs-btn-active-color:#fff;--bs-btn-active-bg:#13967d;--bs-btn-active-border-color:#128d75;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#18bc9c;--bs-btn-disabled-border-color:#18bc9c}.btn-info{--bs-btn-color:#fff;--bs-btn-bg:#3498db;--bs-btn-border-color:#3498db;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#2c81ba;--bs-btn-hover-border-color:#2a7aaf;--bs-btn-focus-shadow-rgb:82,167,224;--bs-btn-active-color:#fff;--bs-btn-active-bg:#2a7aaf;--bs-btn-active-border-color:#2772a4;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#3498db;--bs-btn-disabled-border-color:#3498db}.btn-warning{--bs-btn-color:#fff;--bs-btn-bg:#f39c12;--bs-btn-border-color:#f39c12;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#cf850f;--bs-btn-hover-border-color:#c27d0e;--bs-btn-focus-shadow-rgb:245,171,54;--bs-btn-active-color:#fff;--bs-btn-active-bg:#c27d0e;--bs-btn-active-border-color:#b6750e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#f39c12;--bs-btn-disabled-border-color:#f39c12}.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#e74c3c;--bs-btn-border-color:#e74c3c;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#c44133;--bs-btn-hover-border-color:#b93d30;--bs-btn-focus-shadow-rgb:235,103,89;--bs-btn-active-color:#fff;--bs-btn-active-bg:#b93d30;--bs-btn-active-border-color:#ad392d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#e74c3c;--bs-btn-disabled-border-color:#e74c3c}.btn-light{--bs-btn-color:#000;--bs-btn-bg:#ecf0f1;--bs-btn-border-color:#ecf0f1;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#c9cccd;--bs-btn-hover-border-color:#bdc0c1;--bs-btn-focus-shadow-rgb:201,204,205;--bs-btn-active-color:#000;--bs-btn-active-bg:#bdc0c1;--bs-btn-active-border-color:#b1b4b5;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#ecf0f1;--bs-btn-disabled-border-color:#ecf0f1}.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#7b8a8b;--bs-btn-border-color:#7b8a8b;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#8f9c9c;--bs-btn-hover-border-color:#889697;--bs-btn-focus-shadow-rgb:143,156,156;--bs-btn-active-color:#fff;--bs-btn-active-bg:#95a1a2;--bs-btn-active-border-color:#889697;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#7b8a8b;--bs-btn-disabled-border-color:#7b8a8b}.btn-outline-primary{--bs-btn-color:#2c3e50;--bs-btn-border-color:#2c3e50;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#2c3e50;--bs-btn-hover-border-color:#2c3e50;--bs-btn-focus-shadow-rgb:44,62,80;--bs-btn-active-color:#fff;--bs-btn-active-bg:#2c3e50;--bs-btn-active-border-color:#2c3e50;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#2c3e50;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#2c3e50;--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#95a5a6;--bs-btn-border-color:#95a5a6;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#95a5a6;--bs-btn-hover-border-color:#95a5a6;--bs-btn-focus-shadow-rgb:149,165,166;--bs-btn-active-color:#fff;--bs-btn-active-bg:#95a5a6;--bs-btn-active-border-color:#95a5a6;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#95a5a6;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#95a5a6;--bs-gradient:none}.btn-outline-success{--bs-btn-color:#18bc9c;--bs-btn-border-color:#18bc9c;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#18bc9c;--bs-btn-hover-border-color:#18bc9c;--bs-btn-focus-shadow-rgb:24,188,156;--bs-btn-active-color:#fff;--bs-btn-active-bg:#18bc9c;--bs-btn-active-border-color:#18bc9c;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#18bc9c;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#18bc9c;--bs-gradient:none}.btn-outline-info{--bs-btn-color:#3498db;--bs-btn-border-color:#3498db;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#3498db;--bs-btn-hover-border-color:#3498db;--bs-btn-focus-shadow-rgb:52,152,219;--bs-btn-active-color:#fff;--bs-btn-active-bg:#3498db;--bs-btn-active-border-color:#3498db;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#3498db;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#3498db;--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#f39c12;--bs-btn-border-color:#f39c12;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#f39c12;--bs-btn-hover-border-color:#f39c12;--bs-btn-focus-shadow-rgb:243,156,18;--bs-btn-active-color:#fff;--bs-btn-active-bg:#f39c12;--bs-btn-active-border-color:#f39c12;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#f39c12;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f39c12;--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#e74c3c;--bs-btn-border-color:#e74c3c;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#e74c3c;--bs-btn-hover-border-color:#e74c3c;--bs-btn-focus-shadow-rgb:231,76,60;--bs-btn-active-color:#fff;--bs-btn-active-bg:#e74c3c;--bs-btn-active-border-color:#e74c3c;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#e74c3c;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#e74c3c;--bs-gradient:none}.btn-outline-light{--bs-btn-color:#ecf0f1;--bs-btn-border-color:#ecf0f1;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ecf0f1;--bs-btn-hover-border-color:#ecf0f1;--bs-btn-focus-shadow-rgb:236,240,241;--bs-btn-active-color:#000;--bs-btn-active-bg:#ecf0f1;--bs-btn-active-border-color:#ecf0f1;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#ecf0f1;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#ecf0f1;--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#7b8a8b;--bs-btn-border-color:#7b8a8b;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#7b8a8b;--bs-btn-hover-border-color:#7b8a8b;--bs-btn-focus-shadow-rgb:123,138,139;--bs-btn-active-color:#fff;--bs-btn-active-bg:#7b8a8b;--bs-btn-active-border-color:#7b8a8b;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#7b8a8b;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#7b8a8b;--bs-gradient:none}.btn-link{--bs-btn-font-weight:400;--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:#95a5a6;--bs-btn-disabled-border-color:transparent;--bs-btn-box-shadow:none;--bs-btn-focus-shadow-rgb:76,91,106;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--bs-btn-padding-y:0.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius:0.5rem}.btn-group-sm>.btn,.btn-sm{--bs-btn-padding-y:0.25rem;--bs-btn-padding-x:0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius:0.25rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex:1000;--bs-dropdown-min-width:10rem;--bs-dropdown-padding-x:0;--bs-dropdown-padding-y:0.5rem;--bs-dropdown-spacer:0.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color:#212529;--bs-dropdown-bg:#fff;--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-border-radius:0.375rem;--bs-dropdown-border-width:1px;--bs-dropdown-inner-border-radius:calc(0.375rem - 1px);--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y:0.5rem;--bs-dropdown-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-dropdown-link-color:#7b8a8b;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-link-hover-bg:#2c3e50;--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#2c3e50;--bs-dropdown-link-disabled-color:#b4bcc2;--bs-dropdown-item-padding-x:1rem;--bs-dropdown-item-padding-y:0.25rem;--bs-dropdown-header-color:#95a5a6;--bs-dropdown-header-padding-x:1rem;--bs-dropdown-header-padding-y:0.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color:#dee2e6;--bs-dropdown-bg:#343a40;--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color:#dee2e6;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg:rgba(255, 255, 255, 0.15);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#2c3e50;--bs-dropdown-link-disabled-color:#b4bcc2;--bs-dropdown-header-color:#b4bcc2}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:.375rem}.btn-group>.btn-group:not(:first-child),.btn-group>:not(.btn-check:first-child)+.btn{margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x:2rem;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:#95a5a6;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link.disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:1px;--bs-nav-tabs-border-color:#ecf0f1;--bs-nav-tabs-border-radius:0.375rem;--bs-nav-tabs-link-hover-border-color:#ecf0f1 #ecf0f1 #ecf0f1;--bs-nav-tabs-link-active-color:#7b8a8b;--bs-nav-tabs-link-active-bg:#fff;--bs-nav-tabs-link-active-border-color:#dee2e6 #dee2e6 #fff;border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));background:0 0;border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.disabled,.nav-tabs .nav-link:disabled{color:var(--bs-nav-link-disabled-color);background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius:0.375rem;--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#2c3e50}.nav-pills .nav-link{background:0 0;border:0;border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link:disabled{color:var(--bs-nav-link-disabled-color);background-color:transparent;border-color:transparent}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:1rem;--bs-navbar-color:rgba(0, 0, 0, 0.55);--bs-navbar-hover-color:rgba(0, 0, 0, 0.7);--bs-navbar-disabled-color:rgba(0, 0, 0, 0.3);--bs-navbar-active-color:rgba(0, 0, 0, 0.9);--bs-navbar-brand-padding-y:0.3125rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:1.25rem;--bs-navbar-brand-color:rgba(0, 0, 0, 0.9);--bs-navbar-brand-hover-color:rgba(0, 0, 0, 0.9);--bs-navbar-nav-link-padding-x:0.5rem;--bs-navbar-toggler-padding-y:0.25rem;--bs-navbar-toggler-padding-x:0.75rem;--bs-navbar-toggler-font-size:1.25rem;--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color:rgba(0, 0, 0, 0.1);--bs-navbar-toggler-border-radius:0.375rem;--bs-navbar-toggler-focus-width:0.25rem;--bs-navbar-toggler-transition:box-shadow 0.15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x:0;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .show>.nav-link{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark{--bs-navbar-color:#fff;--bs-navbar-hover-color:#2c3e50;--bs-navbar-disabled-color:rgba(255, 255, 255, 0.25);--bs-navbar-active-color:#2c3e50;--bs-navbar-brand-color:#fff;--bs-navbar-brand-hover-color:#fff;--bs-navbar-toggler-border-color:rgba(255, 255, 255, 0.1);--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23fff' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y:1rem;--bs-card-spacer-x:1rem;--bs-card-title-spacer-y:0.5rem;--bs-card-border-width:1px;--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:0.375rem;--bs-card-box-shadow: ;--bs-card-inner-border-radius:calc(0.375rem - 1px);--bs-card-cap-padding-y:0.5rem;--bs-card-cap-padding-x:1rem;--bs-card-cap-bg:rgba(0, 0, 0, 0.03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg:#fff;--bs-card-img-overlay-padding:1rem;--bs-card-group-margin:0.75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion{--bs-accordion-color:#212529;--bs-accordion-bg:#fff;--bs-accordion-transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,border-radius 0.15s ease;--bs-accordion-border-color:var(--bs-border-color);--bs-accordion-border-width:1px;--bs-accordion-border-radius:0.375rem;--bs-accordion-inner-border-radius:calc(0.375rem - 1px);--bs-accordion-btn-padding-x:1.25rem;--bs-accordion-btn-padding-y:1rem;--bs-accordion-btn-color:#212529;--bs-accordion-btn-bg:var(--bs-accordion-bg);--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width:1.25rem;--bs-accordion-btn-icon-transform:rotate(-180deg);--bs-accordion-btn-icon-transition:transform 0.2s ease-in-out;--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23283848'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color:#969fa8;--bs-accordion-btn-focus-box-shadow:0 0 0 0.25rem rgba(44, 62, 80, 0.25);--bs-accordion-body-padding-x:1.25rem;--bs-accordion-body-padding-y:1rem;--bs-accordion-active-color:#283848;--bs-accordion-active-bg:#eaecee}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}.breadcrumb{--bs-breadcrumb-padding-x:0.75rem;--bs-breadcrumb-padding-y:0.375rem;--bs-breadcrumb-margin-bottom:1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius:0.25rem;--bs-breadcrumb-divider-color:#95a5a6;--bs-breadcrumb-item-padding-x:0.5rem;--bs-breadcrumb-item-active-color:#95a5a6;display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x:0.75rem;--bs-pagination-padding-y:0.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color:#fff;--bs-pagination-bg:#18bc9c;--bs-pagination-border-width:0;--bs-pagination-border-color:transparent;--bs-pagination-border-radius:0.375rem;--bs-pagination-hover-color:#fff;--bs-pagination-hover-bg:#0f7864;--bs-pagination-hover-border-color:transparent;--bs-pagination-focus-color:var(--bs-link-hover-color);--bs-pagination-focus-bg:#ecf0f1;--bs-pagination-focus-box-shadow:0 0 0 0.25rem rgba(44, 62, 80, 0.25);--bs-pagination-active-color:#fff;--bs-pagination-active-bg:#0f7864;--bs-pagination-active-border-color:transparent;--bs-pagination-disabled-color:#ecf0f1;--bs-pagination-disabled-bg:#3be6c4;--bs-pagination-disabled-border-color:transparent;display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.active>.page-link,.page-link.active{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.disabled>.page-link,.page-link.disabled{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:0}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x:1.5rem;--bs-pagination-padding-y:0.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius:0.5rem}.pagination-sm{--bs-pagination-padding-x:0.5rem;--bs-pagination-padding-y:0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius:0.25rem}.badge{--bs-badge-padding-x:0.65em;--bs-badge-padding-y:0.35em;--bs-badge-font-size:0.75em;--bs-badge-font-weight:700;--bs-badge-color:#fff;--bs-badge-border-radius:0.375rem;display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:1px solid var(--bs-alert-border-color);--bs-alert-border-radius:0.375rem;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color:#1a2530;--bs-alert-bg:#d5d8dc;--bs-alert-border-color:#c0c5cb}.alert-primary .alert-link{color:#151e26}.alert-secondary{--bs-alert-color:#596364;--bs-alert-bg:#eaeded;--bs-alert-border-color:#dfe4e4}.alert-secondary .alert-link{color:#474f50}.alert-success{--bs-alert-color:#0e715e;--bs-alert-bg:#d1f2eb;--bs-alert-border-color:#baebe1}.alert-success .alert-link{color:#0b5a4b}.alert-info{--bs-alert-color:#1f5b83;--bs-alert-bg:#d6eaf8;--bs-alert-border-color:#c2e0f4}.alert-info .alert-link{color:#194969}.alert-warning{--bs-alert-color:#925e0b;--bs-alert-bg:#fdebd0;--bs-alert-border-color:#fbe1b8}.alert-warning .alert-link{color:#754b09}.alert-danger{--bs-alert-color:#8b2e24;--bs-alert-bg:#fadbd8;--bs-alert-border-color:#f8c9c5}.alert-danger .alert-link{color:#6f251d}.alert-light{--bs-alert-color:#8e9091;--bs-alert-bg:#fbfcfc;--bs-alert-border-color:#f9fbfb}.alert-light .alert-link{color:#727374}.alert-dark{--bs-alert-color:#4a5353;--bs-alert-bg:#e5e8e8;--bs-alert-border-color:#d7dcdc}.alert-dark .alert-link{color:#3b4242}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{--bs-progress-height:1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg:#ecf0f1;--bs-progress-border-radius:0.375rem;--bs-progress-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-progress-bar-color:#fff;--bs-progress-bar-bg:#2c3e50;--bs-progress-bar-transition:width 0.6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color:#212529;--bs-list-group-bg:#fff;--bs-list-group-border-color:rgba(0, 0, 0, 0.125);--bs-list-group-border-width:1px;--bs-list-group-border-radius:0.375rem;--bs-list-group-item-padding-x:1rem;--bs-list-group-item-padding-y:0.5rem;--bs-list-group-action-color:#7b8a8b;--bs-list-group-action-hover-color:#7b8a8b;--bs-list-group-action-hover-bg:#ecf0f1;--bs-list-group-action-active-color:#212529;--bs-list-group-action-active-bg:#ecf0f1;--bs-list-group-disabled-color:#95a5a6;--bs-list-group-disabled-bg:#ecf0f1;--bs-list-group-active-color:#fff;--bs-list-group-active-bg:#2c3e50;--bs-list-group-active-border-color:#2c3e50;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#1a2530;background-color:#d5d8dc}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#1a2530;background-color:#c0c2c6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#1a2530;border-color:#1a2530}.list-group-item-secondary{color:#596364;background-color:#eaeded}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#596364;background-color:#d3d5d5}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#596364;border-color:#596364}.list-group-item-success{color:#0e715e;background-color:#d1f2eb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#0e715e;background-color:#bcdad4}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0e715e;border-color:#0e715e}.list-group-item-info{color:#1f5b83;background-color:#d6eaf8}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#1f5b83;background-color:#c1d3df}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#1f5b83;border-color:#1f5b83}.list-group-item-warning{color:#925e0b;background-color:#fdebd0}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#925e0b;background-color:#e4d4bb}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#925e0b;border-color:#925e0b}.list-group-item-danger{color:#8b2e24;background-color:#fadbd8}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#8b2e24;background-color:#e1c5c2}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#8b2e24;border-color:#8b2e24}.list-group-item-light{color:#8e9091;background-color:#fbfcfc}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#8e9091;background-color:#e2e3e3}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#8e9091;border-color:#8e9091}.list-group-item-dark{color:#4a5353;background-color:#e5e8e8}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#4a5353;background-color:#ced1d1}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#4a5353;border-color:#4a5353}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#fff;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:.4}.btn-close:hover{color:#fff;text-decoration:none;opacity:1}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(44,62,80,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{--bs-toast-zindex:1090;--bs-toast-padding-x:0.75rem;--bs-toast-padding-y:0.5rem;--bs-toast-spacing:1.5rem;--bs-toast-max-width:350px;--bs-toast-font-size:0.875rem;--bs-toast-color: ;--bs-toast-bg:rgba(255, 255, 255, 0.85);--bs-toast-border-width:1px;--bs-toast-border-color:var(--bs-border-color-translucent);--bs-toast-border-radius:0.375rem;--bs-toast-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-toast-header-color:#95a5a6;--bs-toast-header-bg:rgba(255, 255, 255, 0.85);--bs-toast-header-border-color:rgba(0, 0, 0, 0.05);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex:1090;position:absolute;z-index:var(--bs-toast-zindex);width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex:1055;--bs-modal-width:500px;--bs-modal-padding:1rem;--bs-modal-margin:0.5rem;--bs-modal-color: ;--bs-modal-bg:#fff;--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:1px;--bs-modal-border-radius:0.5rem;--bs-modal-box-shadow:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-modal-inner-border-radius:calc(0.5rem - 1px);--bs-modal-header-padding-x:1rem;--bs-modal-header-padding-y:1rem;--bs-modal-header-padding:1rem 1rem;--bs-modal-header-border-color:var(--bs-border-color);--bs-modal-header-border-width:1px;--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color:var(--bs-border-color);--bs-modal-footer-border-width:1px;position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex:1050;--bs-backdrop-bg:#000;--bs-backdrop-opacity:0.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex:1080;--bs-tooltip-max-width:200px;--bs-tooltip-padding-x:0.5rem;--bs-tooltip-padding-y:0.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:0.875rem;--bs-tooltip-color:#fff;--bs-tooltip-bg:#000;--bs-tooltip-border-radius:0.375rem;--bs-tooltip-opacity:0.9;--bs-tooltip-arrow-width:0.8rem;--bs-tooltip-arrow-height:0.4rem;z-index:var(--bs-tooltip-zindex);display:block;padding:var(--bs-tooltip-arrow-height);margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex:1070;--bs-popover-max-width:276px;--bs-popover-font-size:0.875rem;--bs-popover-bg:#fff;--bs-popover-border-width:1px;--bs-popover-border-color:var(--bs-border-color-translucent);--bs-popover-border-radius:0.5rem;--bs-popover-inner-border-radius:calc(0.5rem - 1px);--bs-popover-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color: ;--bs-popover-header-bg:#f0f0f0;--bs-popover-body-padding-x:1rem;--bs-popover-body-padding-y:1rem;--bs-popover-body-color:#212529;--bs-popover-arrow-width:1rem;--bs-popover-arrow-height:0.5rem;--bs-popover-arrow-border:var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-top>.popover-arrow::before{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-end>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::before{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-start>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}.spinner-border,.spinner-grow{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-border-width:0.25em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--bs-offcanvas-zindex:1045;--bs-offcanvas-width:400px;--bs-offcanvas-height:30vh;--bs-offcanvas-padding-x:1rem;--bs-offcanvas-padding-y:1rem;--bs-offcanvas-color: ;--bs-offcanvas-bg:#fff;--bs-offcanvas-border-width:1px;--bs-offcanvas-border-color:var(--bs-border-color-translucent);--bs-offcanvas-box-shadow:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075)}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:575.98px){.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}}@media (max-width:575.98px){.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media (min-width:576px){.offcanvas-sm{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:767.98px) and (prefers-reduced-motion:reduce){.offcanvas-md{transition:none}}@media (max-width:767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:767.98px){.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:767.98px){.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:767.98px){.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:767.98px){.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}}@media (max-width:767.98px){.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media (min-width:768px){.offcanvas-md{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:991.98px) and (prefers-reduced-motion:reduce){.offcanvas-lg{transition:none}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:991.98px){.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}}@media (max-width:991.98px){.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media (min-width:992px){.offcanvas-lg{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:1199.98px) and (prefers-reduced-motion:reduce){.offcanvas-xl{transition:none}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:1199.98px){.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}}@media (max-width:1199.98px){.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media (min-width:1200px){.offcanvas-xl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}}@media (max-width:1399.98px) and (prefers-reduced-motion:reduce){.offcanvas-xxl{transition:none}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}}@media (max-width:1399.98px){.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}}@media (max-width:1399.98px){.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{visibility:visible}}@media (min-width:1400px){.offcanvas-xxl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin-top:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(44,62,80,var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(149,165,166,var(--bs-bg-opacity,1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(24,188,156,var(--bs-bg-opacity,1))!important}.text-bg-info{color:#fff!important;background-color:RGBA(52,152,219,var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#fff!important;background-color:RGBA(243,156,18,var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(231,76,60,var(--bs-bg-opacity,1))!important}.text-bg-light{color:#000!important;background-color:RGBA(236,240,241,var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(123,138,139,var(--bs-bg-opacity,1))!important}.link-primary{color:#2c3e50!important}.link-primary:focus,.link-primary:hover{color:#233240!important}.link-secondary{color:#95a5a6!important}.link-secondary:focus,.link-secondary:hover{color:#778485!important}.link-success{color:#18bc9c!important}.link-success:focus,.link-success:hover{color:#13967d!important}.link-info{color:#3498db!important}.link-info:focus,.link-info:hover{color:#2a7aaf!important}.link-warning{color:#f39c12!important}.link-warning:focus,.link-warning:hover{color:#c27d0e!important}.link-danger{color:#e74c3c!important}.link-danger:focus,.link-danger:hover{color:#b93d30!important}.link-light{color:#ecf0f1!important}.link-light:focus,.link-light:hover{color:#f0f3f4!important}.link-dark{color:#7b8a8b!important}.link-dark:focus,.link-dark:hover{color:#626e6f!important}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:1px;min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity:1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity:1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity:1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity:1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity:1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity:1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity:1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity:1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-1{--bs-border-width:1px}.border-2{--bs-border-width:2px}.border-3{--bs-border-width:3px}.border-4{--bs-border-width:4px}.border-5{--bs-border-width:5px}.border-opacity-10{--bs-border-opacity:0.1}.border-opacity-25{--bs-border-opacity:0.25}.border-opacity-50{--bs-border-opacity:0.5}.border-opacity-75{--bs-border-opacity:0.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.425rem + 2.1vw)!important}.fs-2{font-size:calc(1.375rem + 1.5vw)!important}.fs-3{font-size:calc(1.325rem + .9vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-semibold{font-weight:600!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:#95a5a6!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-2xl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:3rem!important}.fs-2{font-size:2.5rem!important}.fs-3{font-size:2rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}:root{color-scheme:light}.bg-primary .navbar-nav .nav-link.active,.bg-primary .navbar-nav .nav-link:focus,.bg-primary .navbar-nav .nav-link:hover,.bg-primary .navbar-nav .show>.nav-link{color:#18bc9c!important}.nav-tabs .nav-item.open .nav-link,.nav-tabs .nav-item.open .nav-link:focus,.nav-tabs .nav-item.open .nav-link:hover,.nav-tabs .nav-link.active,.nav-tabs .nav-link.active:focus,.nav-tabs .nav-link.active:hover{color:#2c3e50}.pagination a:hover{text-decoration:none}.badge.bg-light{color:#7b8a8b}.alert{color:#fff;border:none}.alert .alert-link,.alert a{color:#fff;text-decoration:underline}.alert-primary{background-color:#2c3e50}.alert-secondary{background-color:#95a5a6}.alert-success{background-color:#18bc9c}.alert-info{background-color:#3498db}.alert-warning{background-color:#f39c12}.alert-danger{background-color:#e74c3c}.alert-light{background-color:#ecf0f1}.alert-dark{background-color:#7b8a8b}.alert-light,.alert-light .alert-link,.alert-light a{color:#212529}.modal .btn-close,.offcanvas .btn-close,.toast .btn-close{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e")} \ No newline at end of file diff --git a/webserver/public/baby-gru/monomers/a/A.cif b/webapp/public/baby-gru/monomers/a/A.cif similarity index 100% rename from webserver/public/baby-gru/monomers/a/A.cif rename to webapp/public/baby-gru/monomers/a/A.cif diff --git a/webserver/public/baby-gru/monomers/a/ALA.cif b/webapp/public/baby-gru/monomers/a/ALA.cif similarity index 100% rename from webserver/public/baby-gru/monomers/a/ALA.cif rename to webapp/public/baby-gru/monomers/a/ALA.cif diff --git a/webserver/public/baby-gru/monomers/a/ARG.cif b/webapp/public/baby-gru/monomers/a/ARG.cif similarity index 100% rename from webserver/public/baby-gru/monomers/a/ARG.cif rename to webapp/public/baby-gru/monomers/a/ARG.cif diff --git a/webserver/public/baby-gru/monomers/a/ASN.cif b/webapp/public/baby-gru/monomers/a/ASN.cif similarity index 100% rename from webserver/public/baby-gru/monomers/a/ASN.cif rename to webapp/public/baby-gru/monomers/a/ASN.cif diff --git a/webserver/public/baby-gru/monomers/a/ASP.cif b/webapp/public/baby-gru/monomers/a/ASP.cif similarity index 100% rename from webserver/public/baby-gru/monomers/a/ASP.cif rename to webapp/public/baby-gru/monomers/a/ASP.cif diff --git a/webapp/public/baby-gru/monomers/b/BMA.cif b/webapp/public/baby-gru/monomers/b/BMA.cif new file mode 100644 index 000000000..6aa7862ea --- /dev/null +++ b/webapp/public/baby-gru/monomers/b/BMA.cif @@ -0,0 +1,193 @@ +# /home/mihaela/Downloads/cifs/BMA_unimodal.cif +# modified by Privateer +data_comp_list +loop_ +_chem_comp.id +_chem_comp.three_letter_code +_chem_comp.name +_chem_comp.group +_chem_comp.number_atoms_all +_chem_comp.number_atoms_nh +_chem_comp.desc_level +BMA BMA 'BETA-D-MANNOSE ' pyranose 24 12 . + +data_comp_BMA +loop_ +_chem_comp_atom.comp_id +_chem_comp_atom.atom_id +_chem_comp_atom.type_symbol +_chem_comp_atom.type_energy +_chem_comp_atom.charge +_chem_comp_atom.x +_chem_comp_atom.y +_chem_comp_atom.z +BMA C6 C CH2 0 2.375 -0.365 -0.287 +BMA C5 C CH1 0 1.023 -0.058 0.318 +BMA C4 C CH1 0 -0.012 -1.163 0.074 +BMA C3 C CH1 0 -1.385 -0.732 0.578 +BMA C2 C CH1 0 -1.778 0.622 -0.005 +BMA C1 C CH1 0 -0.685 1.654 0.235 +BMA O5 O O2 0 0.565 1.177 -0.284 +BMA O1 O OH1 0 -1.026 2.865 -0.365 +BMA O2 O OH1 0 -2.060 0.520 -1.398 +BMA O3 O OH1 0 -2.369 -1.713 0.243 +BMA O4 O OH1 0 0.398 -2.350 0.748 +BMA O6 O OH1 0 3.310 0.681 -0.033 +BMA H61 H H 0 2.278 -0.484 -1.255 +BMA H62 H H 0 2.718 -1.202 0.090 +BMA H5 H H 0 1.125 0.075 1.291 +BMA H4 H H 0 -0.069 -1.345 -0.894 +BMA H3 H H 0 -1.345 -0.650 1.565 +BMA H2 H H 0 -2.590 0.939 0.458 +BMA H1 H H 0 -0.586 1.799 1.209 +BMA HO1 H H 0 -0.430 3.436 -0.179 +BMA HO2 H H 0 -2.417 1.234 -1.660 +BMA HO3 H H 0 -2.408 -1.795 -0.594 +BMA HO4 H H 0 -0.093 -2.991 0.513 +BMA HO6 H H 0 4.053 0.491 -0.395 + +loop_ +_chem_comp_bond.comp_id +_chem_comp_bond.atom_id_1 +_chem_comp_bond.atom_id_2 +_chem_comp_bond.type +_chem_comp_bond.aromatic +_chem_comp_bond.value_dist_nucleus +_chem_comp_bond.value_dist_nucleus_esd +_chem_comp_bond.value_dist +_chem_comp_bond.value_dist_esd +BMA C6 C5 SINGLE n 1.511 0.0142 1.511 0.0142 +BMA C5 C4 SINGLE n 1.524 0.0200 1.524 0.0200 +BMA C4 C3 SINGLE n 1.520 0.0158 1.520 0.0158 +BMA C3 C2 SINGLE n 1.519 0.0200 1.519 0.0200 +BMA C2 C1 SINGLE n 1.516 0.0200 1.516 0.0200 +BMA C1 O5 SINGLE n 1.431 0.0165 1.431 0.0165 +BMA C1 O1 SINGLE n 1.392 0.0200 1.392 0.0200 +BMA C2 O2 SINGLE n 1.425 0.0112 1.425 0.0112 +BMA C3 O3 SINGLE n 1.427 0.0138 1.427 0.0138 +BMA C4 O4 SINGLE n 1.425 0.0176 1.425 0.0176 +BMA C6 O6 SINGLE n 1.426 0.0200 1.426 0.0200 +BMA C5 O5 SINGLE n 1.440 0.0195 1.440 0.0195 +BMA C6 H61 SINGLE n 1.089 0.0100 0.980 0.0184 +BMA C6 H62 SINGLE n 1.089 0.0100 0.980 0.0184 +BMA C5 H5 SINGLE n 1.089 0.0100 0.988 0.0182 +BMA C4 H4 SINGLE n 1.089 0.0100 0.986 0.0131 +BMA C3 H3 SINGLE n 1.089 0.0100 0.991 0.0121 +BMA C2 H2 SINGLE n 1.089 0.0100 0.987 0.0140 +BMA C1 H1 SINGLE n 1.089 0.0100 0.990 0.0200 +BMA O1 HO1 SINGLE n 0.970 0.0120 0.846 0.0200 +BMA O2 HO2 SINGLE n 0.970 0.0120 0.841 0.0200 +BMA O3 HO3 SINGLE n 0.970 0.0120 0.841 0.0200 +BMA O4 HO4 SINGLE n 0.970 0.0120 0.841 0.0200 +BMA O6 HO6 SINGLE n 0.970 0.0120 0.848 0.0200 + +loop_ +_chem_comp_angle.comp_id +_chem_comp_angle.atom_id_1 +_chem_comp_angle.atom_id_2 +_chem_comp_angle.atom_id_3 +_chem_comp_angle.value_angle +_chem_comp_angle.value_angle_esd +BMA C5 C6 O6 111.299 2.09 +BMA C5 C6 H61 109.363 1.50 +BMA C5 C6 H62 109.363 1.50 +BMA O6 C6 H61 109.265 1.50 +BMA O6 C6 H62 109.265 1.50 +BMA H61 C6 H62 108.155 1.50 +BMA C6 C5 C4 112.996 1.59 +BMA C6 C5 O5 106.879 1.50 +BMA C6 C5 H5 109.269 1.50 +BMA C4 C5 O5 109.140 1.86 +BMA C4 C5 H5 108.960 1.50 +BMA O5 C5 H5 109.134 1.50 +BMA C5 C4 C3 110.272 1.76 +BMA C5 C4 O4 109.072 2.07 +BMA C5 C4 H4 109.223 1.50 +BMA C3 C4 O4 110.101 1.97 +BMA C3 C4 H4 109.032 1.50 +BMA O4 C4 H4 109.194 1.50 +BMA C4 C3 C2 110.687 1.67 +BMA C4 C3 O3 110.243 1.88 +BMA C4 C3 H3 108.653 1.50 +BMA C2 C3 O3 109.587 2.09 +BMA C2 C3 H3 108.712 1.50 +BMA O3 C3 H3 108.767 1.50 +BMA C3 C2 C1 111.543 1.84 +BMA C3 C2 O2 111.053 2.62 +BMA C3 C2 H2 108.505 1.50 +BMA C1 C2 O2 109.956 1.70 +BMA C1 C2 H2 107.431 2.02 +BMA O2 C2 H2 108.551 1.50 +BMA C2 C1 O5 110.495 2.07 +BMA C2 C1 O1 109.304 2.75 +BMA C2 C1 H1 109.287 1.97 +BMA O5 C1 O1 110.093 3.00 +BMA O5 C1 H1 108.645 1.60 +BMA O1 C1 H1 108.897 1.73 +BMA C1 O5 C5 113.507 1.73 +BMA C1 O1 HO1 108.606 2.51 +BMA C2 O2 HO2 109.126 2.06 +BMA C3 O3 HO3 108.895 2.41 +BMA C4 O4 HO4 109.564 3.00 +BMA C6 O6 HO6 109.472 2.41 + +loop_ +_chem_comp_tor.comp_id +_chem_comp_tor.id +_chem_comp_tor.atom_id_1 +_chem_comp_tor.atom_id_2 +_chem_comp_tor.atom_id_3 +_chem_comp_tor.atom_id_4 +_chem_comp_tor.value_angle +_chem_comp_tor.value_angle_esd +_chem_comp_tor.period +BMA tors_12 C4 C5 C6 O6 -179.693008 10.00 3 +BMA tors_11 C5 C6 O6 HO6 -178.897552 10.00 3 +BMA tors_10 O4 C4 C5 C6 64.971329 10.00 3 +BMA tors_9 C6 C5 O5 C1 -176.889603 10.00 3 +BMA tors_8 C5 C4 O4 HO4 -170.481110 10.00 3 +BMA tors_7 O3 C3 C4 O4 -64.442444 10.00 3 +BMA tors_6 O2 C2 C3 O3 -52.116501 10.00 3 +BMA tors_5 C4 C3 O3 HO3 -60.900295 10.00 3 +BMA tors_4 O1 C1 C2 O2 53.323399 10.00 3 +BMA tors_3 C3 C2 O2 HO2 168.871964 10.00 3 +BMA tors_2 O1 C1 O5 C5 177.979019 10.00 3 +BMA tors_1 C2 C1 O1 HO1 176.512375 10.00 3 +BMA ring_1 C5 O5 C1 C2 -60.229843 3.0 1 +BMA ring_2 O5 C1 C2 C3 54.993977 3.0 1 +BMA ring_3 C1 C2 C3 C4 -52.625633 3.0 1 +BMA ring_4 C2 C3 C4 C5 52.694118 3.0 1 +BMA ring_5 C3 C4 C5 O5 -54.989136 3.0 1 +BMA ring_6 C4 C5 O5 C1 60.181309 3.0 1 + +loop_ +_chem_comp_chir.comp_id +_chem_comp_chir.id +_chem_comp_chir.atom_id_centre +_chem_comp_chir.atom_id_1 +_chem_comp_chir.atom_id_2 +_chem_comp_chir.atom_id_3 +_chem_comp_chir.volume_sign +BMA chir_1 C5 O5 C4 C6 negative +BMA chir_2 C4 O4 C5 C3 positive +BMA chir_3 C3 O3 C2 C4 positive +BMA chir_4 C2 O2 C1 C3 positive +BMA chir_5 C1 O5 O1 C2 negative + +loop_ +_pdbx_chem_comp_descriptor.comp_id +_pdbx_chem_comp_descriptor.type +_pdbx_chem_comp_descriptor.program +_pdbx_chem_comp_descriptor.program_version +_pdbx_chem_comp_descriptor.descriptor +BMA SMILES ACDLabs 10.04 OC1C(O)C(OC(O)C1O)CO +BMA SMILES_CANONICAL CACTVS 3.341 OC[C@H]1O[C@@H](O)[C@@H](O)[C@@H](O)[C@@H]1O +BMA SMILES CACTVS 3.341 OC[CH]1O[CH](O)[CH](O)[CH](O)[CH]1O +BMA SMILES_CANONICAL "OpenEye OEToolkits" 1.5.0 C([C@@H]1[C@H]([C@@H]([C@@H]([C@@H](O1)O)O)O)O)O +BMA SMILES "OpenEye OEToolkits" 1.5.0 C(C1C(C(C(C(O1)O)O)O)O)O +BMA InChI InChI 1.03 InChI=1S/C6H12O6/c7-1-2-3(8)4(9)5(10)6(11)12-2/h2-11H,1H2/t2-,3-,4+,5+,6-/m1/s1 +BMA InChIKey InChI 1.03 WQZGKKKJIJFFOK-RWOPYEJCSA-N +BMA ? acedrg 231 "dictionary generator" +BMA ? acedrg_database 11 "data source" +BMA ? rdkit 2017.03.2 "Chemoinformatics tool" +BMA ? refmac5 5.8.0238 "optimization tool" diff --git a/webserver/public/baby-gru/monomers/c/C.cif b/webapp/public/baby-gru/monomers/c/C.cif similarity index 100% rename from webserver/public/baby-gru/monomers/c/C.cif rename to webapp/public/baby-gru/monomers/c/C.cif diff --git a/webserver/public/baby-gru/monomers/c/CIT.cif b/webapp/public/baby-gru/monomers/c/CIT.cif similarity index 100% rename from webserver/public/baby-gru/monomers/c/CIT.cif rename to webapp/public/baby-gru/monomers/c/CIT.cif diff --git a/webserver/public/baby-gru/monomers/c/CYS.cif b/webapp/public/baby-gru/monomers/c/CYS.cif similarity index 100% rename from webserver/public/baby-gru/monomers/c/CYS.cif rename to webapp/public/baby-gru/monomers/c/CYS.cif diff --git a/webserver/public/baby-gru/monomers/d/DA.cif b/webapp/public/baby-gru/monomers/d/DA.cif similarity index 100% rename from webserver/public/baby-gru/monomers/d/DA.cif rename to webapp/public/baby-gru/monomers/d/DA.cif diff --git a/webserver/public/baby-gru/monomers/d/DC.cif b/webapp/public/baby-gru/monomers/d/DC.cif similarity index 100% rename from webserver/public/baby-gru/monomers/d/DC.cif rename to webapp/public/baby-gru/monomers/d/DC.cif diff --git a/webserver/public/baby-gru/monomers/d/DG.cif b/webapp/public/baby-gru/monomers/d/DG.cif similarity index 100% rename from webserver/public/baby-gru/monomers/d/DG.cif rename to webapp/public/baby-gru/monomers/d/DG.cif diff --git a/webserver/public/baby-gru/monomers/d/DT.cif b/webapp/public/baby-gru/monomers/d/DT.cif similarity index 100% rename from webserver/public/baby-gru/monomers/d/DT.cif rename to webapp/public/baby-gru/monomers/d/DT.cif diff --git a/webserver/public/baby-gru/monomers/e/EDO.cif b/webapp/public/baby-gru/monomers/e/EDO.cif similarity index 100% rename from webserver/public/baby-gru/monomers/e/EDO.cif rename to webapp/public/baby-gru/monomers/e/EDO.cif diff --git a/webserver/public/baby-gru/monomers/g/G.cif b/webapp/public/baby-gru/monomers/g/G.cif similarity index 100% rename from webserver/public/baby-gru/monomers/g/G.cif rename to webapp/public/baby-gru/monomers/g/G.cif diff --git a/webserver/public/baby-gru/monomers/g/GLN.cif b/webapp/public/baby-gru/monomers/g/GLN.cif similarity index 100% rename from webserver/public/baby-gru/monomers/g/GLN.cif rename to webapp/public/baby-gru/monomers/g/GLN.cif diff --git a/webserver/public/baby-gru/monomers/g/GLU.cif b/webapp/public/baby-gru/monomers/g/GLU.cif similarity index 100% rename from webserver/public/baby-gru/monomers/g/GLU.cif rename to webapp/public/baby-gru/monomers/g/GLU.cif diff --git a/webserver/public/baby-gru/monomers/g/GLY.cif b/webapp/public/baby-gru/monomers/g/GLY.cif similarity index 100% rename from webserver/public/baby-gru/monomers/g/GLY.cif rename to webapp/public/baby-gru/monomers/g/GLY.cif diff --git a/webserver/public/baby-gru/monomers/g/GOL.cif b/webapp/public/baby-gru/monomers/g/GOL.cif similarity index 100% rename from webserver/public/baby-gru/monomers/g/GOL.cif rename to webapp/public/baby-gru/monomers/g/GOL.cif diff --git a/webserver/public/baby-gru/monomers/h/HIS.cif b/webapp/public/baby-gru/monomers/h/HIS.cif similarity index 100% rename from webserver/public/baby-gru/monomers/h/HIS.cif rename to webapp/public/baby-gru/monomers/h/HIS.cif diff --git a/webserver/public/baby-gru/monomers/h/HOH.cif b/webapp/public/baby-gru/monomers/h/HOH.cif similarity index 100% rename from webserver/public/baby-gru/monomers/h/HOH.cif rename to webapp/public/baby-gru/monomers/h/HOH.cif diff --git a/webserver/public/baby-gru/monomers/i/ILE.cif b/webapp/public/baby-gru/monomers/i/ILE.cif similarity index 100% rename from webserver/public/baby-gru/monomers/i/ILE.cif rename to webapp/public/baby-gru/monomers/i/ILE.cif diff --git a/webserver/public/baby-gru/monomers/l/LEU.cif b/webapp/public/baby-gru/monomers/l/LEU.cif similarity index 100% rename from webserver/public/baby-gru/monomers/l/LEU.cif rename to webapp/public/baby-gru/monomers/l/LEU.cif diff --git a/webserver/public/baby-gru/monomers/l/LYS.cif b/webapp/public/baby-gru/monomers/l/LYS.cif similarity index 100% rename from webserver/public/baby-gru/monomers/l/LYS.cif rename to webapp/public/baby-gru/monomers/l/LYS.cif diff --git a/webapp/public/baby-gru/monomers/m/MAN.cif b/webapp/public/baby-gru/monomers/m/MAN.cif new file mode 100644 index 000000000..5a8cf103a --- /dev/null +++ b/webapp/public/baby-gru/monomers/m/MAN.cif @@ -0,0 +1,211 @@ +# /home/mihaela/Downloads/acedrg243/MAN_unimodal.cif +# modified by Privateer +data_comp_list +loop_ +_chem_comp.id +_chem_comp.three_letter_code +_chem_comp.name +_chem_comp.group +_chem_comp.number_atoms_all +_chem_comp.number_atoms_nh +_chem_comp.desc_level +MAN MAN 'ALPHA-D-MANNOSE ' pyranose 24 12 . + +data_comp_MAN +loop_ +_chem_comp_atom.comp_id +_chem_comp_atom.atom_id +_chem_comp_atom.type_symbol +_chem_comp_atom.type_energy +_chem_comp_atom.charge +_chem_comp_atom.x +_chem_comp_atom.y +_chem_comp_atom.z +MAN C1 C CH1 0 99.646 -29.090 24.205 +MAN C2 C CH1 0 101.110 -29.241 24.626 +MAN C3 C CH1 0 102.073 -28.552 23.660 +MAN C4 C CH1 0 101.787 -28.958 22.221 +MAN C5 C CH1 0 100.318 -28.700 21.878 +MAN C6 C CH2 0 99.944 -29.177 20.492 +MAN O1 O OH1 0 99.156 -27.809 24.498 +MAN O2 O OH1 0 101.423 -30.625 24.763 +MAN O3 O OH1 0 103.421 -28.875 24.003 +MAN O4 O OH1 0 102.621 -28.217 21.331 +MAN O5 O O2 0 99.466 -29.412 22.812 +MAN O6 O OH1 0 98.549 -29.013 20.235 +MAN H1 H H 0 99.116 -29.740 24.731 +MAN H2 H H 0 101.201 -28.814 25.511 +MAN H3 H H 0 101.954 -27.572 23.740 +MAN H4 H H 0 101.978 -29.920 22.116 +MAN H5 H H 0 100.138 -27.731 21.948 +MAN H61 H H 0 100.180 -30.123 20.401 +MAN H62 H H 0 100.454 -28.670 19.826 +MAN HO1 H H 0 99.670 -27.211 24.197 +MAN HO2 H H 0 102.182 -30.702 25.117 +MAN HO3 H H 0 103.939 -28.370 23.574 +MAN HO4 H H 0 102.470 -27.392 21.406 +MAN HO6 H H 0 98.352 -28.189 20.257 + +loop_ +_chem_comp_bond.comp_id +_chem_comp_bond.atom_id_1 +_chem_comp_bond.atom_id_2 +_chem_comp_bond.type +_chem_comp_bond.aromatic +_chem_comp_bond.value_dist_nucleus +_chem_comp_bond.value_dist_nucleus_esd +_chem_comp_bond.value_dist +_chem_comp_bond.value_dist_esd +MAN C1 C2 SINGLE n 1.516 0.0200 1.516 0.0200 +MAN C1 O1 SINGLE n 1.392 0.0200 1.392 0.0200 +MAN C1 O5 SINGLE n 1.431 0.0165 1.431 0.0165 +MAN C2 C3 SINGLE n 1.519 0.0200 1.519 0.0200 +MAN C2 O2 SINGLE n 1.425 0.0112 1.425 0.0112 +MAN C3 C4 SINGLE n 1.520 0.0158 1.520 0.0158 +MAN C3 O3 SINGLE n 1.427 0.0138 1.427 0.0138 +MAN C4 C5 SINGLE n 1.524 0.0200 1.524 0.0200 +MAN C4 O4 SINGLE n 1.425 0.0176 1.425 0.0176 +MAN C5 C6 SINGLE n 1.511 0.0142 1.511 0.0142 +MAN C5 O5 SINGLE n 1.440 0.0195 1.440 0.0195 +MAN C6 O6 SINGLE n 1.426 0.0200 1.426 0.0200 +MAN C1 H1 SINGLE n 1.089 0.0100 0.990 0.0200 +MAN C2 H2 SINGLE n 1.089 0.0100 0.987 0.0140 +MAN C3 H3 SINGLE n 1.089 0.0100 0.991 0.0121 +MAN C4 H4 SINGLE n 1.089 0.0100 0.986 0.0131 +MAN C5 H5 SINGLE n 1.089 0.0100 0.988 0.0182 +MAN C6 H61 SINGLE n 1.089 0.0100 0.980 0.0184 +MAN C6 H62 SINGLE n 1.089 0.0100 0.980 0.0184 +MAN O1 HO1 SINGLE n 0.970 0.0120 0.846 0.0200 +MAN O2 HO2 SINGLE n 0.970 0.0120 0.841 0.0200 +MAN O3 HO3 SINGLE n 0.970 0.0120 0.841 0.0200 +MAN O4 HO4 SINGLE n 0.970 0.0120 0.841 0.0200 +MAN O6 HO6 SINGLE n 0.970 0.0120 0.848 0.0200 + +loop_ +_chem_comp_angle.comp_id +_chem_comp_angle.atom_id_1 +_chem_comp_angle.atom_id_2 +_chem_comp_angle.atom_id_3 +_chem_comp_angle.value_angle +_chem_comp_angle.value_angle_esd +MAN C2 C1 O1 109.304 2.75 +MAN C2 C1 O5 110.495 2.07 +MAN C2 C1 H1 109.287 1.97 +MAN O1 C1 O5 110.093 3.00 +MAN O1 C1 H1 108.897 1.73 +MAN O5 C1 H1 108.645 1.60 +MAN C1 C2 C3 111.543 1.84 +MAN C1 C2 O2 109.956 1.70 +MAN C1 C2 H2 107.431 2.02 +MAN C3 C2 O2 111.053 2.62 +MAN C3 C2 H2 108.505 1.50 +MAN O2 C2 H2 108.551 1.50 +MAN C2 C3 C4 110.687 1.67 +MAN C2 C3 O3 109.587 2.09 +MAN C2 C3 H3 108.712 1.50 +MAN C4 C3 O3 110.243 1.88 +MAN C4 C3 H3 108.653 1.50 +MAN O3 C3 H3 108.767 1.50 +MAN C3 C4 C5 110.272 1.76 +MAN C3 C4 O4 110.101 1.97 +MAN C3 C4 H4 109.032 1.50 +MAN C5 C4 O4 109.072 2.07 +MAN C5 C4 H4 109.223 1.50 +MAN O4 C4 H4 109.194 1.50 +MAN C4 C5 C6 112.996 1.59 +MAN C4 C5 O5 109.140 1.86 +MAN C4 C5 H5 108.960 1.50 +MAN C6 C5 O5 106.879 1.50 +MAN C6 C5 H5 109.269 1.50 +MAN O5 C5 H5 109.134 1.50 +MAN C5 C6 O6 111.299 2.09 +MAN C5 C6 H61 109.363 1.50 +MAN C5 C6 H62 109.363 1.50 +MAN O6 C6 H61 109.265 1.50 +MAN O6 C6 H62 109.265 1.50 +MAN H61 C6 H62 108.155 1.50 +MAN C1 O1 HO1 108.606 2.51 +MAN C2 O2 HO2 109.126 2.06 +MAN C3 O3 HO3 108.895 2.41 +MAN C4 O4 HO4 109.564 3.00 +MAN C1 O5 C5 113.507 1.73 +MAN C6 O6 HO6 109.472 2.41 + +loop_ +_chem_comp_tor.comp_id +_chem_comp_tor.id +_chem_comp_tor.atom_id_1 +_chem_comp_tor.atom_id_2 +_chem_comp_tor.atom_id_3 +_chem_comp_tor.atom_id_4 +_chem_comp_tor.value_angle +_chem_comp_tor.value_angle_esd +_chem_comp_tor.period +MAN tors_24 C2 C1 O1 HO1 50.983486 10.0 3 +MAN tors_23 O5 C1 O1 HO1 -73.925949 10.0 3 +MAN tors_22 H1 C1 O1 HO1 168.643814 10.0 3 +MAN tors_21 C1 C2 O2 HO2 -170.544846 10.0 3 +MAN tors_20 C3 C2 O2 HO2 64.513573 10.0 3 +MAN tors_19 H2 C2 O2 HO2 -54.279713 10.0 3 +MAN tors_18 C2 C3 O3 HO3 -168.277832 10.0 3 +MAN tors_17 C4 C3 O3 HO3 69.066528 10.0 3 +MAN tors_16 H3 C3 O3 HO3 -49.597984 10.0 3 +MAN tors_15 C3 C4 O4 HO4 -60.737900 10.0 3 +MAN tors_14 C5 C4 O4 HO4 60.616947 10.0 3 +MAN tors_13 H4 C4 O4 HO4 179.877060 10.0 3 +MAN tors_12 C4 C5 C6 O6 175.755936 10.0 3 +MAN tors_11 C4 C5 C6 H61 54.732586 10.0 3 +MAN tors_10 C4 C5 C6 H62 -63.427494 10.0 3 +MAN tors_9 O5 C5 C6 O6 55.092422 10.0 3 +MAN tors_8 O5 C5 C6 H61 -65.930931 10.0 3 +MAN tors_7 O5 C5 C6 H62 175.908997 10.0 3 +MAN tors_6 H5 C5 C6 O6 -62.892609 10.0 3 +MAN tors_5 H5 C5 C6 H61 176.084045 10.0 3 +MAN tors_4 H5 C5 C6 H62 57.923965 10.0 3 +MAN tors_3 C5 C6 O6 HO6 63.068165 10.0 3 +MAN tors_2 H61 C6 O6 HO6 -175.890747 10.0 3 +MAN tors_1 H62 C6 O6 HO6 -57.895977 10.0 3 +MAN ring_1 C5 O5 C1 C2 -53.681667 3.0 1 +MAN ring_2 O5 C1 C2 C3 48.384090 3.0 1 +MAN ring_3 C1 C2 C3 C4 -50.224220 3.0 1 +MAN ring_4 C2 C3 C4 C5 54.215084 3.0 1 +MAN ring_5 C3 C4 C5 O5 -56.747200 3.0 1 +MAN ring_6 C4 C5 O5 C1 58.120335 3.0 1 + +loop_ +_chem_comp_chir.comp_id +_chem_comp_chir.id +_chem_comp_chir.atom_id_centre +_chem_comp_chir.atom_id_1 +_chem_comp_chir.atom_id_2 +_chem_comp_chir.atom_id_3 +_chem_comp_chir.volume_sign +MAN chir_1 C1 O5 O1 C2 positive +MAN chir_2 C2 O2 C1 C3 positive +MAN chir_3 C3 O3 C2 C4 positive +MAN chir_4 C4 O4 C5 C3 positive +MAN chir_5 C5 O5 C4 C6 negative + +loop_ +_pdbx_chem_comp_descriptor.comp_id +_pdbx_chem_comp_descriptor.type +_pdbx_chem_comp_descriptor.program +_pdbx_chem_comp_descriptor.program_version +_pdbx_chem_comp_descriptor.descriptor +MAN SMILES ACDLabs 10.04 OC1C(O)C(OC(O)C1O)CO +MAN SMILES_CANONICAL CACTVS 3.341 OC[C@H]1O[C@H](O)[C@@H](O)[C@@H](O)[C@@H]1O +MAN SMILES CACTVS 3.341 OC[CH]1O[CH](O)[CH](O)[CH](O)[CH]1O +MAN SMILES_CANONICAL "OpenEye OEToolkits" 1.5.0 C([C@@H]1[C@H]([C@@H]([C@@H]([C@H](O1)O)O)O)O)O +MAN SMILES "OpenEye OEToolkits" 1.5.0 C(C1C(C(C(C(O1)O)O)O)O)O +MAN InChI InChI 1.03 InChI=1S/C6H12O6/c7-1-2-3(8)4(9)5(10)6(11)12-2/h2-11H,1H2/t2-,3-,4+,5+,6+/m1/s1 +MAN InChIKey InChI 1.03 WQZGKKKJIJFFOK-PQMKYFCFSA-N + +loop_ +_pdbx_chem_comp_description_generator.comp_id +_pdbx_chem_comp_description_generator.program_name +_pdbx_chem_comp_description_generator.program_version +_pdbx_chem_comp_description_generator.descriptor +MAN acedrg 243 "dictionary generator" +MAN acedrg_database 11 "data source" +MAN rdkit 2017.03.2 "Chemoinformatics tool" +MAN refmac5 5.8.0238 "optimization tool" diff --git a/webserver/public/baby-gru/monomers/m/MET.cif b/webapp/public/baby-gru/monomers/m/MET.cif similarity index 100% rename from webserver/public/baby-gru/monomers/m/MET.cif rename to webapp/public/baby-gru/monomers/m/MET.cif diff --git a/webserver/public/baby-gru/monomers/m/MSE.cif b/webapp/public/baby-gru/monomers/m/MSE.cif similarity index 100% rename from webserver/public/baby-gru/monomers/m/MSE.cif rename to webapp/public/baby-gru/monomers/m/MSE.cif diff --git a/webserver/public/baby-gru/monomers/n/NA.cif b/webapp/public/baby-gru/monomers/n/NA.cif similarity index 100% rename from webserver/public/baby-gru/monomers/n/NA.cif rename to webapp/public/baby-gru/monomers/n/NA.cif diff --git a/webapp/public/baby-gru/monomers/n/NAG.cif b/webapp/public/baby-gru/monomers/n/NAG.cif new file mode 100644 index 000000000..1e46acca0 --- /dev/null +++ b/webapp/public/baby-gru/monomers/n/NAG.cif @@ -0,0 +1,261 @@ +# /home/mihaela/Downloads/acedrg243/NAG_unimodal.cif +# modified by Privateer +data_comp_list +loop_ +_chem_comp.id +_chem_comp.three_letter_code +_chem_comp.name +_chem_comp.group +_chem_comp.number_atoms_all +_chem_comp.number_atoms_nh +_chem_comp.desc_level +NAG NAG 'N-ACETYL-D-GLUCOSAMINE ' pyranose 30 15 . + +data_comp_NAG +loop_ +_chem_comp_atom.comp_id +_chem_comp_atom.atom_id +_chem_comp_atom.type_symbol +_chem_comp_atom.type_energy +_chem_comp_atom.charge +_chem_comp_atom.x +_chem_comp_atom.y +_chem_comp_atom.z +NAG C1 C CH1 0 7.444 28.102 26.638 +NAG C2 C CH1 0 6.937 29.190 27.588 +NAG C3 C CH1 0 7.568 29.017 28.968 +NAG C4 C CH1 0 7.383 27.593 29.481 +NAG C5 C CH1 0 7.918 26.601 28.449 +NAG C6 C CH2 0 7.696 25.154 28.833 +NAG C7 C C 0 6.278 31.392 26.637 +NAG C8 C CH3 0 6.775 32.729 26.170 +NAG N2 N NH1 0 7.202 30.526 27.086 +NAG O1 O OH1 0 6.767 28.201 25.423 +NAG O3 O OH1 0 6.996 29.956 29.868 +NAG O4 O OH1 0 8.089 27.436 30.710 +NAG O5 O O2 0 7.247 26.807 27.188 +NAG O6 O OH1 0 6.309 24.848 28.971 +NAG O7 O O 0 5.081 31.118 26.604 +NAG H1 H H 0 8.406 28.243 26.479 +NAG H2 H H 0 5.965 29.058 27.696 +NAG H3 H H 0 8.539 29.201 28.886 +NAG H4 H H 0 6.420 27.420 29.634 +NAG H5 H H 0 8.886 26.758 28.327 +NAG H61 H H 0 8.153 24.968 29.680 +NAG H62 H H 0 8.086 24.574 28.146 +NAG H81 H H 0 7.739 32.708 26.057 +NAG H82 H H 0 6.543 33.407 26.825 +NAG H83 H H 0 6.359 32.949 25.321 +NAG HN2 H H 0 8.038 30.787 27.080 +NAG HO1 H H 0 7.193 27.768 24.833 +NAG HO3 H H 0 7.458 29.959 30.570 +NAG HO4 H H 0 8.913 27.566 30.596 +NAG HO6 H H 0 5.920 24.953 28.225 + +loop_ +_chem_comp_bond.comp_id +_chem_comp_bond.atom_id_1 +_chem_comp_bond.atom_id_2 +_chem_comp_bond.type +_chem_comp_bond.aromatic +_chem_comp_bond.value_dist_nucleus +_chem_comp_bond.value_dist_nucleus_esd +_chem_comp_bond.value_dist +_chem_comp_bond.value_dist_esd +NAG C1 C2 SINGLE n 1.530 0.0100 1.530 0.0100 +NAG C1 O1 SINGLE n 1.394 0.0100 1.394 0.0100 +NAG C1 O5 SINGLE n 1.419 0.0100 1.419 0.0100 +NAG C2 C3 SINGLE n 1.526 0.0102 1.526 0.0102 +NAG C2 N2 SINGLE n 1.448 0.0100 1.448 0.0100 +NAG C3 C4 SINGLE n 1.523 0.0100 1.523 0.0100 +NAG C3 O3 SINGLE n 1.421 0.0106 1.421 0.0106 +NAG C4 C5 SINGLE n 1.525 0.0100 1.525 0.0100 +NAG C4 O4 SINGLE n 1.425 0.0100 1.425 0.0100 +NAG C5 C6 SINGLE n 1.511 0.0142 1.511 0.0142 +NAG C5 O5 SINGLE n 1.441 0.0100 1.441 0.0100 +NAG C6 O6 SINGLE n 1.426 0.0200 1.426 0.0200 +NAG C7 C8 SINGLE n 1.498 0.0100 1.498 0.0100 +NAG C7 N2 SINGLE n 1.334 0.0119 1.334 0.0119 +NAG C7 O7 DOUBLE n 1.227 0.0100 1.227 0.0100 +NAG C1 H1 SINGLE n 1.089 0.0100 0.985 0.0100 +NAG C2 H2 SINGLE n 1.089 0.0100 0.987 0.0166 +NAG C3 H3 SINGLE n 1.089 0.0100 0.992 0.0104 +NAG C4 H4 SINGLE n 1.089 0.0100 0.991 0.0105 +NAG C5 H5 SINGLE n 1.089 0.0100 0.988 0.0182 +NAG C6 H61 SINGLE n 1.089 0.0100 0.980 0.0184 +NAG C6 H62 SINGLE n 1.089 0.0100 0.980 0.0184 +NAG C8 H81 SINGLE n 1.089 0.0100 0.971 0.0140 +NAG C8 H82 SINGLE n 1.089 0.0100 0.971 0.0140 +NAG C8 H83 SINGLE n 1.089 0.0100 0.971 0.0140 +NAG N2 HN2 SINGLE n 1.016 0.0100 0.876 0.0200 +NAG O1 HO1 SINGLE n 0.970 0.0120 0.846 0.0200 +NAG O3 HO3 SINGLE n 0.970 0.0120 0.841 0.0200 +NAG O4 HO4 SINGLE n 0.970 0.0120 0.841 0.0200 +NAG O6 HO6 SINGLE n 0.970 0.0120 0.848 0.0200 + +loop_ +_chem_comp_angle.comp_id +_chem_comp_angle.atom_id_1 +_chem_comp_angle.atom_id_2 +_chem_comp_angle.atom_id_3 +_chem_comp_angle.value_angle +_chem_comp_angle.value_angle_esd +NAG C2 C1 O1 109.247 2.43 +NAG C2 C1 O5 111.350 3.00 +NAG C2 C1 H1 108.848 1.50 +NAG O1 C1 O5 109.600 2.81 +NAG O1 C1 H1 108.913 1.50 +NAG O5 C1 H1 109.272 1.61 +NAG C1 C2 C3 110.235 1.50 +NAG C1 C2 N2 111.780 3.00 +NAG C1 C2 H2 107.511 1.55 +NAG C3 C2 N2 110.454 2.38 +NAG C3 C2 H2 107.579 2.24 +NAG N2 C2 H2 107.121 2.62 +NAG C2 C3 C4 110.882 1.54 +NAG C2 C3 O3 109.400 2.63 +NAG C2 C3 H3 108.177 2.01 +NAG C4 C3 O3 110.984 1.55 +NAG C4 C3 H3 108.714 1.50 +NAG O3 C3 H3 108.954 1.50 +NAG C3 C4 C5 109.454 1.50 +NAG C3 C4 O4 109.301 2.14 +NAG C3 C4 H4 109.514 1.50 +NAG C5 C4 O4 109.072 2.07 +NAG C5 C4 H4 109.223 1.50 +NAG O4 C4 H4 109.194 1.50 +NAG C4 C5 C6 112.996 1.59 +NAG C4 C5 O5 109.140 1.86 +NAG C4 C5 H5 108.960 1.50 +NAG C6 C5 O5 106.879 1.50 +NAG C6 C5 H5 109.269 1.50 +NAG O5 C5 H5 109.134 1.50 +NAG C5 C6 O6 111.299 2.09 +NAG C5 C6 H61 109.363 1.50 +NAG C5 C6 H62 109.363 1.50 +NAG O6 C6 H61 109.265 1.50 +NAG O6 C6 H62 109.265 1.50 +NAG H61 C6 H62 108.155 1.50 +NAG C8 C7 N2 115.988 1.50 +NAG C8 C7 O7 122.067 1.50 +NAG N2 C7 O7 121.945 1.50 +NAG C7 C8 H81 109.527 1.50 +NAG C7 C8 H82 109.527 1.50 +NAG C7 C8 H83 109.527 1.50 +NAG H81 C8 H82 109.365 1.50 +NAG H81 C8 H83 109.365 1.50 +NAG H82 C8 H83 109.365 1.50 +NAG C2 N2 C7 123.083 2.48 +NAG C2 N2 HN2 118.300 1.53 +NAG C7 N2 HN2 118.617 2.66 +NAG C1 O1 HO1 109.112 2.54 +NAG C3 O3 HO3 108.064 2.53 +NAG C4 O4 HO4 109.564 3.00 +NAG C1 O5 C5 113.152 1.70 +NAG C6 O6 HO6 109.472 2.41 + +loop_ +_chem_comp_tor.comp_id +_chem_comp_tor.id +_chem_comp_tor.atom_id_1 +_chem_comp_tor.atom_id_2 +_chem_comp_tor.atom_id_3 +_chem_comp_tor.atom_id_4 +_chem_comp_tor.value_angle +_chem_comp_tor.value_angle_esd +_chem_comp_tor.period +NAG tors_37 C2 C1 O1 HO1 163.320923 10.0 3 +NAG tors_36 O5 C1 O1 HO1 -74.640495 10.0 3 +NAG tors_35 H1 C1 O1 HO1 44.671757 10.0 3 +NAG tors_34 C7 N2 C2 C1 110.024467 10.0 6 +NAG tors_33 C7 N2 C2 C3 -127.048935 10.0 6 +NAG tors_32 C7 N2 C2 H2 -9.463453 10.0 6 +NAG tors_31 HN2 N2 C2 C1 -70.219978 10.0 6 +NAG tors_30 HN2 N2 C2 C3 52.706615 10.0 6 +NAG tors_29 HN2 N2 C2 H2 170.292099 10.0 6 +NAG tors_28 C2 C3 O3 HO3 -168.426712 10.0 3 +NAG tors_27 C4 C3 O3 HO3 68.814270 10.0 3 +NAG tors_26 H3 C3 O3 HO3 -50.645489 10.0 3 +NAG tors_25 C3 C4 O4 HO4 -61.216846 10.0 3 +NAG tors_24 C5 C4 O4 HO4 59.143990 10.0 3 +NAG tors_23 H4 C4 O4 HO4 178.982925 10.0 3 +NAG tors_22 C4 C5 C6 O6 60.874496 10.0 3 +NAG tors_21 C4 C5 C6 H61 -60.250813 10.0 3 +NAG tors_20 C4 C5 C6 H62 -178.203568 10.0 3 +NAG tors_19 O5 C5 C6 O6 -59.959736 10.0 3 +NAG tors_18 O5 C5 C6 H61 178.914948 10.0 3 +NAG tors_17 O5 C5 C6 H62 60.962193 10.0 3 +NAG tors_16 H5 C5 C6 O6 -177.606018 10.0 3 +NAG tors_15 H5 C5 C6 H61 61.268669 10.0 3 +NAG tors_14 H5 C5 C6 H62 -56.684093 10.0 3 +NAG tors_13 C5 C6 O6 HO6 62.882580 10.0 3 +NAG tors_12 H61 C6 O6 HO6 -175.873230 10.0 3 +NAG tors_11 H62 C6 O6 HO6 -58.107323 10.0 3 +NAG tors_10 N2 C7 C8 H81 13.785210 10.0 6 +NAG tors_9 N2 C7 C8 H82 -106.491890 10.0 6 +NAG tors_8 N2 C7 C8 H83 133.855774 10.0 6 +NAG tors_7 O7 C7 C8 H81 -166.218933 10.0 6 +NAG tors_6 O7 C7 C8 H82 73.503967 10.0 6 +NAG tors_5 O7 C7 C8 H83 -46.148369 10.0 6 +NAG tors_4 C8 C7 N2 C2 179.635376 5.0 2 +NAG tors_3 C8 C7 N2 HN2 -0.118592 5.0 2 +NAG tors_2 O7 C7 N2 C2 -0.360416 5.0 2 +NAG tors_1 O7 C7 N2 HN2 179.885620 5.0 2 +NAG ring_1 C5 O5 C1 C2 -59.497253 3.0 1 +NAG ring_2 O5 C1 C2 C3 53.568623 3.0 1 +NAG ring_3 C1 C2 C3 C4 -52.103630 3.0 1 +NAG ring_4 C2 C3 C4 C5 54.273392 3.0 1 +NAG ring_5 C3 C4 C5 O5 -56.987598 3.0 1 +NAG ring_6 C4 C5 O5 C1 61.079514 3.0 1 + +loop_ +_chem_comp_chir.comp_id +_chem_comp_chir.id +_chem_comp_chir.atom_id_centre +_chem_comp_chir.atom_id_1 +_chem_comp_chir.atom_id_2 +_chem_comp_chir.atom_id_3 +_chem_comp_chir.volume_sign +NAG chir_1 C1 O5 O1 C2 negative +NAG chir_2 C2 N2 C1 C3 negative +NAG chir_3 C3 O3 C4 C2 negative +NAG chir_4 C4 O4 C5 C3 positive +NAG chir_5 C5 O5 C4 C6 negative + +loop_ +_chem_comp_plane_atom.comp_id +_chem_comp_plane_atom.plane_id +_chem_comp_plane_atom.atom_id +_chem_comp_plane_atom.dist_esd +NAG plan-1 C7 0.020 +NAG plan-1 C8 0.020 +NAG plan-1 N2 0.020 +NAG plan-1 O7 0.020 +NAG plan-2 C2 0.020 +NAG plan-2 C7 0.020 +NAG plan-2 HN2 0.020 +NAG plan-2 N2 0.020 + +loop_ +_pdbx_chem_comp_descriptor.comp_id +_pdbx_chem_comp_descriptor.type +_pdbx_chem_comp_descriptor.program +_pdbx_chem_comp_descriptor.program_version +_pdbx_chem_comp_descriptor.descriptor +NAG SMILES ACDLabs 12.01 O=C(NC1C(O)C(O)C(OC1O)CO)C +NAG InChI InChI 1.03 InChI=1S/C8H15NO6/c1-3(11)9-5-7(13)6(12)4(2-10)15-8(5)14/h4-8,10,12-14H,2H2,1H3,(H,9,11)/t4-,5-,6-,7-,8-/m1/s1 +NAG InChIKey InChI 1.03 OVRNDRQMDRJTHS-FMDGEEDCSA-N +NAG SMILES_CANONICAL CACTVS 3.370 CC(=O)N[C@H]1[C@H](O)O[C@H](CO)[C@@H](O)[C@@H]1O +NAG SMILES CACTVS 3.370 CC(=O)N[CH]1[CH](O)O[CH](CO)[CH](O)[CH]1O +NAG SMILES_CANONICAL "OpenEye OEToolkits" 1.7.6 CC(=O)N[C@@H]1[C@H]([C@@H]([C@H](O[C@H]1O)CO)O)O +NAG SMILES "OpenEye OEToolkits" 1.7.6 CC(=O)NC1C(C(C(OC1O)CO)O)O + +loop_ +_pdbx_chem_comp_description_generator.comp_id +_pdbx_chem_comp_description_generator.program_name +_pdbx_chem_comp_description_generator.program_version +_pdbx_chem_comp_description_generator.descriptor +NAG acedrg 243 "dictionary generator" +NAG acedrg_database 11 "data source" +NAG rdkit 2017.03.2 "Chemoinformatics tool" +NAG refmac5 5.8.0238 "optimization tool" diff --git a/webserver/public/baby-gru/monomers/p/PHE.cif b/webapp/public/baby-gru/monomers/p/PHE.cif similarity index 100% rename from webserver/public/baby-gru/monomers/p/PHE.cif rename to webapp/public/baby-gru/monomers/p/PHE.cif diff --git a/webserver/public/baby-gru/monomers/p/PO4.cif b/webapp/public/baby-gru/monomers/p/PO4.cif similarity index 100% rename from webserver/public/baby-gru/monomers/p/PO4.cif rename to webapp/public/baby-gru/monomers/p/PO4.cif diff --git a/webserver/public/baby-gru/monomers/p/PRO.cif b/webapp/public/baby-gru/monomers/p/PRO.cif similarity index 100% rename from webserver/public/baby-gru/monomers/p/PRO.cif rename to webapp/public/baby-gru/monomers/p/PRO.cif diff --git a/webserver/public/baby-gru/monomers/s/SER.cif b/webapp/public/baby-gru/monomers/s/SER.cif similarity index 100% rename from webserver/public/baby-gru/monomers/s/SER.cif rename to webapp/public/baby-gru/monomers/s/SER.cif diff --git a/webserver/public/baby-gru/monomers/s/SO4.cif b/webapp/public/baby-gru/monomers/s/SO4.cif similarity index 100% rename from webserver/public/baby-gru/monomers/s/SO4.cif rename to webapp/public/baby-gru/monomers/s/SO4.cif diff --git a/webserver/public/baby-gru/monomers/t/THR.cif b/webapp/public/baby-gru/monomers/t/THR.cif similarity index 100% rename from webserver/public/baby-gru/monomers/t/THR.cif rename to webapp/public/baby-gru/monomers/t/THR.cif diff --git a/webserver/public/baby-gru/monomers/t/TRP.cif b/webapp/public/baby-gru/monomers/t/TRP.cif similarity index 100% rename from webserver/public/baby-gru/monomers/t/TRP.cif rename to webapp/public/baby-gru/monomers/t/TRP.cif diff --git a/webserver/public/baby-gru/monomers/t/TYR.cif b/webapp/public/baby-gru/monomers/t/TYR.cif similarity index 100% rename from webserver/public/baby-gru/monomers/t/TYR.cif rename to webapp/public/baby-gru/monomers/t/TYR.cif diff --git a/webserver/public/baby-gru/monomers/u/U.cif b/webapp/public/baby-gru/monomers/u/U.cif similarity index 100% rename from webserver/public/baby-gru/monomers/u/U.cif rename to webapp/public/baby-gru/monomers/u/U.cif diff --git a/webserver/public/baby-gru/monomers/v/VAL.cif b/webapp/public/baby-gru/monomers/v/VAL.cif similarity index 100% rename from webserver/public/baby-gru/monomers/v/VAL.cif rename to webapp/public/baby-gru/monomers/v/VAL.cif diff --git a/webapp/public/baby-gru/moorhen.css b/webapp/public/baby-gru/moorhen.css new file mode 100644 index 000000000..30ed96bb8 --- /dev/null +++ b/webapp/public/baby-gru/moorhen.css @@ -0,0 +1,280 @@ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace; +} + +.App { + text-align: center; +} + +.App-logo { + height: 40vmin; + pointer-events: none; +} + +@media (prefers-reduced-motion: no-preference) { + .App-logo { + animation: App-logo-spin infinite 20s linear; + } +} + +.App-header { + background-color: #282c34; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: calc(10px + 2vmin); + color: white; +} + +.App-link { + color: #61dafb; +} + +@keyframes App-logo-spin { + from { + transform: rotate(0deg); + } + + to { + transform: rotate(360deg); + } +} + +.baby-gru.flatly h3 { + color: black !important; +} + +.baby-gru.darkly h3 { + color: white !important; +} + +div.darkly text {fill:#888 !important;} +div.darkly text.base {fill:#000!important;} +div.darkly text.start-label {fill:#FFF !important;} +div.darkly text.end-label {fill:#FFF !important;} + +.tab-content{ + height: calc(100% - 3rem); +} + +.nav-tabs{ + height: 3rem; +} + +.big-validation-tool-container-row { + width: 100%; + margin: 0; + padding: 0; + height: calc(100% - 10rem); +} + +.small-validation-tool-container-row { + width: 100%; + margin: 0; + padding: 0; + height: calc(100% - 19rem); +} + +.carousel-control-next { + width: max(80px, 10vh) !important; + height: max(40px, 5vh) !important; +} + +.carousel-control-prev { + width: max(80px, 10vh) !important; + height: max(40px, 5vh) !important; +} + +.validation-plot-div{ + height: calc(100%); +} + +.hide-scrolling::-webkit-scrollbar { + width: 0px; + background: transparent; + -webkit-padding-end: 16px; +} + +.stop-scrolling { + scrollbar-width: none; + height: 100%; + overflow: hidden; +} + +.validation-plot-container::-webkit-scrollbar { + width: 1rem; +} + +.validation-plot-container::-webkit-scrollbar-track { + box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); +} + +.validation-plot-container::-webkit-scrollbar-thumb { + background-color: darkgrey; + outline: 1px solid slategrey; +} + +.nav-link { + padding-right: 0.3rem !important; + padding-left: 0.3rem !important; + padding-top: 0rem !important; + padding-bottom: 0rem !important; +} + +.nav-link::after { + display:none !important; +} + +.nav-link::before { + display:none !important; +} + +.map-colour-dropdown::after { + display:none !important; +} + +.context-button-popover .popover-arrow { + display: none !important; +} + +.moorhen-notification-div { + box-shadow: 0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12); + width: 14rem; + min-height: 3rem; + height: fit-content; + max-height: 10rem; + padding: 0.5rem; + display: flex; + border-radius: 2rem; + align-items: center; + align-content: center; + justify-content: center; +} + +.moorhen-tooltip { + display: flex; + z-index: 9999; + padding: 2px 10px; + border-radius: 3; +} + +.moorhen-warning-toast { + margin-top: 0.1rem; + margin-bottom: 0.1rem; + margin-left: 0.5rem; + margin-right: 0.5rem; +} + +.moorhen-draggable-card { + box-shadow: 0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12); +} + +.moorhen-context-button { + box-shadow: 0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12); + width: 4rem; + height: 4rem; + margin-top: 0.5rem; + margin-right: 0.5rem; + padding-right: 0.5rem; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 0.5rem; +} + +.moorhen-context-button:disabled > .moorhen-context-button__icon { + opacity: 0.15 !important; +} + +.moorhen-context-button__icon { + padding: 0.1rem; + width: 100%; + height: 100%; +} + +img.moorhen-context-button__icon { + height: 3rem; + width: 3rem; +} + +.moorhen-input-group-check { + padding: 0.5rem; + width: 25rem; +} + +.moorhen-form-group { + width: 20rem; + margin: 0.5rem; + margin-bottom: 1rem; +} + +.moorhen-navbar-menu-item-icon { + height: 1.6rem; + margin-right: 0.3rem; + margin-left: 0.3rem; +} + +.moorhen-navbar-menu-item { + margin-bottom: 0.5rem; + margin-right: 0.5rem; + margin-left: 0.5rem; + justify-content: left; + display: flex; + border-radius: 2rem; + box-shadow: 0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12); +} + +.moorhen-nav-popover { + border-width: 0; + margin-left: 1.5rem; + overflow-x: auto; + border-radius: 1.5rem; + box-shadow: 0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12); +} + +.moorhen-spinner { + height: 2rem !important; + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} + +.moorhen-hovered-atom-form { + height: 2rem !important; + width: 20rem !important; + border-radius: 1.5rem !important; + border-color: black !important; +} + +.moorhen-accordion { + border-color: #f0f0f0; + border-style: solid; + border-width: 1px; +} + +.moorhen-recording-icon { + box-shadow: 0 0px 6px; + color : red; + margin-right: 0.5rem; + animation: blink 3s steps(5, start) infinite; + -webkit-animation: blink 1s steps(5, start) infinite; + } + @keyframes blink { + to { + visibility: hidden; + } + } + @-webkit-keyframes blink { + to { + visibility: hidden; + } +} \ No newline at end of file diff --git a/webserver/public/baby-gru/pixmaps/MoorhenLogo.png b/webapp/public/baby-gru/pixmaps/MoorhenLogo.png similarity index 100% rename from webserver/public/baby-gru/pixmaps/MoorhenLogo.png rename to webapp/public/baby-gru/pixmaps/MoorhenLogo.png diff --git a/webserver/public/baby-gru/pixmaps/add-alt-conf.svg b/webapp/public/baby-gru/pixmaps/add-alt-conf.svg similarity index 100% rename from webserver/public/baby-gru/pixmaps/add-alt-conf.svg rename to webapp/public/baby-gru/pixmaps/add-alt-conf.svg diff --git a/webserver/public/baby-gru/pixmaps/add-peptide-1.svg b/webapp/public/baby-gru/pixmaps/add-peptide-1.svg similarity index 100% rename from webserver/public/baby-gru/pixmaps/add-peptide-1.svg rename to webapp/public/baby-gru/pixmaps/add-peptide-1.svg diff --git a/webserver/public/baby-gru/pixmaps/atom-at-pointer.svg b/webapp/public/baby-gru/pixmaps/atom-at-pointer.svg similarity index 100% rename from webserver/public/baby-gru/pixmaps/atom-at-pointer.svg rename to webapp/public/baby-gru/pixmaps/atom-at-pointer.svg diff --git a/webserver/public/baby-gru/pixmaps/auto-fit-rotamer.svg b/webapp/public/baby-gru/pixmaps/auto-fit-rotamer.svg similarity index 100% rename from webserver/public/baby-gru/pixmaps/auto-fit-rotamer.svg rename to webapp/public/baby-gru/pixmaps/auto-fit-rotamer.svg diff --git a/webserver/public/baby-gru/pixmaps/cis-trans.svg b/webapp/public/baby-gru/pixmaps/cis-trans.svg similarity index 100% rename from webserver/public/baby-gru/pixmaps/cis-trans.svg rename to webapp/public/baby-gru/pixmaps/cis-trans.svg diff --git a/webserver/public/baby-gru/pixmaps/delete.svg b/webapp/public/baby-gru/pixmaps/delete.svg similarity index 100% rename from webserver/public/baby-gru/pixmaps/delete.svg rename to webapp/public/baby-gru/pixmaps/delete.svg diff --git a/webserver/public/baby-gru/pixmaps/drag.svg b/webapp/public/baby-gru/pixmaps/drag.svg similarity index 100% rename from webserver/public/baby-gru/pixmaps/drag.svg rename to webapp/public/baby-gru/pixmaps/drag.svg diff --git a/webserver/public/baby-gru/pixmaps/edit-chi.svg b/webapp/public/baby-gru/pixmaps/edit-chi.svg similarity index 100% rename from webserver/public/baby-gru/pixmaps/edit-chi.svg rename to webapp/public/baby-gru/pixmaps/edit-chi.svg diff --git a/webserver/public/baby-gru/pixmaps/flip-peptide.svg b/webapp/public/baby-gru/pixmaps/flip-peptide.svg similarity index 100% rename from webserver/public/baby-gru/pixmaps/flip-peptide.svg rename to webapp/public/baby-gru/pixmaps/flip-peptide.svg diff --git a/webserver/public/baby-gru/pixmaps/jed-flip-reverse.svg b/webapp/public/baby-gru/pixmaps/jed-flip-reverse.svg similarity index 100% rename from webserver/public/baby-gru/pixmaps/jed-flip-reverse.svg rename to webapp/public/baby-gru/pixmaps/jed-flip-reverse.svg diff --git a/webserver/public/baby-gru/pixmaps/keyboard-blank.svg b/webapp/public/baby-gru/pixmaps/keyboard-blank.svg similarity index 99% rename from webserver/public/baby-gru/pixmaps/keyboard-blank.svg rename to webapp/public/baby-gru/pixmaps/keyboard-blank.svg index 227b70408..26238843b 100644 --- a/webserver/public/baby-gru/pixmaps/keyboard-blank.svg +++ b/webapp/public/baby-gru/pixmaps/keyboard-blank.svg @@ -2,7 +2,7 @@ {var r="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0;return"undefined"!=typeof __filename&&(r=r||__filename),function(t={}){var e,n,o=t;o.ready=new Promise(((r,t)=>{e=r,n=t}));var a,i,s,u=Object.assign({},o),c="./this.program",l="object"==typeof window,h="function"==typeof importScripts,d="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,f="";if(d){var p=require("fs"),m=require("path");f=h?m.dirname(f)+"/":__dirname+"/",a=(r,t)=>(r=U(r)?new URL(r):m.normalize(r),p.readFileSync(r,t?void 0:"utf8")),s=r=>{var t=a(r,!0);return t.buffer||(t=new Uint8Array(t)),t},i=(r,t,e,n=!0)=>{r=U(r)?new URL(r):m.normalize(r),p.readFile(r,n?void 0:"utf8",((r,o)=>{r?e(r):t(n?o.buffer:o)}))},!o.thisProgram&&process.argv.length>1&&(c=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),o.inspect=()=>"[Emscripten Module object]"}else(l||h)&&(h?f=self.location.href:"undefined"!=typeof document&&document.currentScript&&(f=document.currentScript.src),r&&(f=r),f=0!==f.indexOf("blob:")?f.substr(0,f.replace(/[?#].*/,"").lastIndexOf("/")+1):"",a=r=>{var t=new XMLHttpRequest;return t.open("GET",r,!1),t.send(null),t.responseText},h&&(s=r=>{var t=new XMLHttpRequest;return t.open("GET",r,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),i=(r,t,e)=>{var n=new XMLHttpRequest;n.open("GET",r,!0),n.responseType="arraybuffer",n.onload=()=>{200==n.status||0==n.status&&n.response?t(n.response):e()},n.onerror=e,n.send(null)});var v,y=o.print||console.log.bind(console),w=o.printErr||console.error.bind(console);Object.assign(o,u),u=null,o.arguments&&o.arguments,o.thisProgram&&(c=o.thisProgram),o.quit&&o.quit,o.wasmBinary&&(v=o.wasmBinary),"object"!=typeof WebAssembly&&x("no native wasm support detected");var g,b,E,_,k,$,P,C,T=!1,D=[],F=[],S=[],A=0,j=null,M=null;function O(r){A++,o.monitorRunDependencies&&o.monitorRunDependencies(A)}function R(r){if(A--,o.monitorRunDependencies&&o.monitorRunDependencies(A),0==A&&(null!==j&&(clearInterval(j),j=null),M)){var t=M;M=null,t()}}function x(r){o.onAbort&&o.onAbort(r),w(r="Aborted("+r+")"),T=!0,r+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(r);throw n(t),t}var z,W,N,H,L=r=>r.startsWith("data:application/octet-stream;base64,"),U=r=>r.startsWith("file://");function B(r){if(r==z&&v)return new Uint8Array(v);if(s)return s(r);throw"both async and sync fetching of the wasm failed"}function I(r,t,e){return function(r){if(!v&&(l||h)){if("function"==typeof fetch&&!U(r))return fetch(r,{credentials:"same-origin"}).then((t=>{if(!t.ok)throw"failed to load wasm binary file at '"+r+"'";return t.arrayBuffer()})).catch((()=>B(r)));if(i)return new Promise(((t,e)=>{i(r,(r=>t(new Uint8Array(r))),e)}))}return Promise.resolve().then((()=>B(r)))}(r).then((r=>WebAssembly.instantiate(r,t))).then((r=>r)).then(e,(r=>{w(`failed to asynchronously prepare wasm: ${r}`),x(r)}))}L(z="RDKit_minimal.wasm")||(W=z,z=o.locateFile?o.locateFile(W,f):f+W);var V=r=>{for(;r.length>0;)r.shift()(o)},Y=(o.noExitRuntime,[]),q=0,X=0;function G(r){this.excPtr=r,this.ptr=r-24,this.set_type=function(r){$[this.ptr+4>>2]=r},this.get_type=function(){return $[this.ptr+4>>2]},this.set_destructor=function(r){$[this.ptr+8>>2]=r},this.get_destructor=function(){return $[this.ptr+8>>2]},this.set_caught=function(r){r=r?1:0,g[this.ptr+12>>0]=r},this.get_caught=function(){return 0!=g[this.ptr+12>>0]},this.set_rethrown=function(r){r=r?1:0,g[this.ptr+13>>0]=r},this.get_rethrown=function(){return 0!=g[this.ptr+13>>0]},this.init=function(r,t){this.set_adjusted_ptr(0),this.set_type(r),this.set_destructor(t)},this.set_adjusted_ptr=function(r){$[this.ptr+16>>2]=r},this.get_adjusted_ptr=function(){return $[this.ptr+16>>2]},this.get_exception_ptr=function(){if(ee(this.get_type()))return $[this.excPtr>>2];var r=this.get_adjusted_ptr();return 0!==r?r:this.excPtr}}var K=r=>{var t=X;if(!t)return Xt(0),0;var e=new G(t);e.set_adjusted_ptr(t);var n=e.get_type();if(!n)return Xt(0),t;for(var o in r){var a=r[o];if(0===a||a===n)break;var i=e.ptr+16;if(te(a,n,i))return Xt(a),t}return Xt(n),t},J={isAbs:r=>"/"===r.charAt(0),splitPath:r=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(r).slice(1),normalizeArray:(r,t)=>{for(var e=0,n=r.length-1;n>=0;n--){var o=r[n];"."===o?r.splice(n,1):".."===o?(r.splice(n,1),e++):e&&(r.splice(n,1),e--)}if(t)for(;e;e--)r.unshift("..");return r},normalize:r=>{var t=J.isAbs(r),e="/"===r.substr(-1);return(r=J.normalizeArray(r.split("/").filter((r=>!!r)),!t).join("/"))||t||(r="."),r&&e&&(r+="/"),(t?"/":"")+r},dirname:r=>{var t=J.splitPath(r),e=t[0],n=t[1];return e||n?(n&&(n=n.substr(0,n.length-1)),e+n):"."},basename:r=>{if("/"===r)return"/";var t=(r=(r=J.normalize(r)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?r:r.substr(t+1)},join:function(){var r=Array.prototype.slice.call(arguments);return J.normalize(r.join("/"))},join2:(r,t)=>J.normalize(r+"/"+t)},Z=r=>(Z=(()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return r=>crypto.getRandomValues(r);if(d)try{var r=require("crypto");if(r.randomFillSync)return t=>r.randomFillSync(t);var t=r.randomBytes;return r=>(r.set(t(r.byteLength)),r)}catch(r){}x("initRandomDevice")})())(r),Q={resolve:function(){for(var r="",t=!1,e=arguments.length-1;e>=-1&&!t;e--){var n=e>=0?arguments[e]:pr.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";r=n+"/"+r,t=J.isAbs(n)}return(t?"/":"")+(r=J.normalizeArray(r.split("/").filter((r=>!!r)),!t).join("/"))||"."},relative:(r,t)=>{function e(r){for(var t=0;t=0&&""===r[e];e--);return t>e?[]:r.slice(t,e-t+1)}r=Q.resolve(r).substr(1),t=Q.resolve(t).substr(1);for(var n=e(r.split("/")),o=e(t.split("/")),a=Math.min(n.length,o.length),i=a,s=0;s{for(var n=t+e,o=t;r[o]&&!(o>=n);)++o;if(o-t>16&&r.buffer&&rr)return rr.decode(r.subarray(t,o));for(var a="";t>10,56320|1023&c)}}else a+=String.fromCharCode((31&i)<<6|s)}else a+=String.fromCharCode(i)}return a},er=[],nr=r=>{for(var t=0,e=0;e=55296&&n<=57343?(t+=4,++e):t+=3}return t},or=(r,t,e,n)=>{if(!(n>0))return 0;for(var o=e,a=e+n-1,i=0;i=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&r.charCodeAt(++i)),s<=127){if(e>=a)break;t[e++]=s}else if(s<=2047){if(e+1>=a)break;t[e++]=192|s>>6,t[e++]=128|63&s}else if(s<=65535){if(e+2>=a)break;t[e++]=224|s>>12,t[e++]=128|s>>6&63,t[e++]=128|63&s}else{if(e+3>=a)break;t[e++]=240|s>>18,t[e++]=128|s>>12&63,t[e++]=128|s>>6&63,t[e++]=128|63&s}}return t[e]=0,e-o};function ar(r,t,e){var n=e>0?e:nr(r)+1,o=new Array(n),a=or(r,o,0,o.length);return t&&(o.length=a),o}var ir,sr,ur,cr={ttys:[],init(){},shutdown(){},register(r,t){cr.ttys[r]={input:[],output:[],ops:t},pr.registerDevice(r,cr.stream_ops)},stream_ops:{open(r){var t=cr.ttys[r.node.rdev];if(!t)throw new pr.ErrnoError(43);r.tty=t,r.seekable=!1},close(r){r.tty.ops.fsync(r.tty)},fsync(r){r.tty.ops.fsync(r.tty)},read(r,t,e,n,o){if(!r.tty||!r.tty.ops.get_char)throw new pr.ErrnoError(60);for(var a=0,i=0;i(()=>{if(!er.length){var r=null;if(d){var t=Buffer.alloc(256),e=0,n=process.stdin.fd;try{e=p.readSync(n,t)}catch(r){if(!r.toString().includes("EOF"))throw r;e=0}r=e>0?t.slice(0,e).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(r=window.prompt("Input: "))&&(r+="\n"):"function"==typeof readline&&null!==(r=readline())&&(r+="\n");if(!r)return null;er=ar(r,!0)}return er.shift()})(),put_char(r,t){null===t||10===t?(y(tr(r.output,0)),r.output=[]):0!=t&&r.output.push(t)},fsync(r){r.output&&r.output.length>0&&(y(tr(r.output,0)),r.output=[])},ioctl_tcgets:r=>({c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}),ioctl_tcsets:(r,t,e)=>0,ioctl_tiocgwinsz:r=>[24,80]},default_tty1_ops:{put_char(r,t){null===t||10===t?(w(tr(r.output,0)),r.output=[]):0!=t&&r.output.push(t)},fsync(r){r.output&&r.output.length>0&&(w(tr(r.output,0)),r.output=[])}}},lr=r=>{x()},hr={ops_table:null,mount:r=>hr.createNode(null,"/",16895,0),createNode(r,t,e,n){if(pr.isBlkdev(e)||pr.isFIFO(e))throw new pr.ErrnoError(63);hr.ops_table||(hr.ops_table={dir:{node:{getattr:hr.node_ops.getattr,setattr:hr.node_ops.setattr,lookup:hr.node_ops.lookup,mknod:hr.node_ops.mknod,rename:hr.node_ops.rename,unlink:hr.node_ops.unlink,rmdir:hr.node_ops.rmdir,readdir:hr.node_ops.readdir,symlink:hr.node_ops.symlink},stream:{llseek:hr.stream_ops.llseek}},file:{node:{getattr:hr.node_ops.getattr,setattr:hr.node_ops.setattr},stream:{llseek:hr.stream_ops.llseek,read:hr.stream_ops.read,write:hr.stream_ops.write,allocate:hr.stream_ops.allocate,mmap:hr.stream_ops.mmap,msync:hr.stream_ops.msync}},link:{node:{getattr:hr.node_ops.getattr,setattr:hr.node_ops.setattr,readlink:hr.node_ops.readlink},stream:{}},chrdev:{node:{getattr:hr.node_ops.getattr,setattr:hr.node_ops.setattr},stream:pr.chrdev_stream_ops}});var o=pr.createNode(r,t,e,n);return pr.isDir(o.mode)?(o.node_ops=hr.ops_table.dir.node,o.stream_ops=hr.ops_table.dir.stream,o.contents={}):pr.isFile(o.mode)?(o.node_ops=hr.ops_table.file.node,o.stream_ops=hr.ops_table.file.stream,o.usedBytes=0,o.contents=null):pr.isLink(o.mode)?(o.node_ops=hr.ops_table.link.node,o.stream_ops=hr.ops_table.link.stream):pr.isChrdev(o.mode)&&(o.node_ops=hr.ops_table.chrdev.node,o.stream_ops=hr.ops_table.chrdev.stream),o.timestamp=Date.now(),r&&(r.contents[t]=o,r.timestamp=o.timestamp),o},getFileDataAsTypedArray:r=>r.contents?r.contents.subarray?r.contents.subarray(0,r.usedBytes):new Uint8Array(r.contents):new Uint8Array(0),expandFileStorage(r,t){var e=r.contents?r.contents.length:0;if(!(e>=t)){t=Math.max(t,e*(e<1048576?2:1.125)>>>0),0!=e&&(t=Math.max(t,256));var n=r.contents;r.contents=new Uint8Array(t),r.usedBytes>0&&r.contents.set(n.subarray(0,r.usedBytes),0)}},resizeFileStorage(r,t){if(r.usedBytes!=t)if(0==t)r.contents=null,r.usedBytes=0;else{var e=r.contents;r.contents=new Uint8Array(t),e&&r.contents.set(e.subarray(0,Math.min(t,r.usedBytes))),r.usedBytes=t}},node_ops:{getattr(r){var t={};return t.dev=pr.isChrdev(r.mode)?r.id:1,t.ino=r.id,t.mode=r.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=r.rdev,pr.isDir(r.mode)?t.size=4096:pr.isFile(r.mode)?t.size=r.usedBytes:pr.isLink(r.mode)?t.size=r.link.length:t.size=0,t.atime=new Date(r.timestamp),t.mtime=new Date(r.timestamp),t.ctime=new Date(r.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr(r,t){void 0!==t.mode&&(r.mode=t.mode),void 0!==t.timestamp&&(r.timestamp=t.timestamp),void 0!==t.size&&hr.resizeFileStorage(r,t.size)},lookup(r,t){throw pr.genericErrors[44]},mknod:(r,t,e,n)=>hr.createNode(r,t,e,n),rename(r,t,e){if(pr.isDir(r.mode)){var n;try{n=pr.lookupNode(t,e)}catch(r){}if(n)for(var o in n.contents)throw new pr.ErrnoError(55)}delete r.parent.contents[r.name],r.parent.timestamp=Date.now(),r.name=e,t.contents[e]=r,t.timestamp=r.parent.timestamp,r.parent=t},unlink(r,t){delete r.contents[t],r.timestamp=Date.now()},rmdir(r,t){var e=pr.lookupNode(r,t);for(var n in e.contents)throw new pr.ErrnoError(55);delete r.contents[t],r.timestamp=Date.now()},readdir(r){var t=[".",".."];for(var e in r.contents)r.contents.hasOwnProperty(e)&&t.push(e);return t},symlink(r,t,e){var n=hr.createNode(r,t,41471,0);return n.link=e,n},readlink(r){if(!pr.isLink(r.mode))throw new pr.ErrnoError(28);return r.link}},stream_ops:{read(r,t,e,n,o){var a=r.node.contents;if(o>=r.node.usedBytes)return 0;var i=Math.min(r.node.usedBytes-o,n);if(i>8&&a.subarray)t.set(a.subarray(o,o+i),e);else for(var s=0;s0||e+t(hr.stream_ops.write(r,t,0,n,e,!1),0)}},dr=o.preloadPlugins||[],fr=(r,t)=>{var e=0;return r&&(e|=365),t&&(e|=146),e},pr={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath(r,t={}){if(!(r=Q.resolve(r)))return{path:"",node:null};if((t=Object.assign({follow_mount:!0,recurse_count:0},t)).recurse_count>8)throw new pr.ErrnoError(32);for(var e=r.split("/").filter((r=>!!r)),n=pr.root,o="/",a=0;a40)throw new pr.ErrnoError(32)}}return{path:o,node:n}},getPath(r){for(var t;;){if(pr.isRoot(r)){var e=r.mount.mountpoint;return t?"/"!==e[e.length-1]?`${e}/${t}`:e+t:e}t=t?`${r.name}/${t}`:r.name,r=r.parent}},hashName(r,t){for(var e=0,n=0;n>>0)%pr.nameTable.length},hashAddNode(r){var t=pr.hashName(r.parent.id,r.name);r.name_next=pr.nameTable[t],pr.nameTable[t]=r},hashRemoveNode(r){var t=pr.hashName(r.parent.id,r.name);if(pr.nameTable[t]===r)pr.nameTable[t]=r.name_next;else for(var e=pr.nameTable[t];e;){if(e.name_next===r){e.name_next=r.name_next;break}e=e.name_next}},lookupNode(r,t){var e=pr.mayLookup(r);if(e)throw new pr.ErrnoError(e,r);for(var n=pr.hashName(r.id,t),o=pr.nameTable[n];o;o=o.name_next){var a=o.name;if(o.parent.id===r.id&&a===t)return o}return pr.lookup(r,t)},createNode(r,t,e,n){var o=new pr.FSNode(r,t,e,n);return pr.hashAddNode(o),o},destroyNode(r){pr.hashRemoveNode(r)},isRoot:r=>r===r.parent,isMountpoint:r=>!!r.mounted,isFile:r=>32768==(61440&r),isDir:r=>16384==(61440&r),isLink:r=>40960==(61440&r),isChrdev:r=>8192==(61440&r),isBlkdev:r=>24576==(61440&r),isFIFO:r=>4096==(61440&r),isSocket:r=>49152==(49152&r),flagsToPermissionString(r){var t=["r","w","rw"][3&r];return 512&r&&(t+="w"),t},nodePermissions:(r,t)=>pr.ignorePermissions||(!t.includes("r")||292&r.mode)&&(!t.includes("w")||146&r.mode)&&(!t.includes("x")||73&r.mode)?0:2,mayLookup:r=>pr.nodePermissions(r,"x")||(r.node_ops.lookup?0:2),mayCreate(r,t){try{return pr.lookupNode(r,t),20}catch(r){}return pr.nodePermissions(r,"wx")},mayDelete(r,t,e){var n;try{n=pr.lookupNode(r,t)}catch(r){return r.errno}var o=pr.nodePermissions(r,"wx");if(o)return o;if(e){if(!pr.isDir(n.mode))return 54;if(pr.isRoot(n)||pr.getPath(n)===pr.cwd())return 10}else if(pr.isDir(n.mode))return 31;return 0},mayOpen:(r,t)=>r?pr.isLink(r.mode)?32:pr.isDir(r.mode)&&("r"!==pr.flagsToPermissionString(t)||512&t)?31:pr.nodePermissions(r,pr.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd(){for(var r=0;r<=pr.MAX_OPEN_FDS;r++)if(!pr.streams[r])return r;throw new pr.ErrnoError(33)},getStreamChecked(r){var t=pr.getStream(r);if(!t)throw new pr.ErrnoError(8);return t},getStream:r=>pr.streams[r],createStream:(r,t=-1)=>(pr.FSStream||(pr.FSStream=function(){this.shared={}},pr.FSStream.prototype={},Object.defineProperties(pr.FSStream.prototype,{object:{get(){return this.node},set(r){this.node=r}},isRead:{get(){return 1!=(2097155&this.flags)}},isWrite:{get(){return 0!=(2097155&this.flags)}},isAppend:{get(){return 1024&this.flags}},flags:{get(){return this.shared.flags},set(r){this.shared.flags=r}},position:{get(){return this.shared.position},set(r){this.shared.position=r}}})),r=Object.assign(new pr.FSStream,r),-1==t&&(t=pr.nextfd()),r.fd=t,pr.streams[t]=r,r),closeStream(r){pr.streams[r]=null},chrdev_stream_ops:{open(r){var t=pr.getDevice(r.node.rdev);r.stream_ops=t.stream_ops,r.stream_ops.open&&r.stream_ops.open(r)},llseek(){throw new pr.ErrnoError(70)}},major:r=>r>>8,minor:r=>255&r,makedev:(r,t)=>r<<8|t,registerDevice(r,t){pr.devices[r]={stream_ops:t}},getDevice:r=>pr.devices[r],getMounts(r){for(var t=[],e=[r];e.length;){var n=e.pop();t.push(n),e.push.apply(e,n.mounts)}return t},syncfs(r,t){"function"==typeof r&&(t=r,r=!1),pr.syncFSRequests++,pr.syncFSRequests>1&&w(`warning: ${pr.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var e=pr.getMounts(pr.root.mount),n=0;function o(r){return pr.syncFSRequests--,t(r)}function a(r){if(r)return a.errored?void 0:(a.errored=!0,o(r));++n>=e.length&&o(null)}e.forEach((t=>{if(!t.type.syncfs)return a(null);t.type.syncfs(t,r,a)}))},mount(r,t,e){var n,o="/"===e,a=!e;if(o&&pr.root)throw new pr.ErrnoError(10);if(!o&&!a){var i=pr.lookupPath(e,{follow_mount:!1});if(e=i.path,n=i.node,pr.isMountpoint(n))throw new pr.ErrnoError(10);if(!pr.isDir(n.mode))throw new pr.ErrnoError(54)}var s={type:r,opts:t,mountpoint:e,mounts:[]},u=r.mount(s);return u.mount=s,s.root=u,o?pr.root=u:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),u},unmount(r){var t=pr.lookupPath(r,{follow_mount:!1});if(!pr.isMountpoint(t.node))throw new pr.ErrnoError(28);var e=t.node,n=e.mounted,o=pr.getMounts(n);Object.keys(pr.nameTable).forEach((r=>{for(var t=pr.nameTable[r];t;){var e=t.name_next;o.includes(t.mount)&&pr.destroyNode(t),t=e}})),e.mounted=null;var a=e.mount.mounts.indexOf(n);e.mount.mounts.splice(a,1)},lookup:(r,t)=>r.node_ops.lookup(r,t),mknod(r,t,e){var n=pr.lookupPath(r,{parent:!0}).node,o=J.basename(r);if(!o||"."===o||".."===o)throw new pr.ErrnoError(28);var a=pr.mayCreate(n,o);if(a)throw new pr.ErrnoError(a);if(!n.node_ops.mknod)throw new pr.ErrnoError(63);return n.node_ops.mknod(n,o,t,e)},create:(r,t)=>(t=void 0!==t?t:438,t&=4095,t|=32768,pr.mknod(r,t,0)),mkdir:(r,t)=>(t=void 0!==t?t:511,t&=1023,t|=16384,pr.mknod(r,t,0)),mkdirTree(r,t){for(var e=r.split("/"),n="",o=0;o(void 0===e&&(e=t,t=438),t|=8192,pr.mknod(r,t,e)),symlink(r,t){if(!Q.resolve(r))throw new pr.ErrnoError(44);var e=pr.lookupPath(t,{parent:!0}).node;if(!e)throw new pr.ErrnoError(44);var n=J.basename(t),o=pr.mayCreate(e,n);if(o)throw new pr.ErrnoError(o);if(!e.node_ops.symlink)throw new pr.ErrnoError(63);return e.node_ops.symlink(e,n,r)},rename(r,t){var e,n,o=J.dirname(r),a=J.dirname(t),i=J.basename(r),s=J.basename(t);if(e=pr.lookupPath(r,{parent:!0}).node,n=pr.lookupPath(t,{parent:!0}).node,!e||!n)throw new pr.ErrnoError(44);if(e.mount!==n.mount)throw new pr.ErrnoError(75);var u,c=pr.lookupNode(e,i),l=Q.relative(r,a);if("."!==l.charAt(0))throw new pr.ErrnoError(28);if("."!==(l=Q.relative(t,o)).charAt(0))throw new pr.ErrnoError(55);try{u=pr.lookupNode(n,s)}catch(r){}if(c!==u){var h=pr.isDir(c.mode),d=pr.mayDelete(e,i,h);if(d)throw new pr.ErrnoError(d);if(d=u?pr.mayDelete(n,s,h):pr.mayCreate(n,s))throw new pr.ErrnoError(d);if(!e.node_ops.rename)throw new pr.ErrnoError(63);if(pr.isMountpoint(c)||u&&pr.isMountpoint(u))throw new pr.ErrnoError(10);if(n!==e&&(d=pr.nodePermissions(e,"w")))throw new pr.ErrnoError(d);pr.hashRemoveNode(c);try{e.node_ops.rename(c,n,s)}catch(r){throw r}finally{pr.hashAddNode(c)}}},rmdir(r){var t=pr.lookupPath(r,{parent:!0}).node,e=J.basename(r),n=pr.lookupNode(t,e),o=pr.mayDelete(t,e,!0);if(o)throw new pr.ErrnoError(o);if(!t.node_ops.rmdir)throw new pr.ErrnoError(63);if(pr.isMountpoint(n))throw new pr.ErrnoError(10);t.node_ops.rmdir(t,e),pr.destroyNode(n)},readdir(r){var t=pr.lookupPath(r,{follow:!0}).node;if(!t.node_ops.readdir)throw new pr.ErrnoError(54);return t.node_ops.readdir(t)},unlink(r){var t=pr.lookupPath(r,{parent:!0}).node;if(!t)throw new pr.ErrnoError(44);var e=J.basename(r),n=pr.lookupNode(t,e),o=pr.mayDelete(t,e,!1);if(o)throw new pr.ErrnoError(o);if(!t.node_ops.unlink)throw new pr.ErrnoError(63);if(pr.isMountpoint(n))throw new pr.ErrnoError(10);t.node_ops.unlink(t,e),pr.destroyNode(n)},readlink(r){var t=pr.lookupPath(r).node;if(!t)throw new pr.ErrnoError(44);if(!t.node_ops.readlink)throw new pr.ErrnoError(28);return Q.resolve(pr.getPath(t.parent),t.node_ops.readlink(t))},stat(r,t){var e=pr.lookupPath(r,{follow:!t}).node;if(!e)throw new pr.ErrnoError(44);if(!e.node_ops.getattr)throw new pr.ErrnoError(63);return e.node_ops.getattr(e)},lstat:r=>pr.stat(r,!0),chmod(r,t,e){var n;if(!(n="string"==typeof r?pr.lookupPath(r,{follow:!e}).node:r).node_ops.setattr)throw new pr.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod(r,t){pr.chmod(r,t,!0)},fchmod(r,t){var e=pr.getStreamChecked(r);pr.chmod(e.node,t)},chown(r,t,e,n){var o;if(!(o="string"==typeof r?pr.lookupPath(r,{follow:!n}).node:r).node_ops.setattr)throw new pr.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown(r,t,e){pr.chown(r,t,e,!0)},fchown(r,t,e){var n=pr.getStreamChecked(r);pr.chown(n.node,t,e)},truncate(r,t){if(t<0)throw new pr.ErrnoError(28);var e;if(!(e="string"==typeof r?pr.lookupPath(r,{follow:!0}).node:r).node_ops.setattr)throw new pr.ErrnoError(63);if(pr.isDir(e.mode))throw new pr.ErrnoError(31);if(!pr.isFile(e.mode))throw new pr.ErrnoError(28);var n=pr.nodePermissions(e,"w");if(n)throw new pr.ErrnoError(n);e.node_ops.setattr(e,{size:t,timestamp:Date.now()})},ftruncate(r,t){var e=pr.getStreamChecked(r);if(0==(2097155&e.flags))throw new pr.ErrnoError(28);pr.truncate(e.node,t)},utime(r,t,e){var n=pr.lookupPath(r,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(t,e)})},open(r,t,e){if(""===r)throw new pr.ErrnoError(44);var n;if(e=void 0===e?438:e,e=64&(t="string"==typeof t?(r=>{var t={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[r];if(void 0===t)throw new Error(`Unknown file open mode: ${r}`);return t})(t):t)?4095&e|32768:0,"object"==typeof r)n=r;else{r=J.normalize(r);try{n=pr.lookupPath(r,{follow:!(131072&t)}).node}catch(r){}}var a=!1;if(64&t)if(n){if(128&t)throw new pr.ErrnoError(20)}else n=pr.mknod(r,e,0),a=!0;if(!n)throw new pr.ErrnoError(44);if(pr.isChrdev(n.mode)&&(t&=-513),65536&t&&!pr.isDir(n.mode))throw new pr.ErrnoError(54);if(!a){var i=pr.mayOpen(n,t);if(i)throw new pr.ErrnoError(i)}512&t&&!a&&pr.truncate(n,0),t&=-131713;var s=pr.createStream({node:n,path:pr.getPath(n),flags:t,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return s.stream_ops.open&&s.stream_ops.open(s),!o.logReadFiles||1&t||(pr.readFiles||(pr.readFiles={}),r in pr.readFiles||(pr.readFiles[r]=1)),s},close(r){if(pr.isClosed(r))throw new pr.ErrnoError(8);r.getdents&&(r.getdents=null);try{r.stream_ops.close&&r.stream_ops.close(r)}catch(r){throw r}finally{pr.closeStream(r.fd)}r.fd=null},isClosed:r=>null===r.fd,llseek(r,t,e){if(pr.isClosed(r))throw new pr.ErrnoError(8);if(!r.seekable||!r.stream_ops.llseek)throw new pr.ErrnoError(70);if(0!=e&&1!=e&&2!=e)throw new pr.ErrnoError(28);return r.position=r.stream_ops.llseek(r,t,e),r.ungotten=[],r.position},read(r,t,e,n,o){if(n<0||o<0)throw new pr.ErrnoError(28);if(pr.isClosed(r))throw new pr.ErrnoError(8);if(1==(2097155&r.flags))throw new pr.ErrnoError(8);if(pr.isDir(r.node.mode))throw new pr.ErrnoError(31);if(!r.stream_ops.read)throw new pr.ErrnoError(28);var a=void 0!==o;if(a){if(!r.seekable)throw new pr.ErrnoError(70)}else o=r.position;var i=r.stream_ops.read(r,t,e,n,o);return a||(r.position+=i),i},write(r,t,e,n,o,a){if(n<0||o<0)throw new pr.ErrnoError(28);if(pr.isClosed(r))throw new pr.ErrnoError(8);if(0==(2097155&r.flags))throw new pr.ErrnoError(8);if(pr.isDir(r.node.mode))throw new pr.ErrnoError(31);if(!r.stream_ops.write)throw new pr.ErrnoError(28);r.seekable&&1024&r.flags&&pr.llseek(r,0,2);var i=void 0!==o;if(i){if(!r.seekable)throw new pr.ErrnoError(70)}else o=r.position;var s=r.stream_ops.write(r,t,e,n,o,a);return i||(r.position+=s),s},allocate(r,t,e){if(pr.isClosed(r))throw new pr.ErrnoError(8);if(t<0||e<=0)throw new pr.ErrnoError(28);if(0==(2097155&r.flags))throw new pr.ErrnoError(8);if(!pr.isFile(r.node.mode)&&!pr.isDir(r.node.mode))throw new pr.ErrnoError(43);if(!r.stream_ops.allocate)throw new pr.ErrnoError(138);r.stream_ops.allocate(r,t,e)},mmap(r,t,e,n,o){if(0!=(2&n)&&0==(2&o)&&2!=(2097155&r.flags))throw new pr.ErrnoError(2);if(1==(2097155&r.flags))throw new pr.ErrnoError(2);if(!r.stream_ops.mmap)throw new pr.ErrnoError(43);return r.stream_ops.mmap(r,t,e,n,o)},msync:(r,t,e,n,o)=>r.stream_ops.msync?r.stream_ops.msync(r,t,e,n,o):0,munmap:r=>0,ioctl(r,t,e){if(!r.stream_ops.ioctl)throw new pr.ErrnoError(59);return r.stream_ops.ioctl(r,t,e)},readFile(r,t={}){if(t.flags=t.flags||0,t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error(`Invalid encoding type "${t.encoding}"`);var e,n=pr.open(r,t.flags),o=pr.stat(r).size,a=new Uint8Array(o);return pr.read(n,a,0,o,0),"utf8"===t.encoding?e=tr(a,0):"binary"===t.encoding&&(e=a),pr.close(n),e},writeFile(r,t,e={}){e.flags=e.flags||577;var n=pr.open(r,e.flags,e.mode);if("string"==typeof t){var o=new Uint8Array(nr(t)+1),a=or(t,o,0,o.length);pr.write(n,o,0,a,void 0,e.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");pr.write(n,t,0,t.byteLength,void 0,e.canOwn)}pr.close(n)},cwd:()=>pr.currentPath,chdir(r){var t=pr.lookupPath(r,{follow:!0});if(null===t.node)throw new pr.ErrnoError(44);if(!pr.isDir(t.node.mode))throw new pr.ErrnoError(54);var e=pr.nodePermissions(t.node,"x");if(e)throw new pr.ErrnoError(e);pr.currentPath=t.path},createDefaultDirectories(){pr.mkdir("/tmp"),pr.mkdir("/home"),pr.mkdir("/home/web_user")},createDefaultDevices(){pr.mkdir("/dev"),pr.registerDevice(pr.makedev(1,3),{read:()=>0,write:(r,t,e,n,o)=>n}),pr.mkdev("/dev/null",pr.makedev(1,3)),cr.register(pr.makedev(5,0),cr.default_tty_ops),cr.register(pr.makedev(6,0),cr.default_tty1_ops),pr.mkdev("/dev/tty",pr.makedev(5,0)),pr.mkdev("/dev/tty1",pr.makedev(6,0));var r=new Uint8Array(1024),t=0,e=()=>(0===t&&(t=Z(r).byteLength),r[--t]);pr.createDevice("/dev","random",e),pr.createDevice("/dev","urandom",e),pr.mkdir("/dev/shm"),pr.mkdir("/dev/shm/tmp")},createSpecialDirectories(){pr.mkdir("/proc");var r=pr.mkdir("/proc/self");pr.mkdir("/proc/self/fd"),pr.mount({mount(){var t=pr.createNode(r,"fd",16895,73);return t.node_ops={lookup(r,t){var e=+t,n=pr.getStreamChecked(e),o={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>n.path}};return o.parent=o,o}},t}},{},"/proc/self/fd")},createStandardStreams(){o.stdin?pr.createDevice("/dev","stdin",o.stdin):pr.symlink("/dev/tty","/dev/stdin"),o.stdout?pr.createDevice("/dev","stdout",null,o.stdout):pr.symlink("/dev/tty","/dev/stdout"),o.stderr?pr.createDevice("/dev","stderr",null,o.stderr):pr.symlink("/dev/tty1","/dev/stderr"),pr.open("/dev/stdin",0),pr.open("/dev/stdout",1),pr.open("/dev/stderr",1)},ensureErrnoError(){pr.ErrnoError||(pr.ErrnoError=function(r,t){this.name="ErrnoError",this.node=t,this.setErrno=function(r){this.errno=r},this.setErrno(r),this.message="FS error"},pr.ErrnoError.prototype=new Error,pr.ErrnoError.prototype.constructor=pr.ErrnoError,[44].forEach((r=>{pr.genericErrors[r]=new pr.ErrnoError(r),pr.genericErrors[r].stack=""})))},staticInit(){pr.ensureErrnoError(),pr.nameTable=new Array(4096),pr.mount(hr,{},"/"),pr.createDefaultDirectories(),pr.createDefaultDevices(),pr.createSpecialDirectories(),pr.filesystems={MEMFS:hr}},init(r,t,e){pr.init.initialized=!0,pr.ensureErrnoError(),o.stdin=r||o.stdin,o.stdout=t||o.stdout,o.stderr=e||o.stderr,pr.createStandardStreams()},quit(){pr.init.initialized=!1;for(var r=0;rthis.length-1||r<0)){var t=r%this.chunkSize,e=r/this.chunkSize|0;return this.getter(e)[t]}},a.prototype.setDataGetter=function(r){this.getter=r},a.prototype.cacheLength=function(){var r=new XMLHttpRequest;if(r.open("HEAD",e,!1),r.send(null),!(r.status>=200&&r.status<300||304===r.status))throw new Error("Couldn't load "+e+". Status: "+r.status);var t,n=Number(r.getResponseHeader("Content-length")),o=(t=r.getResponseHeader("Accept-Ranges"))&&"bytes"===t,a=(t=r.getResponseHeader("Content-Encoding"))&&"gzip"===t,i=1048576;o||(i=n);var s=this;s.setDataGetter((r=>{var t=r*i,o=(r+1)*i-1;if(o=Math.min(o,n-1),void 0===s.chunks[r]&&(s.chunks[r]=((r,t)=>{if(r>t)throw new Error("invalid range ("+r+", "+t+") or no bytes requested!");if(t>n-1)throw new Error("only "+n+" bytes available! programmer error!");var o=new XMLHttpRequest;if(o.open("GET",e,!1),n!==i&&o.setRequestHeader("Range","bytes="+r+"-"+t),o.responseType="arraybuffer",o.overrideMimeType&&o.overrideMimeType("text/plain; charset=x-user-defined"),o.send(null),!(o.status>=200&&o.status<300||304===o.status))throw new Error("Couldn't load "+e+". Status: "+o.status);return void 0!==o.response?new Uint8Array(o.response||[]):ar(o.responseText||"",!0)})(t,o)),void 0===s.chunks[r])throw new Error("doXHR failed!");return s.chunks[r]})),!a&&n||(i=n=1,n=this.getter(0).length,i=n,y("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=i,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!h)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var i=new a;Object.defineProperties(i,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var s={isDevice:!1,contents:i}}else s={isDevice:!1,url:e};var u=pr.createFile(r,t,s,n,o);s.contents?u.contents=s.contents:s.url&&(u.contents=null,u.url=s.url),Object.defineProperties(u,{usedBytes:{get:function(){return this.contents.length}}});var c={};function l(r,t,e,n,o){var a=r.node.contents;if(o>=a.length)return 0;var i=Math.min(a.length-o,n);if(a.slice)for(var s=0;s{var t=u.stream_ops[r];c[r]=function(){return pr.forceLoadFile(u),t.apply(null,arguments)}})),c.read=(r,t,e,n,o)=>(pr.forceLoadFile(u),l(r,t,e,n,o)),c.mmap=(r,t,e,n,o)=>{pr.forceLoadFile(u);var a=lr();if(!a)throw new pr.ErrnoError(48);return l(r,g,a,t,e),{ptr:a,allocated:!0}},u.stream_ops=c,u}},mr=(r,t)=>r?tr(b,r,t):"",vr={DEFAULT_POLLMASK:5,calculateAt(r,t,e){if(J.isAbs(t))return t;var n;if(n=-100===r?pr.cwd():vr.getStreamFromFD(r).path,0==t.length){if(!e)throw new pr.ErrnoError(44);return n}return J.join2(n,t)},doStat(r,t,e){try{var n=r(t)}catch(r){if(r&&r.node&&J.normalize(t)!==J.normalize(pr.getPath(r.node)))return-54;throw r}k[e>>2]=n.dev,k[e+4>>2]=n.mode,$[e+8>>2]=n.nlink,k[e+12>>2]=n.uid,k[e+16>>2]=n.gid,k[e+20>>2]=n.rdev,H=[n.size>>>0,(N=n.size,+Math.abs(N)>=1?N>0?+Math.floor(N/4294967296)>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],k[e+24>>2]=H[0],k[e+28>>2]=H[1],k[e+32>>2]=4096,k[e+36>>2]=n.blocks;var o=n.atime.getTime(),a=n.mtime.getTime(),i=n.ctime.getTime();return H=[Math.floor(o/1e3)>>>0,(N=Math.floor(o/1e3),+Math.abs(N)>=1?N>0?+Math.floor(N/4294967296)>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],k[e+40>>2]=H[0],k[e+44>>2]=H[1],$[e+48>>2]=o%1e3*1e3,H=[Math.floor(a/1e3)>>>0,(N=Math.floor(a/1e3),+Math.abs(N)>=1?N>0?+Math.floor(N/4294967296)>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],k[e+56>>2]=H[0],k[e+60>>2]=H[1],$[e+64>>2]=a%1e3*1e3,H=[Math.floor(i/1e3)>>>0,(N=Math.floor(i/1e3),+Math.abs(N)>=1?N>0?+Math.floor(N/4294967296)>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],k[e+72>>2]=H[0],k[e+76>>2]=H[1],$[e+80>>2]=i%1e3*1e3,H=[n.ino>>>0,(N=n.ino,+Math.abs(N)>=1?N>0?+Math.floor(N/4294967296)>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],k[e+88>>2]=H[0],k[e+92>>2]=H[1],0},doMsync(r,t,e,n,o){if(!pr.isFile(t.node.mode))throw new pr.ErrnoError(43);if(2&n)return 0;var a=b.slice(r,r+e);pr.msync(t,a,o,e,n)},varargs:void 0,get(){var r=k[+vr.varargs>>2];return vr.varargs+=4,r},getp:()=>vr.get(),getStr:r=>mr(r),getStreamFromFD:r=>pr.getStreamChecked(r)},yr=r=>{for(var t="",e=r;b[e];)t+=ir[b[e++]];return t},wr={},gr={},br={},Er=r=>{throw new sr(r)},_r=r=>{throw new ur(r)},kr=(r,t,e)=>{function n(t){var n=e(t);n.length!==r.length&&_r("Mismatched type converter count");for(var o=0;o{gr.hasOwnProperty(r)?o[t]=gr[r]:(a.push(r),wr.hasOwnProperty(r)||(wr[r]=[]),wr[r].push((()=>{o[t]=gr[r],++i===a.length&&n(o)})))})),0===a.length&&n(o)};function $r(r,t,e={}){if(!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(r,t,e={}){var n=t.name;if(r||Er(`type "${n}" must have a positive integer typeid pointer`),gr.hasOwnProperty(r)){if(e.ignoreDuplicateRegistrations)return;Er(`Cannot register type '${n}' twice`)}if(gr[r]=t,delete br[r],wr.hasOwnProperty(r)){var o=wr[r];delete wr[r],o.forEach((r=>r()))}}(r,t,e)}var Pr,Cr=r=>{Er(r.$$.ptrType.registeredClass.name+" instance already deleted")},Tr=!1,Dr=r=>{},Fr=r=>{r.count.value-=1,0===r.count.value&&(r=>{r.smartPtr?r.smartPtrType.rawDestructor(r.smartPtr):r.ptrType.registeredClass.rawDestructor(r.ptr)})(r)},Sr=(r,t,e)=>{if(t===e)return r;if(void 0===e.baseClass)return null;var n=Sr(r,t,e.baseClass);return null===n?null:e.downcast(n)},Ar={},jr=[],Mr=()=>{for(;jr.length;){var r=jr.pop();r.$$.deleteScheduled=!1,r.delete()}},Or={},Rr=(r,t)=>(t.ptrType&&t.ptr||_r("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&_r("Both smartPtrType and smartPtr must be specified"),t.count={value:1},xr(Object.create(r,{$$:{value:t}})));var xr=r=>"undefined"==typeof FinalizationRegistry?(xr=r=>r,r):(Tr=new FinalizationRegistry((r=>{Fr(r.$$)})),xr=r=>{var t=r.$$;if(t.smartPtr){var e={$$:t};Tr.register(r,e,r)}return r},Dr=r=>Tr.unregister(r),xr(r));function zr(){}var Wr=(r,t)=>Object.defineProperty(t,"name",{value:r}),Nr=(r,t,e)=>{if(void 0===r[t].overloadTable){var n=r[t];r[t]=function(){return r[t].overloadTable.hasOwnProperty(arguments.length)||Er(`Function '${e}' called with an invalid number of arguments (${arguments.length}) - expects one of (${r[t].overloadTable})!`),r[t].overloadTable[arguments.length].apply(this,arguments)},r[t].overloadTable=[],r[t].overloadTable[n.argCount]=n}},Hr=(r,t,e)=>{o.hasOwnProperty(r)?((void 0===e||void 0!==o[r].overloadTable&&void 0!==o[r].overloadTable[e])&&Er(`Cannot register public name '${r}' twice`),Nr(o,r,r),o.hasOwnProperty(e)&&Er(`Cannot register multiple overloads of a function with the same number of arguments (${e})!`),o[r].overloadTable[e]=t):(o[r]=t,void 0!==e&&(o[r].numArguments=e))};function Lr(r,t,e,n,o,a,i,s){this.name=r,this.constructor=t,this.instancePrototype=e,this.rawDestructor=n,this.baseClass=o,this.getActualType=a,this.upcast=i,this.downcast=s,this.pureVirtualFunctions=[]}var Ur=(r,t,e)=>{for(;t!==e;)t.upcast||Er(`Expected null or instance of ${e.name}, got an instance of ${t.name}`),r=t.upcast(r),t=t.baseClass;return r};function Br(r,t){if(null===t)return this.isReference&&Er(`null is not a valid ${this.name}`),0;t.$$||Er(`Cannot pass "${pt(t)}" as a ${this.name}`),t.$$.ptr||Er(`Cannot pass deleted object as a pointer of type ${this.name}`);var e=t.$$.ptrType.registeredClass;return Ur(t.$$.ptr,e,this.registeredClass)}function Ir(r,t){var e;if(null===t)return this.isReference&&Er(`null is not a valid ${this.name}`),this.isSmartPointer?(e=this.rawConstructor(),null!==r&&r.push(this.rawDestructor,e),e):0;t.$$||Er(`Cannot pass "${pt(t)}" as a ${this.name}`),t.$$.ptr||Er(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&t.$$.ptrType.isConst&&Er(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);var n=t.$$.ptrType.registeredClass;if(e=Ur(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&Er("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?e=t.$$.smartPtr:Er(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:e=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)e=t.$$.smartPtr;else{var o=t.clone();e=this.rawShare(e,lt.toHandle((()=>o.delete()))),null!==r&&r.push(this.rawDestructor,e)}break;default:Er("Unsupporting sharing policy")}return e}function Vr(r,t){if(null===t)return this.isReference&&Er(`null is not a valid ${this.name}`),0;t.$$||Er(`Cannot pass "${pt(t)}" as a ${this.name}`),t.$$.ptr||Er(`Cannot pass deleted object as a pointer of type ${this.name}`),t.$$.ptrType.isConst&&Er(`Cannot convert argument of type ${t.$$.ptrType.name} to parameter type ${this.name}`);var e=t.$$.ptrType.registeredClass;return Ur(t.$$.ptr,e,this.registeredClass)}function Yr(r){return this.fromWireType($[r>>2])}function qr(r,t,e,n,o,a,i,s,u,c,l){this.name=r,this.registeredClass=t,this.isReference=e,this.isConst=n,this.isSmartPointer=o,this.pointeeType=a,this.sharingPolicy=i,this.rawGetPointee=s,this.rawConstructor=u,this.rawShare=c,this.rawDestructor=l,o||void 0!==t.baseClass?this.toWireType=Ir:n?(this.toWireType=Br,this.destructorFunction=null):(this.toWireType=Vr,this.destructorFunction=null)}var Xr,Gr,Kr=(r,t,e)=>{o.hasOwnProperty(r)||_r("Replacing nonexistant public symbol"),void 0!==o[r].overloadTable&&void 0!==e?o[r].overloadTable[e]=t:(o[r]=t,o[r].argCount=e)},Jr=[],Zr=r=>{var t=Jr[r];return t||(r>=Jr.length&&(Jr.length=r+1),Jr[r]=t=Xr.get(r)),t},Qr=(r,t)=>{var e,n,a,i=(r=yr(r)).includes("j")?(e=r,n=t,a=[],function(){return a.length=0,Object.assign(a,arguments),((r,t,e)=>r.includes("j")?((r,t,e)=>{var n=o["dynCall_"+r];return e&&e.length?n.apply(null,[t].concat(e)):n.call(null,t)})(r,t,e):Zr(t).apply(null,e))(e,n,a)}):Zr(t);return"function"!=typeof i&&Er(`unknown function pointer with signature ${r}: ${t}`),i},rt=r=>{var t=Gt(r),e=yr(t);return Yt(t),e},tt=(r,t)=>{var e=[],n={};throw t.forEach((function r(t){n[t]||gr[t]||(br[t]?br[t].forEach(r):(e.push(t),n[t]=!0))})),new Gr(`${r}: `+e.map(rt).join([", "]))},et=(r,t)=>{for(var e=[],n=0;n>2]);return e},nt=r=>{for(;r.length;){var t=r.pop();r.pop()(t)}};function ot(r,t){if(!(r instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof r} which is not a function`);var e=Wr(r.name||"unknownFunctionName",(function(){}));e.prototype=r.prototype;var n=new e,o=r.apply(n,t);return o instanceof Object?o:n}function at(r,t,e,n,o,a){var i=t.length;i<2&&Er("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var s=null!==t[1]&&null!==e,u=!1,c=1;c0?", ":"")+d),f+=(l||a?"var rv = ":"")+"invoker(fn"+(d.length>0?", ":"")+d+");\n",u)f+="runDestructors(destructors);\n";else for(c=s?1:2;c{const t=(r=r.trim()).indexOf("(");return-1!==t?r.substr(0,t):r};function st(){this.allocated=[void 0],this.freelist=[]}var ut=new st,ct=r=>{r>=ut.reserved&&0==--ut.get(r).refcount&&ut.free(r)},lt={toValue:r=>(r||Er("Cannot use deleted val. handle = "+r),ut.get(r).value),toHandle:r=>{switch(r){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return ut.allocate({refcount:1,value:r})}}};function ht(r){return this.fromWireType(k[r>>2])}var dt,ft,pt=r=>{if(null===r)return"null";var t=typeof r;return"object"===t||"array"===t||"function"===t?r.toString():""+r},mt=(r,t)=>{switch(t){case 4:return function(r){return this.fromWireType(P[r>>2])};case 8:return function(r){return this.fromWireType(C[r>>3])};default:throw new TypeError(`invalid float width (${t}): ${r}`)}},vt=(r,t,e)=>{switch(t){case 1:return e?r=>g[r>>0]:r=>b[r>>0];case 2:return e?r=>E[r>>1]:r=>_[r>>1];case 4:return e?r=>k[r>>2]:r=>$[r>>2];default:throw new TypeError(`invalid integer width (${t}): ${r}`)}},yt=(r,t,e)=>or(r,b,t,e),wt="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,gt=(r,t)=>{for(var e=r,n=e>>1,o=n+t/2;!(n>=o)&&_[n];)++n;if((e=n<<1)-r>32&&wt)return wt.decode(b.subarray(r,e));for(var a="",i=0;!(i>=t/2);++i){var s=E[r+2*i>>1];if(0==s)break;a+=String.fromCharCode(s)}return a},bt=(r,t,e)=>{if(void 0===e&&(e=2147483647),e<2)return 0;for(var n=t,o=(e-=2)<2*r.length?e/2:r.length,a=0;a>1]=i,t+=2}return E[t>>1]=0,t-n},Et=r=>2*r.length,_t=(r,t)=>{for(var e=0,n="";!(e>=t/4);){var o=k[r+4*e>>2];if(0==o)break;if(++e,o>=65536){var a=o-65536;n+=String.fromCharCode(55296|a>>10,56320|1023&a)}else n+=String.fromCharCode(o)}return n},kt=(r,t,e)=>{if(void 0===e&&(e=2147483647),e<4)return 0;for(var n=t,o=n+e-4,a=0;a=55296&&i<=57343&&(i=65536+((1023&i)<<10)|1023&r.charCodeAt(++a)),k[t>>2]=i,(t+=4)+4>o)break}return k[t>>2]=0,t-n},$t=r=>{for(var t=0,e=0;e=55296&&n<=57343&&++e,t+=4}return t},Pt=(r,t)=>{var e=gr[r];return void 0===e&&Er(t+" has unknown type "+rt(r)),e},Ct=(r,t,e)=>{var n=[],o=r.toWireType(n,e);return n.length&&($[t>>2]=lt.toHandle(n)),o},Tt=[],Dt={},Ft=r=>{var t=Dt[r];return void 0===t?yr(r):t},St=()=>"object"==typeof globalThis?globalThis:Function("return this")(),At=(Reflect.construct,r=>r%4==0&&(r%100!=0||r%400==0)),jt=[0,31,60,91,121,152,182,213,244,274,305,335],Mt=[0,31,59,90,120,151,181,212,243,273,304,334],Ot=(r,t)=>t+2097152>>>0<4194305-!!r?(r>>>0)+4294967296*t:NaN,Rt=r=>{var t=nr(r)+1,e=Vt(t);return e&&yt(r,e,t),e},xt={},zt=()=>{if(!zt.strings){var r={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:c||"./this.program"};for(var t in xt)void 0===xt[t]?delete r[t]:r[t]=xt[t];var e=[];for(var t in r)e.push(`${t}=${r[t]}`);zt.strings=e}return zt.strings},Wt=[31,29,31,30,31,30,31,31,30,31,30,31],Nt=[31,28,31,30,31,30,31,31,30,31,30,31],Ht=(r,t,e,n)=>{var o=$[n+40>>2],a={tm_sec:k[n>>2],tm_min:k[n+4>>2],tm_hour:k[n+8>>2],tm_mday:k[n+12>>2],tm_mon:k[n+16>>2],tm_year:k[n+20>>2],tm_wday:k[n+24>>2],tm_yday:k[n+28>>2],tm_isdst:k[n+32>>2],tm_gmtoff:k[n+36>>2],tm_zone:o?mr(o):""},i=mr(e),s={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var u in s)i=i.replace(new RegExp(u,"g"),s[u]);var c=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],l=["January","February","March","April","May","June","July","August","September","October","November","December"];function h(r,t,e){for(var n="number"==typeof r?r.toString():r||"";n.length0?1:0}var n;return 0===(n=e(r.getFullYear()-t.getFullYear()))&&0===(n=e(r.getMonth()-t.getMonth()))&&(n=e(r.getDate()-t.getDate())),n}function p(r){switch(r.getDay()){case 0:return new Date(r.getFullYear()-1,11,29);case 1:return r;case 2:return new Date(r.getFullYear(),0,3);case 3:return new Date(r.getFullYear(),0,2);case 4:return new Date(r.getFullYear(),0,1);case 5:return new Date(r.getFullYear()-1,11,31);case 6:return new Date(r.getFullYear()-1,11,30)}}function m(r){var t=((r,t)=>{for(var e=new Date(r.getTime());t>0;){var n=At(e.getFullYear()),o=e.getMonth(),a=(n?Wt:Nt)[o];if(!(t>a-e.getDate()))return e.setDate(e.getDate()+t),e;t-=a-e.getDate()+1,e.setDate(1),o<11?e.setMonth(o+1):(e.setMonth(0),e.setFullYear(e.getFullYear()+1))}return e})(new Date(r.tm_year+1900,0,1),r.tm_yday),e=new Date(t.getFullYear(),0,4),n=new Date(t.getFullYear()+1,0,4),o=p(e),a=p(n);return f(o,t)<=0?f(a,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var v={"%a":r=>c[r.tm_wday].substring(0,3),"%A":r=>c[r.tm_wday],"%b":r=>l[r.tm_mon].substring(0,3),"%B":r=>l[r.tm_mon],"%C":r=>d((r.tm_year+1900)/100|0,2),"%d":r=>d(r.tm_mday,2),"%e":r=>h(r.tm_mday,2," "),"%g":r=>m(r).toString().substring(2),"%G":r=>m(r),"%H":r=>d(r.tm_hour,2),"%I":r=>{var t=r.tm_hour;return 0==t?t=12:t>12&&(t-=12),d(t,2)},"%j":r=>d(r.tm_mday+((r,t)=>{for(var e=0,n=0;n<=t;e+=r[n++]);return e})(At(r.tm_year+1900)?Wt:Nt,r.tm_mon-1),3),"%m":r=>d(r.tm_mon+1,2),"%M":r=>d(r.tm_min,2),"%n":()=>"\n","%p":r=>r.tm_hour>=0&&r.tm_hour<12?"AM":"PM","%S":r=>d(r.tm_sec,2),"%t":()=>"\t","%u":r=>r.tm_wday||7,"%U":r=>{var t=r.tm_yday+7-r.tm_wday;return d(Math.floor(t/7),2)},"%V":r=>{var t=Math.floor((r.tm_yday+7-(r.tm_wday+6)%7)/7);if((r.tm_wday+371-r.tm_yday-2)%7<=2&&t++,t){if(53==t){var e=(r.tm_wday+371-r.tm_yday)%7;4==e||3==e&&At(r.tm_year)||(t=1)}}else{t=52;var n=(r.tm_wday+7-r.tm_yday-1)%7;(4==n||5==n&&At(r.tm_year%400-1))&&t++}return d(t,2)},"%w":r=>r.tm_wday,"%W":r=>{var t=r.tm_yday+7-(r.tm_wday+6)%7;return d(Math.floor(t/7),2)},"%y":r=>(r.tm_year+1900).toString().substring(2),"%Y":r=>r.tm_year+1900,"%z":r=>{var t=r.tm_gmtoff,e=t>=0;return t=(t=Math.abs(t)/60)/60*100+t%60,(e?"+":"-")+String("0000"+t).slice(-4)},"%Z":r=>r.tm_zone,"%%":()=>"%"};for(var u in i=i.replace(/%%/g,"\0\0"),v)i.includes(u)&&(i=i.replace(new RegExp(u,"g"),v[u](a)));var y,w,b=ar(i=i.replace(/\0\0/g,"%"),!1);return b.length>t?0:(y=b,w=r,g.set(y,w),b.length-1)},Lt=function(r,t,e,n){r||(r=this),this.parent=r,this.mount=r.mount,this.mounted=null,this.id=pr.nextInode++,this.name=t,this.mode=e,this.node_ops={},this.stream_ops={},this.rdev=n};Object.defineProperties(Lt.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(r){r?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(r){r?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return pr.isDir(this.mode)}},isDevice:{get:function(){return pr.isChrdev(this.mode)}}}),pr.FSNode=Lt,pr.createPreloadedFile=(r,t,e,n,o,a,s,u,c,l)=>{var h=t?Q.resolve(J.join2(r,t)):r;function d(e){function i(e){l&&l(),u||((r,t,e,n,o,a)=>{pr.createDataFile(r,t,e,n,o,a)})(r,t,e,n,o,c),a&&a(),R()}((r,t,e,n)=>{"undefined"!=typeof Browser&&Browser.init();var o=!1;return dr.forEach((a=>{o||a.canHandle(t)&&(a.handle(r,t,e,n),o=!0)})),o})(e,h,i,(()=>{s&&s(),R()}))||i(e)}O(),"string"==typeof e?((r,t,e,n)=>{var o=n?"":`al ${r}`;i(r,(e=>{e||x(`Loading data file "${r}" failed (no arrayBuffer).`),t(new Uint8Array(e)),o&&R()}),(t=>{if(!e)throw`Loading data file "${r}" failed.`;e()})),o&&O()})(e,(r=>d(r)),s):d(e)},pr.staticInit(),(()=>{for(var r=new Array(256),t=0;t<256;++t)r[t]=String.fromCharCode(t);ir=r})(),sr=o.BindingError=class extends Error{constructor(r){super(r),this.name="BindingError"}},ur=o.InternalError=class extends Error{constructor(r){super(r),this.name="InternalError"}},Object.assign(zr.prototype,{isAliasOf(r){if(!(this instanceof zr))return!1;if(!(r instanceof zr))return!1;var t=this.$$.ptrType.registeredClass,e=this.$$.ptr;r.$$=r.$$;for(var n=r.$$.ptrType.registeredClass,o=r.$$.ptr;t.baseClass;)e=t.upcast(e),t=t.baseClass;for(;n.baseClass;)o=n.upcast(o),n=n.baseClass;return t===n&&e===o},clone(){if(this.$$.ptr||Cr(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var r,t=xr(Object.create(Object.getPrototypeOf(this),{$$:{value:(r=this.$$,{count:r.count,deleteScheduled:r.deleteScheduled,preservePointerOnDelete:r.preservePointerOnDelete,ptr:r.ptr,ptrType:r.ptrType,smartPtr:r.smartPtr,smartPtrType:r.smartPtrType})}}));return t.$$.count.value+=1,t.$$.deleteScheduled=!1,t},delete(){this.$$.ptr||Cr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Er("Object already scheduled for deletion"),Dr(this),Fr(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||Cr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Er("Object already scheduled for deletion"),jr.push(this),1===jr.length&&Pr&&Pr(Mr),this.$$.deleteScheduled=!0,this}}),o.getInheritedInstanceCount=()=>Object.keys(Or).length,o.getLiveInheritedInstances=()=>{var r=[];for(var t in Or)Or.hasOwnProperty(t)&&r.push(Or[t]);return r},o.flushPendingDeletes=Mr,o.setDelayFunction=r=>{Pr=r,jr.length&&Pr&&Pr(Mr)},Object.assign(qr.prototype,{getPointee(r){return this.rawGetPointee&&(r=this.rawGetPointee(r)),r},destructor(r){this.rawDestructor&&this.rawDestructor(r)},argPackAdvance:8,readValueFromPointer:Yr,deleteObject(r){null!==r&&r.delete()},fromWireType:function(r){var t=this.getPointee(r);if(!t)return this.destructor(r),null;var e=((r,t)=>(t=((r,t)=>{for(void 0===t&&Er("ptr should not be undefined");r.baseClass;)t=r.upcast(t),r=r.baseClass;return t})(r,t),Or[t]))(this.registeredClass,t);if(void 0!==e){if(0===e.$$.count.value)return e.$$.ptr=t,e.$$.smartPtr=r,e.clone();var n=e.clone();return this.destructor(r),n}function o(){return this.isSmartPointer?Rr(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:r}):Rr(this.registeredClass.instancePrototype,{ptrType:this,ptr:r})}var a,i=this.registeredClass.getActualType(t),s=Ar[i];if(!s)return o.call(this);a=this.isConst?s.constPointerType:s.pointerType;var u=Sr(t,this.registeredClass,a.registeredClass);return null===u?o.call(this):this.isSmartPointer?Rr(a.registeredClass.instancePrototype,{ptrType:a,ptr:u,smartPtrType:this,smartPtr:r}):Rr(a.registeredClass.instancePrototype,{ptrType:a,ptr:u})}}),Gr=o.UnboundTypeError=(dt=Error,(ft=Wr("UnboundTypeError",(function(r){this.name="UnboundTypeError",this.message=r;var t=new Error(r).stack;void 0!==t&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))}))).prototype=Object.create(dt.prototype),ft.prototype.constructor=ft,ft.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`},ft),Object.assign(st.prototype,{get(r){return this.allocated[r]},has(r){return void 0!==this.allocated[r]},allocate(r){var t=this.freelist.pop()||this.allocated.length;return this.allocated[t]=r,t},free(r){this.allocated[r]=void 0,this.freelist.push(r)}}),ut.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),ut.reserved=ut.allocated.length,o.count_emval_handles=()=>{for(var r=0,t=ut.reserved;t{var t=new G(r);return t.get_caught()||(t.set_caught(!0),q--),t.set_rethrown(!1),Y.push(t),re(t.excPtr),t.get_exception_ptr()},y:()=>{Kt(0,0);var r=Y.pop();Qt(r.excPtr),X=0},a:()=>K([]),i:r=>K([r]),E:(r,t)=>K([r,t]),Ja:()=>{var r=Y.pop();r||x("no exception to throw");var t=r.excPtr;throw r.get_rethrown()||(Y.push(r),r.set_rethrown(!0),r.set_caught(!1),q++),X=t},q:(r,t,e)=>{throw new G(r).init(t,e),q++,X=r},xb:()=>q,f:r=>{throw X||(X=r),X},Ra:function(r,t,e){vr.varargs=e;try{var n=vr.getStreamFromFD(r);switch(t){case 0:if((o=vr.get())<0)return-28;for(;pr.streams[o];)o++;return pr.createStream(n,o).fd;case 1:case 2:case 6:case 7:return 0;case 3:return n.flags;case 4:var o=vr.get();return n.flags|=o,0;case 5:return o=vr.getp(),E[o+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return 28,k[qt()>>2]=28,-1}}catch(r){if(void 0===pr||"ErrnoError"!==r.name)throw r;return-r.errno}},Gb:function(r,t,e){vr.varargs=e;try{var n=vr.getStreamFromFD(r);switch(t){case 21509:case 21510:case 21511:case 21512:case 21524:case 21515:return n.tty?0:-59;case 21505:if(!n.tty)return-59;if(n.tty.ops.ioctl_tcgets){var o=n.tty.ops.ioctl_tcgets(n),a=vr.getp();k[a>>2]=o.c_iflag||0,k[a+4>>2]=o.c_oflag||0,k[a+8>>2]=o.c_cflag||0,k[a+12>>2]=o.c_lflag||0;for(var i=0;i<32;i++)g[a+i+17>>0]=o.c_cc[i]||0;return 0}return 0;case 21506:case 21507:case 21508:if(!n.tty)return-59;if(n.tty.ops.ioctl_tcsets){a=vr.getp();var s=k[a>>2],u=k[a+4>>2],c=k[a+8>>2],l=k[a+12>>2],h=[];for(i=0;i<32;i++)h.push(g[a+i+17>>0]);return n.tty.ops.ioctl_tcsets(n.tty,t,{c_iflag:s,c_oflag:u,c_cflag:c,c_lflag:l,c_cc:h})}return 0;case 21519:return n.tty?(a=vr.getp(),k[a>>2]=0,0):-59;case 21520:return n.tty?-28:-59;case 21531:return a=vr.getp(),pr.ioctl(n,t,a);case 21523:if(!n.tty)return-59;if(n.tty.ops.ioctl_tiocgwinsz){var d=n.tty.ops.ioctl_tiocgwinsz(n.tty);a=vr.getp(),E[a>>1]=d[0],E[a+2>>1]=d[1]}return 0;default:return-28}}catch(r){if(void 0===pr||"ErrnoError"!==r.name)throw r;return-r.errno}},Hb:function(r,t,e,n){vr.varargs=n;try{t=vr.getStr(t),t=vr.calculateAt(r,t);var o=n?vr.get():0;return pr.open(t,e,o).fd}catch(r){if(void 0===pr||"ErrnoError"!==r.name)throw r;return-r.errno}},ob:(r,t,e,n,o)=>{},Lb:(r,t,e,n)=>{$r(r,{name:t=yr(t),fromWireType:function(r){return!!r},toWireType:function(r,t){return t?e:n},argPackAdvance:8,readValueFromPointer:function(r){return this.fromWireType(b[r])},destructorFunction:null})},_:(r,t,e,n,o,a,i,s,u,c,l,h,d)=>{l=yr(l),a=Qr(o,a),s&&(s=Qr(i,s)),c&&(c=Qr(u,c)),d=Qr(h,d);var f=(r=>{if(void 0===r)return"_unknown";var t=(r=r.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=48&&t<=57?`_${r}`:r})(l);Hr(f,(function(){tt(`Cannot construct ${l} due to unbound types`,[n])})),kr([r,t,e],n?[n]:[],(function(t){var e,o;t=t[0],o=n?(e=t.registeredClass).instancePrototype:zr.prototype;var i=Wr(l,(function(){if(Object.getPrototypeOf(this)!==u)throw new sr("Use 'new' to construct "+l);if(void 0===h.constructor_body)throw new sr(l+" has no accessible constructor");var r=h.constructor_body[arguments.length];if(void 0===r)throw new sr(`Tried to invoke ctor of ${l} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(h.constructor_body).toString()}) parameters instead!`);return r.apply(this,arguments)})),u=Object.create(o,{constructor:{value:i}});i.prototype=u;var h=new Lr(l,i,u,d,e,a,s,c);h.baseClass&&(void 0===h.baseClass.__derivedClasses&&(h.baseClass.__derivedClasses=[]),h.baseClass.__derivedClasses.push(h));var p=new qr(l,h,!0,!1,!1),m=new qr(l+"*",h,!1,!1,!1),v=new qr(l+" const*",h,!1,!0,!1);return Ar[r]={pointerType:m,constPointerType:v},Kr(f,i),[p,m,v]}))},ka:(r,t,e,n,o,a)=>{var i=et(t,e);o=Qr(n,o),kr([],[r],(function(r){var e=`constructor ${(r=r[0]).name}`;if(void 0===r.registeredClass.constructor_body&&(r.registeredClass.constructor_body=[]),void 0!==r.registeredClass.constructor_body[t-1])throw new sr(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${r.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return r.registeredClass.constructor_body[t-1]=()=>{tt(`Cannot construct ${r.name} due to unbound types`,i)},kr([],i,(n=>(n.splice(1,0,null),r.registeredClass.constructor_body[t-1]=at(e,n,null,o,a),[]))),[]}))},r:(r,t,e,n,o,a,i,s,u)=>{var c=et(e,n);t=yr(t),t=it(t),a=Qr(o,a),kr([],[r],(function(r){var n=`${(r=r[0]).name}.${t}`;function o(){tt(`Cannot call ${n} due to unbound types`,c)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),s&&r.registeredClass.pureVirtualFunctions.push(t);var l=r.registeredClass.instancePrototype,h=l[t];return void 0===h||void 0===h.overloadTable&&h.className!==r.name&&h.argCount===e-2?(o.argCount=e-2,o.className=r.name,l[t]=o):(Nr(l,t,n),l[t].overloadTable[e-2]=o),kr([],c,(function(o){var s=at(n,o,r,a,i,u);return void 0===l[t].overloadTable?(s.argCount=e-2,l[t]=s):l[t].overloadTable[e-2]=s,[]})),[]}))},Jb:(r,t)=>{$r(r,{name:t=yr(t),fromWireType:r=>{var t=lt.toValue(r);return ct(r),t},toWireType:(r,t)=>lt.toHandle(t),argPackAdvance:8,readValueFromPointer:ht,destructorFunction:null})},Ta:(r,t,e)=>{$r(r,{name:t=yr(t),fromWireType:r=>r,toWireType:(r,t)=>t,argPackAdvance:8,readValueFromPointer:mt(t,e),destructorFunction:null})},K:(r,t,e,n,o,a,i)=>{var s=et(t,e);r=yr(r),r=it(r),o=Qr(n,o),Hr(r,(function(){tt(`Cannot call ${r} due to unbound types`,s)}),t-1),kr([],s,(function(e){var n=[e[0],null].concat(e.slice(1));return Kr(r,at(r,n,null,o,a,i),t-1),[]}))},T:(r,t,e,n,o)=>{t=yr(t),-1===o&&(o=4294967295);var a=r=>r;if(0===n){var i=32-8*e;a=r=>r<>>i}var s=t.includes("unsigned");$r(r,{name:t,fromWireType:a,toWireType:s?function(r,t){return this.name,t>>>0}:function(r,t){return this.name,t},argPackAdvance:8,readValueFromPointer:vt(t,e,0!==n),destructorFunction:null})},J:(r,t,e)=>{var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function o(r){var t=$[r>>2],e=$[r+4>>2];return new n(g.buffer,e,t)}$r(r,{name:e=yr(e),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},Sa:(r,t)=>{var e="std::string"===(t=yr(t));$r(r,{name:t,fromWireType(r){var t,n=$[r>>2],o=r+4;if(e)for(var a=o,i=0;i<=n;++i){var s=o+i;if(i==n||0==b[s]){var u=mr(a,s-a);void 0===t?t=u:(t+=String.fromCharCode(0),t+=u),a=s+1}}else{var c=new Array(n);for(i=0;i>2]=n,e&&o)yt(t,i,n+1);else if(o)for(var s=0;s255&&(Yt(i),Er("String has UTF-16 code units that do not fit in 8 bits")),b[i+s]=u}else for(s=0;s{var n,o,a,i,s;e=yr(e),2===t?(n=gt,o=bt,i=Et,a=()=>_,s=1):4===t&&(n=_t,o=kt,i=$t,a=()=>$,s=2),$r(r,{name:e,fromWireType:r=>{for(var e,o=$[r>>2],i=a(),u=r+4,c=0;c<=o;++c){var l=r+4+c*t;if(c==o||0==i[l>>s]){var h=n(u,l-u);void 0===e?e=h:(e+=String.fromCharCode(0),e+=h),u=l+t}}return Yt(r),e},toWireType:(r,n)=>{"string"!=typeof n&&Er(`Cannot pass non-string to C++ string type ${e}`);var a=i(n),u=Vt(4+a+t);return $[u>>2]=a>>s,o(n,u+4,a+t),null!==r&&r.push(Yt,u),u},argPackAdvance:8,readValueFromPointer:ht,destructorFunction(r){Yt(r)}})},Mb:(r,t)=>{$r(r,{isVoid:!0,name:t=yr(t),argPackAdvance:0,fromWireType:()=>{},toWireType:(r,t)=>{}})},zb:()=>{throw 1/0},Ma:(r,t,e)=>(r=lt.toValue(r),t=Pt(t,"emval::as"),Ct(t,e,r)),gb:(r,t,e,n)=>(r=Tt[r])(null,t=lt.toValue(t),e,n),X:(r,t,e,n,o)=>(r=Tt[r])(t=lt.toValue(t),t[e=Ft(e)],n,o),yb:ct,hb:r=>0===r?lt.toHandle(St()):(r=Ft(r),lt.toHandle(St()[r])),Y:(r,t,e)=>{var n=((r,t)=>{for(var e=new Array(r),n=0;n>2],"parameter "+n);return e})(r,t),o=n.shift();r--;var a="return function (obj, func, destructorsRef, args) {\n",i=0,s=[];0===e&&s.push("obj");for(var u=["retType"],c=[o],l=0;lr.name)).join(", ")}) => ${o.name}>`;return h=Wr(p,f),d=Tt.length,Tt.push(h),d},Kb:(r,t)=>(r=lt.toValue(r),t=lt.toValue(t),lt.toHandle(r[t])),jb:r=>{r>4&&(ut.get(r).refcount+=1)},oa:r=>lt.toHandle(Ft(r)),ib:()=>lt.toHandle({}),kb:r=>{var t=lt.toValue(r);nt(t),ct(r)},fb:(r,t,e)=>{r=lt.toValue(r),t=lt.toValue(t),e=lt.toValue(e),r[t]=e},ta:(r,t)=>{var e=(r=Pt(r,"_emval_take_value")).readValueFromPointer(t);return lt.toHandle(e)},Ka:r=>(r=lt.toValue(r),lt.toHandle(typeof r)),mb:function(r,t,e){var n=Ot(r,t),o=new Date(1e3*n);k[e>>2]=o.getSeconds(),k[e+4>>2]=o.getMinutes(),k[e+8>>2]=o.getHours(),k[e+12>>2]=o.getDate(),k[e+16>>2]=o.getMonth(),k[e+20>>2]=o.getFullYear()-1900,k[e+24>>2]=o.getDay();var a=0|(r=>(At(r.getFullYear())?jt:Mt)[r.getMonth()]+r.getDate()-1)(o);k[e+28>>2]=a,k[e+36>>2]=-60*o.getTimezoneOffset();var i=new Date(o.getFullYear(),0,1),s=new Date(o.getFullYear(),6,1).getTimezoneOffset(),u=i.getTimezoneOffset(),c=0|(s!=u&&o.getTimezoneOffset()==Math.min(u,s));k[e+32>>2]=c},Bb:(r,t,e)=>{var n=(new Date).getFullYear(),o=new Date(n,0,1),a=new Date(n,6,1),i=o.getTimezoneOffset(),s=a.getTimezoneOffset(),u=Math.max(i,s);function c(r){var t=r.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}$[r>>2]=60*u,k[t>>2]=Number(i!=s);var l=c(o),h=c(a),d=Rt(l),f=Rt(h);s>2]=d,$[e+4>>2]=f):($[e>>2]=f,$[e+4>>2]=d)},la:()=>{x("")},wa:()=>Date.now(),Ib:(r,t,e)=>b.copyWithin(r,t,t+e),Ab:r=>{b.length,x("OOM")},Db:(r,t)=>{var e=0;return zt().forEach(((n,o)=>{var a=t+e;$[r+4*o>>2]=a,((r,t)=>{for(var e=0;e>0]=r.charCodeAt(e);g[t>>0]=0})(n,a),e+=n.length+1})),0},Eb:(r,t)=>{var e=zt();$[r>>2]=e.length;var n=0;return e.forEach((r=>n+=r.length+1)),$[t>>2]=n,0},Pa:function(r){try{var t=vr.getStreamFromFD(r);return pr.close(t),0}catch(r){if(void 0===pr||"ErrnoError"!==r.name)throw r;return r.errno}},Cb:function(r,t){try{var e=vr.getStreamFromFD(r),n=e.tty?2:pr.isDir(e.mode)?3:pr.isLink(e.mode)?7:4;return g[t>>0]=n,E[t+2>>1]=0,H=[0,(N=0,+Math.abs(N)>=1?N>0?+Math.floor(N/4294967296)>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],k[t+8>>2]=H[0],k[t+12>>2]=H[1],H=[0,(N=0,+Math.abs(N)>=1?N>0?+Math.floor(N/4294967296)>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],k[t+16>>2]=H[0],k[t+20>>2]=H[1],0}catch(r){if(void 0===pr||"ErrnoError"!==r.name)throw r;return r.errno}},Fb:function(r,t,e,n){try{var o=((r,t,e,n)=>{for(var o=0,a=0;a>2],s=$[t+4>>2];t+=8;var u=pr.read(r,g,i,s,n);if(u<0)return-1;if(o+=u,u>2]=o,0}catch(r){if(void 0===pr||"ErrnoError"!==r.name)throw r;return r.errno}},nb:function(r,t,e,n,o){var a=Ot(t,e);try{if(isNaN(a))return 61;var i=vr.getStreamFromFD(r);return pr.llseek(i,a,n),H=[i.position>>>0,(N=i.position,+Math.abs(N)>=1?N>0?+Math.floor(N/4294967296)>>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)],k[o>>2]=H[0],k[o+4>>2]=H[1],i.getdents&&0===a&&0===n&&(i.getdents=null),0}catch(r){if(void 0===pr||"ErrnoError"!==r.name)throw r;return r.errno}},Qa:function(r,t,e,n){try{var o=((r,t,e,n)=>{for(var o=0,a=0;a>2],s=$[t+4>>2];t+=8;var u=pr.write(r,g,i,s,n);if(u<0)return-1;o+=u,void 0!==n&&(n+=u)}return o})(vr.getStreamFromFD(r),t,e);return $[n>>2]=o,0}catch(r){if(void 0===pr||"ErrnoError"!==r.name)throw r;return r.errno}},w:function(r,t){var e=Jt();try{return Zr(r)(t)}catch(r){if(Zt(e),r!==r+0)throw r;Kt(1,0)}},D:function(r,t,e){var n=Jt();try{return Zr(r)(t,e)}catch(r){if(Zt(n),r!==r+0)throw r;Kt(1,0)}},Aa:function(r,t,e,n){var o=Jt();try{return Zr(r)(t,e,n)}catch(r){if(Zt(o),r!==r+0)throw r;Kt(1,0)}},C:function(r,t,e,n){var o=Jt();try{return Zr(r)(t,e,n)}catch(r){if(Zt(o),r!==r+0)throw r;Kt(1,0)}},na:function(r,t,e,n,o){var a=Jt();try{return Zr(r)(t,e,n,o)}catch(r){if(Zt(a),r!==r+0)throw r;Kt(1,0)}},A:function(r,t,e,n,o,a){var i=Jt();try{return Zr(r)(t,e,n,o,a)}catch(r){if(Zt(i),r!==r+0)throw r;Kt(1,0)}},Tb:function(r,t,e,n,o,a,i){var s=Jt();try{return Zr(r)(t,e,n,o,a,i)}catch(r){if(Zt(s),r!==r+0)throw r;Kt(1,0)}},Wa:function(r,t,e,n,o,a,i,s,u){var c=Jt();try{return Zr(r)(t,e,n,o,a,i,s,u)}catch(r){if(Zt(c),r!==r+0)throw r;Kt(1,0)}},Ba:function(r,t,e,n,o,a,i,s,u,c){var l=Jt();try{return Zr(r)(t,e,n,o,a,i,s,u,c)}catch(r){if(Zt(l),r!==r+0)throw r;Kt(1,0)}},Sb:function(r,t,e,n,o,a,i,s,u,c,l){var h=Jt();try{return Zr(r)(t,e,n,o,a,i,s,u,c,l)}catch(r){if(Zt(h),r!==r+0)throw r;Kt(1,0)}},Xa:function(r,t,e,n,o,a,i,s,u,c,l,h,d){var f=Jt();try{return Zr(r)(t,e,n,o,a,i,s,u,c,l,h,d)}catch(r){if(Zt(f),r!==r+0)throw r;Kt(1,0)}},ma:function(r,t){var e=Jt();try{return Zr(r)(t)}catch(r){if(Zt(e),r!==r+0)throw r;Kt(1,0)}},Ua:function(r,t,e){var n=Jt();try{return Zr(r)(t,e)}catch(r){if(Zt(n),r!==r+0)throw r;Kt(1,0)}},ja:function(r,t,e){var n=Jt();try{return Zr(r)(t,e)}catch(r){if(Zt(n),r!==r+0)throw r;Kt(1,0)}},Na:function(r,t,e,n){var o=Jt();try{return Zr(r)(t,e,n)}catch(r){if(Zt(o),r!==r+0)throw r;Kt(1,0)}},Rb:function(r,t,e,n,o){var a=Jt();try{return Zr(r)(t,e,n,o)}catch(r){if(Zt(a),r!==r+0)throw r;Kt(1,0)}},Ob:function(r,t,e,n,o,a,i){var s=Jt();try{return Zr(r)(t,e,n,o,a,i)}catch(r){if(Zt(s),r!==r+0)throw r;Kt(1,0)}},u:function(r){var t=Jt();try{return Zr(r)()}catch(r){if(Zt(t),r!==r+0)throw r;Kt(1,0)}},b:function(r,t){var e=Jt();try{return Zr(r)(t)}catch(r){if(Zt(e),r!==r+0)throw r;Kt(1,0)}},L:function(r,t,e){var n=Jt();try{return Zr(r)(t,e)}catch(r){if(Zt(n),r!==r+0)throw r;Kt(1,0)}},Ca:function(r,t,e,n,o){var a=Jt();try{return Zr(r)(t,e,n,o)}catch(r){if(Zt(a),r!==r+0)throw r;Kt(1,0)}},sa:function(r,t,e,n,o,a){var i=Jt();try{return Zr(r)(t,e,n,o,a)}catch(r){if(Zt(i),r!==r+0)throw r;Kt(1,0)}},bb:function(r,t,e,n,o,a,i){var s=Jt();try{return Zr(r)(t,e,n,o,a,i)}catch(r){if(Zt(s),r!==r+0)throw r;Kt(1,0)}},da:function(r,t,e,n){var o=Jt();try{return Zr(r)(t,e,n)}catch(r){if(Zt(o),r!==r+0)throw r;Kt(1,0)}},fa:function(r,t,e){var n=Jt();try{return Zr(r)(t,e)}catch(r){if(Zt(n),r!==r+0)throw r;Kt(1,0)}},c:function(r,t,e){var n=Jt();try{return Zr(r)(t,e)}catch(r){if(Zt(n),r!==r+0)throw r;Kt(1,0)}},R:function(r,t,e,n){var o=Jt();try{return Zr(r)(t,e,n)}catch(r){if(Zt(o),r!==r+0)throw r;Kt(1,0)}},Fa:function(r,t,e,n,o,a){var i=Jt();try{return Zr(r)(t,e,n,o,a)}catch(r){if(Zt(i),r!==r+0)throw r;Kt(1,0)}},Ga:function(r,t,e,n,o,a,i,s,u,c,l){var h=Jt();try{return Zr(r)(t,e,n,o,a,i,s,u,c,l)}catch(r){if(Zt(h),r!==r+0)throw r;Kt(1,0)}},ba:function(r,t,e,n,o,a,i,s){var u=Jt();try{return Zr(r)(t,e,n,o,a,i,s)}catch(r){if(Zt(u),r!==r+0)throw r;Kt(1,0)}},ia:function(r,t,e,n,o,a,i,s,u,c){var l=Jt();try{return Zr(r)(t,e,n,o,a,i,s,u,c)}catch(r){if(Zt(l),r!==r+0)throw r;Kt(1,0)}},_a:function(r,t,e,n,o,a,i,s,u,c,l,h){var d=Jt();try{return Zr(r)(t,e,n,o,a,i,s,u,c,l,h)}catch(r){if(Zt(d),r!==r+0)throw r;Kt(1,0)}},W:function(r,t,e,n,o,a,i,s,u,c,l){var h=Jt();try{return Zr(r)(t,e,n,o,a,i,s,u,c,l)}catch(r){if(Zt(h),r!==r+0)throw r;Kt(1,0)}},d:function(r,t,e,n){var o=Jt();try{return Zr(r)(t,e,n)}catch(r){if(Zt(o),r!==r+0)throw r;Kt(1,0)}},ra:function(r,t,e,n,o){var a=Jt();try{return Zr(r)(t,e,n,o)}catch(r){if(Zt(a),r!==r+0)throw r;Kt(1,0)}},k:function(r,t,e,n,o){var a=Jt();try{return Zr(r)(t,e,n,o)}catch(r){if(Zt(a),r!==r+0)throw r;Kt(1,0)}},Oa:function(r,t,e,n,o,a){var i=Jt();try{return Zr(r)(t,e,n,o,a)}catch(r){if(Zt(i),r!==r+0)throw r;Kt(1,0)}},O:function(r,t,e,n,o,a,i,s,u){var c=Jt();try{return Zr(r)(t,e,n,o,a,i,s,u)}catch(r){if(Zt(c),r!==r+0)throw r;Kt(1,0)}},n:function(r,t,e,n,o,a){var i=Jt();try{return Zr(r)(t,e,n,o,a)}catch(r){if(Zt(i),r!==r+0)throw r;Kt(1,0)}},$a:function(r,t,e,n,o,a,i,s,u,c){var l=Jt();try{return Zr(r)(t,e,n,o,a,i,s,u,c)}catch(r){if(Zt(l),r!==r+0)throw r;Kt(1,0)}},l:function(r,t,e,n,o,a,i){var s=Jt();try{return Zr(r)(t,e,n,o,a,i)}catch(r){if(Zt(s),r!==r+0)throw r;Kt(1,0)}},ab:function(r,t,e,n,o,a,i,s,u,c,l){var h=Jt();try{return Zr(r)(t,e,n,o,a,i,s,u,c,l)}catch(r){if(Zt(h),r!==r+0)throw r;Kt(1,0)}},z:function(r,t,e,n,o,a,i,s){var u=Jt();try{return Zr(r)(t,e,n,o,a,i,s)}catch(r){if(Zt(u),r!==r+0)throw r;Kt(1,0)}},Q:function(r,t,e,n,o,a,i,s,u){var c=Jt();try{return Zr(r)(t,e,n,o,a,i,s,u)}catch(r){if(Zt(c),r!==r+0)throw r;Kt(1,0)}},F:function(r,t,e,n,o,a,i,s,u,c){var l=Jt();try{return Zr(r)(t,e,n,o,a,i,s,u,c)}catch(r){if(Zt(l),r!==r+0)throw r;Kt(1,0)}},ga:function(r,t,e,n,o,a,i,s,u,c,l){var h=Jt();try{return Zr(r)(t,e,n,o,a,i,s,u,c,l)}catch(r){if(Zt(h),r!==r+0)throw r;Kt(1,0)}},$:function(r,t,e,n,o,a,i,s,u,c,l,h){var d=Jt();try{return Zr(r)(t,e,n,o,a,i,s,u,c,l,h)}catch(r){if(Zt(d),r!==r+0)throw r;Kt(1,0)}},eb:function(r,t,e,n,o,a,i,s,u,c,l,h,d){var f=Jt();try{return Zr(r)(t,e,n,o,a,i,s,u,c,l,h,d)}catch(r){if(Zt(f),r!==r+0)throw r;Kt(1,0)}},Ia:function(r,t,e,n,o,a,i,s,u,c,l,h,d,f,p,m,v){var y=Jt();try{return Zr(r)(t,e,n,o,a,i,s,u,c,l,h,d,f,p,m,v)}catch(r){if(Zt(y),r!==r+0)throw r;Kt(1,0)}},qb:function(r,t,e,n,o,a,i,s,u){var c=Jt();try{return ue(r,t,e,n,o,a,i,s,u)}catch(r){if(Zt(c),r!==r+0)throw r;Kt(1,0)}},rb:function(r,t,e,n,o,a){var i=Jt();try{return se(r,t,e,n,o,a)}catch(r){if(Zt(i),r!==r+0)throw r;Kt(1,0)}},ub:function(r,t,e,n,o){var a=Jt();try{return ae(r,t,e,n,o)}catch(r){if(Zt(a),r!==r+0)throw r;Kt(1,0)}},wb:function(r,t){var e=Jt();try{return ne(r,t)}catch(r){if(Zt(e),r!==r+0)throw r;Kt(1,0)}},tb:function(r,t,e){var n=Jt();try{return ce(r,t,e)}catch(r){if(Zt(n),r!==r+0)throw r;Kt(1,0)}},lb:function(r,t,e,n,o){var a=Jt();try{return he(r,t,e,n,o)}catch(r){if(Zt(a),r!==r+0)throw r;Kt(1,0)}},pb:function(r,t,e,n,o,a,i,s,u){var c=Jt();try{return le(r,t,e,n,o,a,i,s,u)}catch(r){if(Zt(c),r!==r+0)throw r;Kt(1,0)}},j:function(r){var t=Jt();try{Zr(r)()}catch(r){if(Zt(t),r!==r+0)throw r;Kt(1,0)}},h:function(r,t){var e=Jt();try{Zr(r)(t)}catch(r){if(Zt(e),r!==r+0)throw r;Kt(1,0)}},x:function(r,t,e){var n=Jt();try{Zr(r)(t,e)}catch(r){if(Zt(n),r!==r+0)throw r;Kt(1,0)}},Ha:function(r,t,e,n){var o=Jt();try{Zr(r)(t,e,n)}catch(r){if(Zt(o),r!==r+0)throw r;Kt(1,0)}},ea:function(r,t,e,n,o){var a=Jt();try{Zr(r)(t,e,n,o)}catch(r){if(Zt(a),r!==r+0)throw r;Kt(1,0)}},ha:function(r,t,e,n){var o=Jt();try{Zr(r)(t,e,n)}catch(r){if(Zt(o),r!==r+0)throw r;Kt(1,0)}},Ea:function(r,t,e,n,o){var a=Jt();try{Zr(r)(t,e,n,o)}catch(r){if(Zt(a),r!==r+0)throw r;Kt(1,0)}},qa:function(r,t,e,n,o,a,i,s){var u=Jt();try{Zr(r)(t,e,n,o,a,i,s)}catch(r){if(Zt(u),r!==r+0)throw r;Kt(1,0)}},za:function(r,t,e){var n=Jt();try{Zr(r)(t,e)}catch(r){if(Zt(n),r!==r+0)throw r;Kt(1,0)}},Qb:function(r,t,e,n,o,a,i,s){var u=Jt();try{Zr(r)(t,e,n,o,a,i,s)}catch(r){if(Zt(u),r!==r+0)throw r;Kt(1,0)}},P:function(r,t,e,n,o){var a=Jt();try{Zr(r)(t,e,n,o)}catch(r){if(Zt(a),r!==r+0)throw r;Kt(1,0)}},Pb:function(r,t,e,n,o){var a=Jt();try{Zr(r)(t,e,n,o)}catch(r){if(Zt(a),r!==r+0)throw r;Kt(1,0)}},g:function(r,t,e){var n=Jt();try{Zr(r)(t,e)}catch(r){if(Zt(n),r!==r+0)throw r;Kt(1,0)}},s:function(r,t,e,n){var o=Jt();try{Zr(r)(t,e,n)}catch(r){if(Zt(o),r!==r+0)throw r;Kt(1,0)}},V:function(r,t,e,n,o){var a=Jt();try{Zr(r)(t,e,n,o)}catch(r){if(Zt(a),r!==r+0)throw r;Kt(1,0)}},ca:function(r,t,e,n,o,a){var i=Jt();try{Zr(r)(t,e,n,o,a)}catch(r){if(Zt(i),r!==r+0)throw r;Kt(1,0)}},Va:function(r,t,e,n){var o=Jt();try{Zr(r)(t,e,n)}catch(r){if(Zt(o),r!==r+0)throw r;Kt(1,0)}},Nb:function(r,t,e,n,o,a){var i=Jt();try{Zr(r)(t,e,n,o,a)}catch(r){if(Zt(i),r!==r+0)throw r;Kt(1,0)}},e:function(r,t,e,n){var o=Jt();try{Zr(r)(t,e,n)}catch(r){if(Zt(o),r!==r+0)throw r;Kt(1,0)}},H:function(r,t,e,n,o){var a=Jt();try{Zr(r)(t,e,n,o)}catch(r){if(Zt(a),r!==r+0)throw r;Kt(1,0)}},Da:function(r,t,e,n,o,a,i){var s=Jt();try{Zr(r)(t,e,n,o,a,i)}catch(r){if(Zt(s),r!==r+0)throw r;Kt(1,0)}},Z:function(r,t,e,n,o,a,i,s,u,c){var l=Jt();try{Zr(r)(t,e,n,o,a,i,s,u,c)}catch(r){if(Zt(l),r!==r+0)throw r;Kt(1,0)}},cb:function(r,t,e,n,o,a){var i=Jt();try{Zr(r)(t,e,n,o,a)}catch(r){if(Zt(i),r!==r+0)throw r;Kt(1,0)}},m:function(r,t,e,n,o){var a=Jt();try{Zr(r)(t,e,n,o)}catch(r){if(Zt(a),r!==r+0)throw r;Kt(1,0)}},Ya:function(r,t,e,n,o,a){var i=Jt();try{Zr(r)(t,e,n,o,a)}catch(r){if(Zt(i),r!==r+0)throw r;Kt(1,0)}},Vb:function(r,t,e,n,o,a,i){var s=Jt();try{Zr(r)(t,e,n,o,a,i)}catch(r){if(Zt(s),r!==r+0)throw r;Kt(1,0)}},db:function(r,t,e,n,o,a,i,s,u){var c=Jt();try{Zr(r)(t,e,n,o,a,i,s,u)}catch(r){if(Zt(c),r!==r+0)throw r;Kt(1,0)}},ya:function(r,t,e,n,o,a,i,s,u,c,l,h){var d=Jt();try{Zr(r)(t,e,n,o,a,i,s,u,c,l,h)}catch(r){if(Zt(d),r!==r+0)throw r;Kt(1,0)}},p:function(r,t,e,n,o,a){var i=Jt();try{Zr(r)(t,e,n,o,a)}catch(r){if(Zt(i),r!==r+0)throw r;Kt(1,0)}},U:function(r,t,e,n,o,a,i){var s=Jt();try{Zr(r)(t,e,n,o,a,i)}catch(r){if(Zt(s),r!==r+0)throw r;Kt(1,0)}},Za:function(r,t,e,n,o,a,i,s){var u=Jt();try{Zr(r)(t,e,n,o,a,i,s)}catch(r){if(Zt(u),r!==r+0)throw r;Kt(1,0)}},aa:function(r,t,e,n,o,a,i,s){var u=Jt();try{Zr(r)(t,e,n,o,a,i,s)}catch(r){if(Zt(u),r!==r+0)throw r;Kt(1,0)}},v:function(r,t,e,n,o,a,i){var s=Jt();try{Zr(r)(t,e,n,o,a,i)}catch(r){if(Zt(s),r!==r+0)throw r;Kt(1,0)}},B:function(r,t,e,n,o,a,i,s){var u=Jt();try{Zr(r)(t,e,n,o,a,i,s)}catch(r){if(Zt(u),r!==r+0)throw r;Kt(1,0)}},G:function(r,t,e,n,o,a,i,s,u){var c=Jt();try{Zr(r)(t,e,n,o,a,i,s,u)}catch(r){if(Zt(c),r!==r+0)throw r;Kt(1,0)}},I:function(r,t,e,n,o,a,i,s,u,c){var l=Jt();try{Zr(r)(t,e,n,o,a,i,s,u,c)}catch(r){if(Zt(l),r!==r+0)throw r;Kt(1,0)}},N:function(r,t,e,n,o,a,i,s,u,c,l){var h=Jt();try{Zr(r)(t,e,n,o,a,i,s,u,c,l)}catch(r){if(Zt(h),r!==r+0)throw r;Kt(1,0)}},pa:function(r,t,e,n,o,a,i,s,u,c,l,h){var d=Jt();try{Zr(r)(t,e,n,o,a,i,s,u,c,l,h)}catch(r){if(Zt(d),r!==r+0)throw r;Kt(1,0)}},ua:function(r,t,e,n,o,a,i,s,u,c,l,h,d){var f=Jt();try{Zr(r)(t,e,n,o,a,i,s,u,c,l,h,d)}catch(r){if(Zt(f),r!==r+0)throw r;Kt(1,0)}},va:function(r,t,e,n,o,a,i,s,u,c,l,h,d,f,p){var m=Jt();try{Zr(r)(t,e,n,o,a,i,s,u,c,l,h,d,f,p)}catch(r){if(Zt(m),r!==r+0)throw r;Kt(1,0)}},S:function(r,t,e,n,o,a,i,s,u,c,l,h,d,f,p,m){var v=Jt();try{Zr(r)(t,e,n,o,a,i,s,u,c,l,h,d,f,p,m)}catch(r){if(Zt(v),r!==r+0)throw r;Kt(1,0)}},La:function(r,t,e,n,o,a,i,s,u,c,l,h,d,f,p,m,v,y){var w=Jt();try{Zr(r)(t,e,n,o,a,i,s,u,c,l,h,d,f,p,m,v,y)}catch(r){if(Zt(w),r!==r+0)throw r;Kt(1,0)}},vb:function(r,t,e,n,o,a,i){var s=Jt();try{oe(r,t,e,n,o,a,i)}catch(r){if(Zt(s),r!==r+0)throw r;Kt(1,0)}},sb:function(r,t,e,n,o){var a=Jt();try{ie(r,t,e,n,o)}catch(r){if(Zt(a),r!==r+0)throw r;Kt(1,0)}},t:r=>r,Ub:Ht,M:(r,t,e,n,o)=>Ht(r,t,e,n)},It=function(){var r,t,e,a,i={a:Bt};function s(r,t){var e,n;return It=r.exports,e=It.Wb.buffer,o.HEAP8=g=new Int8Array(e),o.HEAP16=E=new Int16Array(e),o.HEAPU8=b=new Uint8Array(e),o.HEAPU16=_=new Uint16Array(e),o.HEAP32=k=new Int32Array(e),o.HEAPU32=$=new Uint32Array(e),o.HEAPF32=P=new Float32Array(e),o.HEAPF64=C=new Float64Array(e),Xr=It.Zb,n=It.Xb,F.unshift(n),R(),It}if(O(),o.instantiateWasm)try{return o.instantiateWasm(i,s)}catch(r){w(`Module.instantiateWasm callback failed with error: ${r}`),n(r)}return(r=v,t=z,e=i,a=function(r){s(r.instance)},r||"function"!=typeof WebAssembly.instantiateStreaming||L(t)||U(t)||d||"function"!=typeof fetch?I(t,e,a):fetch(t,{credentials:"same-origin"}).then((r=>WebAssembly.instantiateStreaming(r,e).then(a,(function(r){return w(`wasm streaming compile failed: ${r}`),w("falling back to ArrayBuffer instantiation"),I(t,e,a)}))))).catch(n),{}}(),Vt=r=>(Vt=It.Yb)(r),Yt=r=>(Yt=It._b)(r),qt=()=>(qt=It.$b)(),Xt=r=>(Xt=It.ac)(r),Gt=r=>(Gt=It.bc)(r),Kt=(r,t)=>(Kt=It.cc)(r,t),Jt=()=>(Jt=It.dc)(),Zt=r=>(Zt=It.ec)(r),Qt=r=>(Qt=It.fc)(r),re=r=>(re=It.gc)(r),te=(r,t,e)=>(te=It.hc)(r,t,e),ee=r=>(ee=It.ic)(r),ne=o.dynCall_ji=(r,t)=>(ne=o.dynCall_ji=It.jc)(r,t),oe=o.dynCall_viijii=(r,t,e,n,a,i,s)=>(oe=o.dynCall_viijii=It.kc)(r,t,e,n,a,i,s),ae=o.dynCall_iiji=(r,t,e,n,a)=>(ae=o.dynCall_iiji=It.lc)(r,t,e,n,a),ie=o.dynCall_viji=(r,t,e,n,a)=>(ie=o.dynCall_viji=It.mc)(r,t,e,n,a),se=o.dynCall_iiiij=(r,t,e,n,a,i)=>(se=o.dynCall_iiiij=It.nc)(r,t,e,n,a,i),ue=o.dynCall_iiiiiiij=(r,t,e,n,a,i,s,u,c)=>(ue=o.dynCall_iiiiiiij=It.oc)(r,t,e,n,a,i,s,u,c),ce=o.dynCall_jii=(r,t,e)=>(ce=o.dynCall_jii=It.pc)(r,t,e),le=o.dynCall_jiiiiiij=(r,t,e,n,a,i,s,u,c)=>(le=o.dynCall_jiiiiiij=It.qc)(r,t,e,n,a,i,s,u,c),he=(o.dynCall_jiji=(r,t,e,n,a)=>(o.dynCall_jiji=It.rc)(r,t,e,n,a),o.dynCall_jiiii=(r,t,e,n,a)=>(he=o.dynCall_jiiii=It.sc)(r,t,e,n,a));function de(){function r(){Ut||(Ut=!0,o.calledRun=!0,T||(o.noFSInit||pr.init.initialized||pr.init(),pr.ignorePermissions=!1,cr.init(),V(F),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)r=o.postRun.shift(),S.unshift(r);var r;V(S)}()))}A>0||(function(){if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)r=o.preRun.shift(),D.unshift(r);var r;V(D)}(),A>0||(o.setStatus?(o.setStatus("Running..."),setTimeout((function(){setTimeout((function(){o.setStatus("")}),1),r()}),1)):r()))}if(o.dynCall_iiiiij=(r,t,e,n,a,i,s)=>(o.dynCall_iiiiij=It.tc)(r,t,e,n,a,i,s),o.dynCall_iiiiijj=(r,t,e,n,a,i,s,u,c)=>(o.dynCall_iiiiijj=It.uc)(r,t,e,n,a,i,s,u,c),o.dynCall_iiiiiijj=(r,t,e,n,a,i,s,u,c,l)=>(o.dynCall_iiiiiijj=It.vc)(r,t,e,n,a,i,s,u,c,l),M=function r(){Ut||de(),Ut||(M=r)},o.preInit)for("function"==typeof o.preInit&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return de(),t.ready}})();"object"==typeof exports&&"object"==typeof module?module.exports=initRDKitModule:"function"==typeof define&&define.amd&&define([],(()=>initRDKitModule)); \ No newline at end of file diff --git a/webapp/public/baby-gru/wasm/RDKit_minimal.wasm b/webapp/public/baby-gru/wasm/RDKit_minimal.wasm new file mode 100644 index 000000000..68606f4c9 Binary files /dev/null and b/webapp/public/baby-gru/wasm/RDKit_minimal.wasm differ diff --git a/webserver/public/baby-gru/wasm/cif_pdb_worker.js b/webapp/public/baby-gru/wasm/cif_pdb_worker.js similarity index 100% rename from webserver/public/baby-gru/wasm/cif_pdb_worker.js rename to webapp/public/baby-gru/wasm/cif_pdb_worker.js diff --git a/webserver/public/baby-gru/wasm/coot_env_web.js b/webapp/public/baby-gru/wasm/coot_env_web.js similarity index 100% rename from webserver/public/baby-gru/wasm/coot_env_web.js rename to webapp/public/baby-gru/wasm/coot_env_web.js diff --git a/webserver/public/baby-gru/wasm/crystallography_worker.js b/webapp/public/baby-gru/wasm/crystallography_worker.js similarity index 100% rename from webserver/public/baby-gru/wasm/crystallography_worker.js rename to webapp/public/baby-gru/wasm/crystallography_worker.js diff --git a/webserver/public/baby-gru/wasm/mini_rsr_worker.js b/webapp/public/baby-gru/wasm/mini_rsr_worker.js similarity index 100% rename from webserver/public/baby-gru/wasm/mini_rsr_worker.js rename to webapp/public/baby-gru/wasm/mini_rsr_worker.js diff --git a/webserver/public/baby-gru/wasm/monid_to_pdb_worker.js b/webapp/public/baby-gru/wasm/monid_to_pdb_worker.js similarity index 100% rename from webserver/public/baby-gru/wasm/monid_to_pdb_worker.js rename to webapp/public/baby-gru/wasm/monid_to_pdb_worker.js diff --git a/webserver/public/baby-gru/wasm/moorhen.data b/webapp/public/baby-gru/wasm/moorhen.data similarity index 100% rename from webserver/public/baby-gru/wasm/moorhen.data rename to webapp/public/baby-gru/wasm/moorhen.data diff --git a/webapp/public/baby-gru/wasm/moorhen.js b/webapp/public/baby-gru/wasm/moorhen.js new file mode 100644 index 000000000..11e9d6a04 --- /dev/null +++ b/webapp/public/baby-gru/wasm/moorhen.js @@ -0,0 +1 @@ +var createRSRModule=(()=>{var e="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0;return"undefined"!=typeof __filename&&(e=e||__filename),function(t={}){function r(){return x.buffer!=U.buffer&&X(),U}function n(){return x.buffer!=U.buffer&&X(),B}function i(){return x.buffer!=U.buffer&&X(),z}function o(){return x.buffer!=U.buffer&&X(),H}function a(){return x.buffer!=U.buffer&&X(),G}function s(){return x.buffer!=U.buffer&&X(),Y}function c(){return x.buffer!=U.buffer&&X(),K}var d,l,f=t;f.ready=new Promise(((e,t)=>{d=e,l=t})),["_main","__emscripten_thread_init","__emscripten_thread_exit","__emscripten_thread_crashed","__emscripten_thread_mailbox_await","__emscripten_tls_init","_pthread_self","checkMailbox","establishStackSpace","invokeEntryPoint","PThread","getExceptionMessage","___get_exception_message","_free","___indirect_function_table","_fflush","__ZN5boost13serialization16singleton_module8get_lockEv","__ZNK5boost7archive6detail11oserializerINS0_13text_oarchiveEN5RDKit9MolBundleEE16save_object_dataERNS1_14basic_oarchiveEPKv","__ZNK5boost7archive6detail11oserializerINS0_13text_oarchiveENSt3__26vectorINS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEENS9_ISB_EEEEE16save_object_dataERNS1_14basic_oarchiveEPKv","__ZNK5boost7archive6detail11iserializerINS0_13text_iarchiveEN5RDKit9MolBundleEE16load_object_dataERNS1_14basic_iarchiveEPvj","__ZNK5boost7archive6detail11iserializerINS0_13text_iarchiveENSt3__26vectorINS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEENS9_ISB_EEEEE16load_object_dataERNS1_14basic_iarchiveEPvj","__embind_initialize_bindings","__emscripten_check_mailbox","___set_stack_limits","onRuntimeInitialized"].forEach((e=>{Object.getOwnPropertyDescriptor(f.ready,e)||Object.defineProperty(f.ready,e,{get:()=>_e("You are getting "+e+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js"),set:()=>_e("You are setting "+e+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")})})),f.expectedDataFileDownloads||(f.expectedDataFileDownloads=0),f.expectedDataFileDownloads++,f.ENVIRONMENT_IS_PTHREAD||f.$ww||function(e){"object"==typeof window?window.encodeURIComponent(window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/"):"undefined"==typeof process&&"undefined"!=typeof location&&encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/");var t="moorhen.data";"function"!=typeof f.locateFilePackage||f.locateFile||(f.locateFile=f.locateFilePackage,$("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)"));var r=f.locateFile?f.locateFile(t,""):t,n=e.remote_package_size,i=null,o=f.getPreloadedPackage?f.getPreloadedPackage(r,n):null;function a(){function t(e,t){if(!e)throw t+(new Error).stack}function r(e,t,r){this.start=e,this.end=t,this.audio=r}f.FS_createPath("/","data",!0,!0),f.FS_createPath("/data","RDKit",!0,!0),f.FS_createPath("/data/RDKit","Data",!0,!0),f.FS_createPath("/data","ccp4_lib",!0,!0),f.FS_createPath("/data/ccp4_lib","data",!0,!0),f.FS_createPath("/data/ccp4_lib/data","monomers",!0,!0),f.FS_createPath("/data/ccp4_lib/data/monomers","a",!0,!0),f.FS_createPath("/data/ccp4_lib/data/monomers","c",!0,!0),f.FS_createPath("/data/ccp4_lib/data/monomers","d",!0,!0),f.FS_createPath("/data/ccp4_lib/data/monomers","e",!0,!0),f.FS_createPath("/data/ccp4_lib/data/monomers","g",!0,!0),f.FS_createPath("/data/ccp4_lib/data/monomers","h",!0,!0),f.FS_createPath("/data/ccp4_lib/data/monomers","i",!0,!0),f.FS_createPath("/data/ccp4_lib/data/monomers","l",!0,!0),f.FS_createPath("/data/ccp4_lib/data/monomers","list",!0,!0),f.FS_createPath("/data/ccp4_lib/data/monomers","m",!0,!0),f.FS_createPath("/data/ccp4_lib/data/monomers","n",!0,!0),f.FS_createPath("/data/ccp4_lib/data/monomers","p",!0,!0),f.FS_createPath("/data/ccp4_lib/data/monomers","s",!0,!0),f.FS_createPath("/data/ccp4_lib/data/monomers","t",!0,!0),f.FS_createPath("/data/ccp4_lib/data/monomers","u",!0,!0),f.FS_createPath("/data/ccp4_lib/data/monomers","v",!0,!0),f.FS_createPath("/data","coot",!0,!0),f.FS_createPath("/data/coot","data",!0,!0),f.FS_createPath("/data/coot/data","metal",!0,!0),f.FS_createPath("/data/coot","rama-data",!0,!0),r.prototype={requests:{},open:function(e,t){this.name=t,this.requests[t]=this,f.addRunDependency(`fp ${this.name}`)},send:function(){},onload:function(){var e=this.byteArray.subarray(this.start,this.end);this.finish(e)},finish:function(e){f.FS_createDataFile(this.name,null,e,!0,!0,!0),f.removeRunDependency(`fp ${this.name}`),this.requests[this.name]=null}};for(var n=e.files,a=0;a{throw t},_="object"==typeof window,y="function"==typeof importScripts,g="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,w=!_&&!g&&!y;if(f.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)");var E,b,k,S=f.ENVIRONMENT_IS_PTHREAD||!1,T="";function P(e){return f.locateFile?f.locateFile(e,T):T+e}if(g){if("undefined"==typeof process||!process.release||"node"!==process.release.name)throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");var F=process.versions.node,C=F.split(".").slice(0,3);if((C=1e4*C[0]+100*C[1]+1*C[2].split("-")[0])<16e4)throw new Error("This emscripten-generated code requires node v16.0.0 (detected v"+F+")");var A=require("fs"),N=require("path");let e;T=y?N.dirname(T)+"/":__dirname+"/",E=(e,t)=>(e=be(e)?new URL(e):N.normalize(e),A.readFileSync(e,t?void 0:"utf8")),k=e=>{var t=E(e,!0);return t.buffer||(t=new Uint8Array(t)),Z(t.buffer),t},b=(e,t,r,n=!0)=>{e=be(e)?new URL(e):N.normalize(e),A.readFile(e,n?void 0:"utf8",((e,i)=>{e?r(e):t(n?i.buffer:i)}))},!f.thisProgram&&process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),m=process.argv.slice(2),v=(e,t)=>{throw process.exitCode=e,t},f.inspect=()=>"[Emscripten Module object]";try{e=require("worker_threads")}catch(e){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),e}global.Worker=e.Worker}else if(w){if("object"==typeof process&&"function"==typeof require||"object"==typeof window||"function"==typeof importScripts)throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");"undefined"!=typeof read&&(E=read),k=e=>{if("function"==typeof readbuffer)return new Uint8Array(readbuffer(e));let t=read(e,"binary");return Z("object"==typeof t),t},b=(e,t,r)=>{setTimeout((()=>t(k(e))))},"undefined"==typeof clearTimeout&&(globalThis.clearTimeout=e=>{}),"undefined"==typeof setTimeout&&(globalThis.setTimeout=e=>"function"==typeof e?e():_e()),"undefined"!=typeof scriptArgs?m=scriptArgs:void 0!==arguments&&(m=arguments),"function"==typeof quit&&(v=(e,t)=>{throw setTimeout((()=>{if(!(t instanceof je)){let e=t;t&&"object"==typeof t&&t.stack&&(e=[t,t.stack]),$(`exiting due to exception: ${e}`)}quit(e)})),t}),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)}else{if(!_&&!y)throw new Error("environment detection error");if(y?T=self.location.href:"undefined"!=typeof document&&document.currentScript&&(T=document.currentScript.src),e&&(T=e),T=0!==T.indexOf("blob:")?T.substr(0,T.replace(/[?#].*/,"").lastIndexOf("/")+1):"","object"!=typeof window&&"function"!=typeof importScripts)throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");g||(E=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},y&&(k=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),b=(e,t,r)=>{var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=()=>{200==n.status||0==n.status&&n.response?t(n.response):r()},n.onerror=r,n.send(null)})}g&&"undefined"==typeof performance&&(global.performance=require("perf_hooks").performance);var D=console.log.bind(console),O=console.error.bind(console);g&&(D=(...e)=>A.writeSync(1,e.join(" ")+"\n"),O=(...e)=>A.writeSync(2,e.join(" ")+"\n"));var M,I,R=f.print||D,$=f.printErr||O;Object.assign(f,h),h=null,M="fetchSettings",Object.getOwnPropertyDescriptor(f,M)&&_e(`\`Module.${M}\` was supplied but \`${M}\` not included in INCOMING_MODULE_JS_API`),f.arguments&&(m=f.arguments),Ae("arguments","arguments_"),f.thisProgram&&(p=f.thisProgram),Ae("thisProgram","thisProgram"),f.quit&&(v=f.quit),Ae("quit","quit_"),Z(void 0===f.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),Z(void 0===f.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),Z(void 0===f.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),Z(void 0===f.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),Z(void 0===f.read,"Module.read option was removed (modify read_ in JS)"),Z(void 0===f.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),Z(void 0===f.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),Z(void 0===f.setWindowTitle,"Module.setWindowTitle option was removed (modify emscripten_set_window_title in JS)"),Z(void 0===f.TOTAL_MEMORY,"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),Ae("asm","wasmExports"),Ae("read","read_"),Ae("readAsync","readAsync"),Ae("readBinary","readBinary"),Ae("setWindowTitle","setWindowTitle"),Z(_||y||g,"Pthreads do not work in this environment yet (need Web Workers, or an alternative to them)"),Z(!w,"shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable."),f.wasmBinary&&(I=f.wasmBinary),Ae("wasmBinary","wasmBinary");var x,L,j=f.noExitRuntime||!0;Ae("noExitRuntime","noExitRuntime"),"object"!=typeof WebAssembly&&_e("no native wasm support detected");var W,U,B,z,H,G,Y,V,K,q=!1;function Z(e,t){e||_e("Assertion failed"+(t?": "+t:""))}function X(){var e=x.buffer;f.HEAP8=U=new Int8Array(e),f.HEAP16=z=new Int16Array(e),f.HEAPU8=B=new Uint8Array(e),f.HEAPU16=H=new Uint16Array(e),f.HEAP32=G=new Int32Array(e),f.HEAPU32=Y=new Uint32Array(e),f.HEAPF32=V=new Float32Array(e),f.HEAPF64=K=new Float64Array(e)}Z(!f.STACK_SIZE,"STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time"),Z("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&null!=Int32Array.prototype.subarray&&null!=Int32Array.prototype.set,"JS engine does not provide full typed array support");var J=f.INITIAL_MEMORY||16777216;if(Ae("INITIAL_MEMORY","INITIAL_MEMORY"),Z(J>=5242880,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+J+"! (STACK_SIZE=5242880)"),S)x=f.wasmMemory;else if(f.wasmMemory)x=f.wasmMemory;else if(!((x=new WebAssembly.Memory({initial:J/65536,maximum:32768,shared:!0})).buffer instanceof SharedArrayBuffer))throw $("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),g&&$("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");function Q(){var e=Gn();Z(0==(3&e)),0==e&&(e+=4),s()[e>>2]=34821223,$e(34821223),s()[e+4>>2]=2310721022,$e(2310721022),s()[0]=1668509029,$e(1668509029)}function ee(){if(!q){var e=Gn();0==e&&(e+=4);var t=s()[e>>2],r=s()[e+4>>2];34821223==t&&2310721022==r||_e(`Stack overflow! Stack cookie has been overwritten at ${_t(e)}, expected hex dwords 0x89BACDFE and 0x2135467, but received ${_t(r)} ${_t(t)}`),1668509029!=s()[0]&&_e("Runtime error: The application has corrupted its heap memory area (address zero)!")}}X(),Z((J=x.buffer.byteLength)%65536==0),function(){var e=new Int16Array(1),t=new Int8Array(e.buffer);if(e[0]=25459,115!==t[0]||99!==t[1])throw"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)"}();var te=[],re=[],ne=[],ie=[],oe=!1,ae=0;function se(){return j||ae>0}function ce(){Z(!oe),oe=!0,S||(ee(),Pt(),f.noFSInit||ut.init.initialized||ut.init(),ut.ignorePermissions=!1,Je.init(),wt(re))}function de(e){te.unshift(e)}Z(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),Z(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),Z(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),Z(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var le=0,fe=null,ue=null,he={};function me(e){for(var t=e;;){if(!he[e])return e;e=t+Math.random()}}function pe(e){le++,f.monitorRunDependencies&&f.monitorRunDependencies(le),e?(Z(!he[e]),he[e]=1,null===fe&&"undefined"!=typeof setInterval&&(fe=setInterval((()=>{if(q)return clearInterval(fe),void(fe=null);var e=!1;for(var t in he)e||(e=!0,$("still waiting on run dependencies:")),$(`dependency: ${t}`);e&&$("(end of list)")}),1e4))):$("warning: run dependency added without ID")}function ve(e){if(le--,f.monitorRunDependencies&&f.monitorRunDependencies(le),e?(Z(he[e]),delete he[e]):$("warning: run dependency removed without ID"),0==le&&(null!==fe&&(clearInterval(fe),fe=null),ue)){var t=ue;ue=null,t()}}function _e(e){f.onAbort&&f.onAbort(e),$(e="Aborted("+e+")"),q=!0,W=1;var t=new WebAssembly.RuntimeError(e);throw l(t),t}var ye,ge,we;function Ee(e){return e.startsWith("data:application/octet-stream;base64,")}function be(e){return e.startsWith("file://")}function ke(e){return function(){Z(oe,`native function \`${e}\` called before runtime initialization`);var t=Mn[e];return Z(t,`exported native function \`${e}\` not found`),t.apply(null,arguments)}}class Se extends Error{}class Te extends Se{}class Pe extends Se{constructor(e){super(e),this.excPtr=e;const t=bt(e);this.name=t[0],this.message=t[1]}}function Fe(e){if(e==ye&&I)return new Uint8Array(I);if(k)return k(e);throw"both async and sync fetching of the wasm failed"}function Ce(e,t,r){return function(e){if(!I&&(_||y)){if("function"==typeof fetch&&!be(e))return fetch(e,{credentials:"same-origin"}).then((t=>{if(!t.ok)throw"failed to load wasm binary file at '"+e+"'";return t.arrayBuffer()})).catch((()=>Fe(e)));if(b)return new Promise(((t,r)=>{b(e,(e=>t(new Uint8Array(e))),r)}))}return Promise.resolve().then((()=>Fe(e)))}(e).then((e=>WebAssembly.instantiate(e,t))).then((e=>e)).then(r,(e=>{$(`failed to asynchronously prepare wasm: ${e}`),be(ye)&&$(`warning: Loading from a file URI (${ye}) is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing`),_e(e)}))}function Ae(e,t,r=!0){Object.getOwnPropertyDescriptor(f,e)||Object.defineProperty(f,e,{configurable:!0,get(){_e(`\`Module.${e}\` has been replaced by \`${t}\``+(r?" (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)":""))}})}function Ne(e){return"FS_createPath"===e||"FS_createDataFile"===e||"FS_createPreloadedFile"===e||"FS_unlink"===e||"addRunDependency"===e||"FS_createLazyFile"===e||"FS_createDevice"===e||"removeRunDependency"===e}function De(e,t){"undefined"!=typeof globalThis&&Object.defineProperty(globalThis,e,{configurable:!0,get(){Ft("`"+e+"` is not longer defined by emscripten. "+t)}})}function Oe(e){Object.getOwnPropertyDescriptor(f,e)||Object.defineProperty(f,e,{configurable:!0,get(){var t="'"+e+"' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the Emscripten FAQ)";Ne(e)&&(t+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"),_e(t)}})}function Me(e,t,r,n){Z(Number.isInteger(Number(e)),"attempt to write non-integer ("+e+") into integer heap"),Z(e<=n,"value ("+e+") too large to write as "+t+"-bit value"),Z(e>=r,"value ("+e+") too small to write as "+t+"-bit value")}Ee(ye="moorhen.wasm")||(ye=P(ye)),De("buffer","Please use HEAP8.buffer or wasmMemory.buffer"),De("asm","Please use wasmExports instead");var Ie=e=>Me(e,8,-127,255),Re=e=>Me(e,16,-32767,65535),$e=e=>Me(e,32,-2147483647,4294967295),xe=e=>Me(e,64,-0x8000000000000000,0x10000000000000000);function Le(e){g?A.writeSync(2,Array.from(arguments).join(" ")+"\n"):console.warn.apply(console,arguments)}function je(e){this.name="ExitStatus",this.message=`Program terminated with exit(${e})`,this.status=e}var We=e=>{e.terminate(),e.onmessage=t=>{var r=t.data.cmd;$(`received "${r}" command from terminated worker: ${e.workerID}`)}},Ue=e=>{Z(!S,"Internal Error! cleanupThread() can only ever be called from main application thread!"),Z(e,"Internal Error! Null pthread_ptr in cleanupThread!");var t=gt.pthreads[e];Z(t),gt.returnWorkerToPool(t)},Be=e=>{Z(!S,"Internal Error! spawnThread() can only ever be called from main application thread!"),Z(e.pthread_ptr,"Internal error, no pthread ptr!");var t=gt.getNewWorker();if(!t)return 6;Z(!t.pthread_ptr,"Internal error!"),gt.runningWorkers.push(t),gt.pthreads[e.pthread_ptr]=t,t.pthread_ptr=e.pthread_ptr;var r={cmd:"run",start_routine:e.startRoutine,arg:e.arg,pthread_ptr:e.pthread_ptr};return g&&t.unref(),t.postMessage(r,e.transferList),0},ze={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var r=0,n=e.length-1;n>=0;n--){var i=e[n];"."===i?e.splice(n,1):".."===i?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize:e=>{var t=ze.isAbs(e),r="/"===e.substr(-1);return(e=ze.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:e=>{var t=ze.splitPath(e),r=t[0],n=t[1];return r||n?(n&&(n=n.substr(0,n.length-1)),r+n):"."},basename:e=>{if("/"===e)return"/";var t=(e=(e=ze.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},join:function(){var e=Array.prototype.slice.call(arguments);return ze.normalize(e.join("/"))},join2:(e,t)=>ze.normalize(e+"/"+t)},He=e=>(He=(()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return e=>(e.set(crypto.getRandomValues(new Uint8Array(e.byteLength))),e);if(g)try{var e=require("crypto");if(e.randomFillSync)return t=>e.randomFillSync(t);var t=e.randomBytes;return e=>(e.set(t(e.byteLength)),e)}catch(e){}_e("no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: (array) => { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };")})())(e),Ge={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:ut.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,t=ze.isAbs(n)}return(t?"/":"")+(e=ze.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"))||"."},relative:(e,t)=>{function r(e){for(var t=0;t=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=Ge.resolve(e).substr(1),t=Ge.resolve(t).substr(1);for(var n=r(e.split("/")),i=r(t.split("/")),o=Math.min(n.length,i.length),a=o,s=0;s{for(var n=t+r,i=t;e[i]&&!(i>=n);)++i;if(i-t>16&&e.buffer&&Ye)return Ye.decode(e.buffer instanceof SharedArrayBuffer?e.slice(t,i):e.subarray(t,i));for(var o="";t>10,56320|1023&d)}}else o+=String.fromCharCode((31&a)<<6|s)}else o+=String.fromCharCode(a)}return o},Ke=[],qe=e=>{for(var t=0,r=0;r=55296&&n<=57343?(t+=4,++r):t+=3}return t},Ze=(e,t,r,n)=>{if(Z("string"==typeof e),!(n>0))return 0;for(var i=r,o=r+n-1,a=0;a=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&e.charCodeAt(++a)),s<=127){if(r>=o)break;t[r++]=s}else if(s<=2047){if(r+1>=o)break;t[r++]=192|s>>6,t[r++]=128|63&s}else if(s<=65535){if(r+2>=o)break;t[r++]=224|s>>12,t[r++]=128|s>>6&63,t[r++]=128|63&s}else{if(r+3>=o)break;s>1114111&&Ft("Invalid Unicode code point "+_t(s)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF)."),t[r++]=240|s>>18,t[r++]=128|s>>12&63,t[r++]=128|s>>6&63,t[r++]=128|63&s}}return t[r]=0,r-i};function Xe(e,t,r){var n=r>0?r:qe(e)+1,i=new Array(n),o=Ze(e,i,0,i.length);return t&&(i.length=o),i}var Je={ttys:[],init(){},shutdown(){},register(e,t){Je.ttys[e]={input:[],output:[],ops:t},ut.registerDevice(e,Je.stream_ops)},stream_ops:{open(e){var t=Je.ttys[e.node.rdev];if(!t)throw new ut.ErrnoError(43);e.tty=t,e.seekable=!1},close(e){e.tty.ops.fsync(e.tty)},fsync(e){e.tty.ops.fsync(e.tty)},read(e,t,r,n,i){if(!e.tty||!e.tty.ops.get_char)throw new ut.ErrnoError(60);for(var o=0,a=0;a(()=>{if(!Ke.length){var e=null;if(g){var t=Buffer.alloc(256),r=0,n=process.stdin.fd;try{r=A.readSync(n,t)}catch(e){if(!e.toString().includes("EOF"))throw e;r=0}e=r>0?t.slice(0,r).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(e=window.prompt("Input: "))&&(e+="\n"):"function"==typeof readline&&null!==(e=readline())&&(e+="\n");if(!e)return null;Ke=Xe(e,!0)}return Ke.shift()})(),put_char(e,t){null===t||10===t?(R(Ve(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync(e){e.output&&e.output.length>0&&(R(Ve(e.output,0)),e.output=[])},ioctl_tcgets:e=>({c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}),ioctl_tcsets:(e,t,r)=>0,ioctl_tiocgwinsz:e=>[24,80]},default_tty1_ops:{put_char(e,t){null===t||10===t?($(Ve(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync(e){e.output&&e.output.length>0&&($(Ve(e.output,0)),e.output=[])}}},Qe=e=>{e=((e,t)=>(Z(t,"alignment argument is required"),Math.ceil(e/t)*t))(e,65536);var t=Un(65536,e);return t?((e,t)=>(n().fill(0,e,e+t),e))(t,e):0},et={ops_table:null,mount:e=>et.createNode(null,"/",16895,0),createNode(e,t,r,n){if(ut.isBlkdev(r)||ut.isFIFO(r))throw new ut.ErrnoError(63);et.ops_table||(et.ops_table={dir:{node:{getattr:et.node_ops.getattr,setattr:et.node_ops.setattr,lookup:et.node_ops.lookup,mknod:et.node_ops.mknod,rename:et.node_ops.rename,unlink:et.node_ops.unlink,rmdir:et.node_ops.rmdir,readdir:et.node_ops.readdir,symlink:et.node_ops.symlink},stream:{llseek:et.stream_ops.llseek}},file:{node:{getattr:et.node_ops.getattr,setattr:et.node_ops.setattr},stream:{llseek:et.stream_ops.llseek,read:et.stream_ops.read,write:et.stream_ops.write,allocate:et.stream_ops.allocate,mmap:et.stream_ops.mmap,msync:et.stream_ops.msync}},link:{node:{getattr:et.node_ops.getattr,setattr:et.node_ops.setattr,readlink:et.node_ops.readlink},stream:{}},chrdev:{node:{getattr:et.node_ops.getattr,setattr:et.node_ops.setattr},stream:ut.chrdev_stream_ops}});var i=ut.createNode(e,t,r,n);return ut.isDir(i.mode)?(i.node_ops=et.ops_table.dir.node,i.stream_ops=et.ops_table.dir.stream,i.contents={}):ut.isFile(i.mode)?(i.node_ops=et.ops_table.file.node,i.stream_ops=et.ops_table.file.stream,i.usedBytes=0,i.contents=null):ut.isLink(i.mode)?(i.node_ops=et.ops_table.link.node,i.stream_ops=et.ops_table.link.stream):ut.isChrdev(i.mode)&&(i.node_ops=et.ops_table.chrdev.node,i.stream_ops=et.ops_table.chrdev.stream),i.timestamp=Date.now(),e&&(e.contents[t]=i,e.timestamp=i.timestamp),i},getFileDataAsTypedArray:e=>e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0),expandFileStorage(e,t){var r=e.contents?e.contents.length:0;if(!(r>=t)){t=Math.max(t,r*(r<1048576?2:1.125)>>>0),0!=r&&(t=Math.max(t,256));var n=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0)}},resizeFileStorage(e,t){if(e.usedBytes!=t)if(0==t)e.contents=null,e.usedBytes=0;else{var r=e.contents;e.contents=new Uint8Array(t),r&&e.contents.set(r.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr(e){var t={};return t.dev=ut.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,ut.isDir(e.mode)?t.size=4096:ut.isFile(e.mode)?t.size=e.usedBytes:ut.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr(e,t){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp),void 0!==t.size&&et.resizeFileStorage(e,t.size)},lookup(e,t){throw ut.genericErrors[44]},mknod:(e,t,r,n)=>et.createNode(e,t,r,n),rename(e,t,r){if(ut.isDir(e.mode)){var n;try{n=ut.lookupNode(t,r)}catch(e){}if(n)for(var i in n.contents)throw new ut.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=r,t.contents[r]=e,t.timestamp=e.parent.timestamp,e.parent=t},unlink(e,t){delete e.contents[t],e.timestamp=Date.now()},rmdir(e,t){var r=ut.lookupNode(e,t);for(var n in r.contents)throw new ut.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir(e){var t=[".",".."];for(var r in e.contents)e.contents.hasOwnProperty(r)&&t.push(r);return t},symlink(e,t,r){var n=et.createNode(e,t,41471,0);return n.link=r,n},readlink(e){if(!ut.isLink(e.mode))throw new ut.ErrnoError(28);return e.link}},stream_ops:{read(e,t,r,n,i){var o=e.node.contents;if(i>=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-i,n);if(Z(a>=0),a>8&&o.subarray)t.set(o.subarray(i,i+a),r);else for(var s=0;s0||n+t(et.stream_ops.write(e,t,0,n,r,!1),0)}},tt=f.preloadPlugins||[],rt=(e,t)=>{var r=0;return e&&(r|=365),t&&(r|=146),r},nt={dbs:{},indexedDB:()=>{if("undefined"!=typeof indexedDB)return indexedDB;var e=null;return"object"==typeof window&&(e=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB),Z(e,"IDBFS used, but indexedDB not supported"),e},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function(e){return et.mount.apply(null,arguments)},syncfs:(e,t,r)=>{nt.getLocalSet(e,((n,i)=>{if(n)return r(n);nt.getRemoteSet(e,((e,n)=>{if(e)return r(e);var o=t?n:i,a=t?i:n;nt.reconcile(o,a,r)}))}))},quit:()=>{Object.values(nt.dbs).forEach((e=>e.close())),nt.dbs={}},getDB:(e,t)=>{var r,n=nt.dbs[e];if(n)return t(null,n);try{r=nt.indexedDB().open(e,nt.DB_VERSION)}catch(e){return t(e)}if(!r)return t("Unable to connect to IndexedDB");r.onupgradeneeded=e=>{var t,r=e.target.result,n=e.target.transaction;(t=r.objectStoreNames.contains(nt.DB_STORE_NAME)?n.objectStore(nt.DB_STORE_NAME):r.createObjectStore(nt.DB_STORE_NAME)).indexNames.contains("timestamp")||t.createIndex("timestamp","timestamp",{unique:!1})},r.onsuccess=()=>{n=r.result,nt.dbs[e]=n,t(null,n)},r.onerror=e=>{t(e.target.error),e.preventDefault()}},getLocalSet:(e,t)=>{var r={};function n(e){return"."!==e&&".."!==e}function i(e){return t=>ze.join2(e,t)}for(var o=ut.readdir(e.mountpoint).filter(n).map(i(e.mountpoint));o.length;){var a,s=o.pop();try{a=ut.stat(s)}catch(e){return t(e)}ut.isDir(a.mode)&&o.push.apply(o,ut.readdir(s).filter(n).map(i(s))),r[s]={timestamp:a.mtime}}return t(null,{type:"local",entries:r})},getRemoteSet:(e,t)=>{var r={};nt.getDB(e.mountpoint,((e,n)=>{if(e)return t(e);try{var i=n.transaction([nt.DB_STORE_NAME],"readonly");i.onerror=e=>{t(e.target.error),e.preventDefault()},i.objectStore(nt.DB_STORE_NAME).index("timestamp").openKeyCursor().onsuccess=e=>{var i=e.target.result;if(!i)return t(null,{type:"remote",db:n,entries:r});r[i.primaryKey]={timestamp:i.key},i.continue()}}catch(e){return t(e)}}))},loadLocalEntry:(e,t)=>{var r,n;try{n=ut.lookupPath(e).node,r=ut.stat(e)}catch(e){return t(e)}return ut.isDir(r.mode)?t(null,{timestamp:r.mtime,mode:r.mode}):ut.isFile(r.mode)?(n.contents=et.getFileDataAsTypedArray(n),t(null,{timestamp:r.mtime,mode:r.mode,contents:n.contents})):t(new Error("node type not supported"))},storeLocalEntry:(e,t,r)=>{try{if(ut.isDir(t.mode))ut.mkdirTree(e,t.mode);else{if(!ut.isFile(t.mode))return r(new Error("node type not supported"));ut.writeFile(e,t.contents,{canOwn:!0})}ut.chmod(e,t.mode),ut.utime(e,t.timestamp,t.timestamp)}catch(e){return r(e)}r(null)},removeLocalEntry:(e,t)=>{try{var r=ut.stat(e);ut.isDir(r.mode)?ut.rmdir(e):ut.isFile(r.mode)&&ut.unlink(e)}catch(e){return t(e)}t(null)},loadRemoteEntry:(e,t,r)=>{var n=e.get(t);n.onsuccess=e=>{r(null,e.target.result)},n.onerror=e=>{r(e.target.error),e.preventDefault()}},storeRemoteEntry:(e,t,r,n)=>{try{var i=e.put(r,t)}catch(e){return void n(e)}i.onsuccess=()=>{n(null)},i.onerror=e=>{n(e.target.error),e.preventDefault()}},removeRemoteEntry:(e,t,r)=>{var n=e.delete(t);n.onsuccess=()=>{r(null)},n.onerror=e=>{r(e.target.error),e.preventDefault()}},reconcile:(e,t,r)=>{var n=0,i=[];Object.keys(e.entries).forEach((function(r){var o=e.entries[r],a=t.entries[r];a&&o.timestamp.getTime()==a.timestamp.getTime()||(i.push(r),n++)}));var o=[];if(Object.keys(t.entries).forEach((function(t){e.entries[t]||(o.push(t),n++)})),!n)return r(null);var a=!1,s=("remote"===e.type?e.db:t.db).transaction([nt.DB_STORE_NAME],"readwrite"),c=s.objectStore(nt.DB_STORE_NAME);function d(e){if(e&&!a)return a=!0,r(e)}s.onerror=e=>{d(this.error),e.preventDefault()},s.oncomplete=e=>{a||r(null)},i.sort().forEach((e=>{"local"===t.type?nt.loadRemoteEntry(c,e,((t,r)=>{if(t)return d(t);nt.storeLocalEntry(e,r,d)})):nt.loadLocalEntry(e,((t,r)=>{if(t)return d(t);nt.storeRemoteEntry(c,e,r,d)}))})),o.sort().reverse().forEach((e=>{"local"===t.type?nt.removeLocalEntry(e,d):nt.removeRemoteEntry(c,e,d)}))}},it={},ot={isWindows:!1,staticInit(){ot.isWindows=!!process.platform.match(/^win/);var e=process.binding("constants");e.fs&&(e=e.fs),ot.flagsForNodeMap={1024:e.O_APPEND,64:e.O_CREAT,128:e.O_EXCL,256:e.O_NOCTTY,0:e.O_RDONLY,2:e.O_RDWR,4096:e.O_SYNC,512:e.O_TRUNC,1:e.O_WRONLY,131072:e.O_NOFOLLOW},Z(0===ot.flagsForNodeMap[0])},convertNodeCode(e){var t=e.code;return Z(t in it,`unexpected node error code: ${t} (${e})`),it[t]},mount:e=>(Z(g),ot.createNode(null,"/",ot.getMode(e.opts.root),0)),createNode(e,t,r,n){if(!ut.isDir(r)&&!ut.isFile(r)&&!ut.isLink(r))throw new ut.ErrnoError(28);var i=ut.createNode(e,t,r);return i.node_ops=ot.node_ops,i.stream_ops=ot.stream_ops,i},getMode(e){var t;try{t=A.lstatSync(e),ot.isWindows&&(t.mode=t.mode|(292&t.mode)>>2)}catch(e){if(!e.code)throw e;throw new ut.ErrnoError(ot.convertNodeCode(e))}return t.mode},realPath(e){for(var t=[];e.parent!==e;)t.push(e.name),e=e.parent;return t.push(e.mount.opts.root),t.reverse(),ze.join.apply(null,t)},flagsForNode(e){e&=-2097153,e&=-2049,e&=-32769,e&=-524289,e&=-65537;var t=0;for(var r in ot.flagsForNodeMap)e&r&&(t|=ot.flagsForNodeMap[r],e^=r);if(e)throw new ut.ErrnoError(28);return t},node_ops:{getattr(e){var t,r=ot.realPath(e);try{t=A.lstatSync(r)}catch(e){if(!e.code)throw e;throw new ut.ErrnoError(ot.convertNodeCode(e))}return ot.isWindows&&!t.blksize&&(t.blksize=4096),ot.isWindows&&!t.blocks&&(t.blocks=(t.size+t.blksize-1)/t.blksize|0),{dev:t.dev,ino:t.ino,mode:t.mode,nlink:t.nlink,uid:t.uid,gid:t.gid,rdev:t.rdev,size:t.size,atime:t.atime,mtime:t.mtime,ctime:t.ctime,blksize:t.blksize,blocks:t.blocks}},setattr(e,t){var r=ot.realPath(e);try{if(void 0!==t.mode&&(A.chmodSync(r,t.mode),e.mode=t.mode),void 0!==t.timestamp){var n=new Date(t.timestamp);A.utimesSync(r,n,n)}void 0!==t.size&&A.truncateSync(r,t.size)}catch(e){if(!e.code)throw e;throw new ut.ErrnoError(ot.convertNodeCode(e))}},lookup(e,t){var r=ze.join2(ot.realPath(e),t),n=ot.getMode(r);return ot.createNode(e,t,n)},mknod(e,t,r,n){var i=ot.createNode(e,t,r,n),o=ot.realPath(i);try{ut.isDir(i.mode)?A.mkdirSync(o,i.mode):A.writeFileSync(o,"",{mode:i.mode})}catch(e){if(!e.code)throw e;throw new ut.ErrnoError(ot.convertNodeCode(e))}return i},rename(e,t,r){var n=ot.realPath(e),i=ze.join2(ot.realPath(t),r);try{A.renameSync(n,i)}catch(e){if(!e.code)throw e;throw new ut.ErrnoError(ot.convertNodeCode(e))}e.name=r},unlink(e,t){var r=ze.join2(ot.realPath(e),t);try{A.unlinkSync(r)}catch(e){if(!e.code)throw e;throw new ut.ErrnoError(ot.convertNodeCode(e))}},rmdir(e,t){var r=ze.join2(ot.realPath(e),t);try{A.rmdirSync(r)}catch(e){if(!e.code)throw e;throw new ut.ErrnoError(ot.convertNodeCode(e))}},readdir(e){var t=ot.realPath(e);try{return A.readdirSync(t)}catch(e){if(!e.code)throw e;throw new ut.ErrnoError(ot.convertNodeCode(e))}},symlink(e,t,r){var n=ze.join2(ot.realPath(e),t);try{A.symlinkSync(r,n)}catch(e){if(!e.code)throw e;throw new ut.ErrnoError(ot.convertNodeCode(e))}},readlink(e){var t=ot.realPath(e);try{return t=A.readlinkSync(t),t=N.relative(N.resolve(e.mount.opts.root),t)}catch(e){if(!e.code)throw e;if("UNKNOWN"===e.code)throw new ut.ErrnoError(28);throw new ut.ErrnoError(ot.convertNodeCode(e))}}},stream_ops:{open(e){var t=ot.realPath(e.node);try{ut.isFile(e.node.mode)&&(e.nfd=A.openSync(t,ot.flagsForNode(e.flags)))}catch(e){if(!e.code)throw e;throw new ut.ErrnoError(ot.convertNodeCode(e))}},close(e){try{ut.isFile(e.node.mode)&&e.nfd&&A.closeSync(e.nfd)}catch(e){if(!e.code)throw e;throw new ut.ErrnoError(ot.convertNodeCode(e))}},read(e,t,r,n,i){if(0===n)return 0;try{return A.readSync(e.nfd,new Int8Array(t.buffer,r,n),{position:i})}catch(e){throw new ut.ErrnoError(ot.convertNodeCode(e))}},write(e,t,r,n,i){try{return A.writeSync(e.nfd,new Int8Array(t.buffer,r,n),{position:i})}catch(e){throw new ut.ErrnoError(ot.convertNodeCode(e))}},llseek(e,t,r){var n=t;if(1===r)n+=e.position;else if(2===r&&ut.isFile(e.node.mode))try{n+=A.fstatSync(e.nfd).size}catch(e){throw new ut.ErrnoError(ot.convertNodeCode(e))}if(n<0)throw new ut.ErrnoError(28);return n},mmap(e,t,n,i,o){if(!ut.isFile(e.node.mode))throw new ut.ErrnoError(43);var a=Qe(t);return ot.stream_ops.read(e,r(),a,t,n),{ptr:a,allocated:!0}},msync:(e,t,r,n,i)=>(ot.stream_ops.write(e,t,0,n,r,!1),0)}},at={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"},st=e=>{var t=Qn(),r=e();return ei(t),r},ct=(e,t,r)=>(Z("number"==typeof r,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),Ze(e,n(),t,r)),dt=e=>{var t=qe(e)+1,r=ti(t);return ct(e,r,t),r},lt=(e,t)=>(Z("number"==typeof e),e?Ve(n(),e,t):""),ft=e=>(ft.recursionGuard=1+(0|ft.recursionGuard),ft.recursionGuard>1?e:st((()=>{try{var t=e;t.startsWith("__Z")&&(t=t.substr(1));var r=dt(t),n=ti(4),i=oi(r,0,0,n);if(0===a()[n>>2]&&i)return lt(i)}catch(e){}finally{$n(i),ft.recursionGuard<2&&--ft.recursionGuard}return e}))),ut={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath(e,t={}){if(!(e=Ge.resolve(e)))return{path:"",node:null};if((t=Object.assign({follow_mount:!0,recurse_count:0},t)).recurse_count>8)throw new ut.ErrnoError(32);for(var r=e.split("/").filter((e=>!!e)),n=ut.root,i="/",o=0;o40)throw new ut.ErrnoError(32)}}return{path:i,node:n}},getPath(e){for(var t;;){if(ut.isRoot(e)){var r=e.mount.mountpoint;return t?"/"!==r[r.length-1]?`${r}/${t}`:r+t:r}t=t?`${e.name}/${t}`:e.name,e=e.parent}},hashName(e,t){for(var r=0,n=0;n>>0)%ut.nameTable.length},hashAddNode(e){var t=ut.hashName(e.parent.id,e.name);e.name_next=ut.nameTable[t],ut.nameTable[t]=e},hashRemoveNode(e){var t=ut.hashName(e.parent.id,e.name);if(ut.nameTable[t]===e)ut.nameTable[t]=e.name_next;else for(var r=ut.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode(e,t){var r=ut.mayLookup(e);if(r)throw new ut.ErrnoError(r,e);for(var n=ut.hashName(e.id,t),i=ut.nameTable[n];i;i=i.name_next){var o=i.name;if(i.parent.id===e.id&&o===t)return i}return ut.lookup(e,t)},createNode(e,t,r,n){Z("object"==typeof e);var i=new ut.FSNode(e,t,r,n);return ut.hashAddNode(i),i},destroyNode(e){ut.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>49152==(49152&e),flagsToPermissionString(e){var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:(e,t)=>ut.ignorePermissions||(!t.includes("r")||292&e.mode)&&(!t.includes("w")||146&e.mode)&&(!t.includes("x")||73&e.mode)?0:2,mayLookup:e=>ut.nodePermissions(e,"x")||(e.node_ops.lookup?0:2),mayCreate(e,t){try{return ut.lookupNode(e,t),20}catch(e){}return ut.nodePermissions(e,"wx")},mayDelete(e,t,r){var n;try{n=ut.lookupNode(e,t)}catch(e){return e.errno}var i=ut.nodePermissions(e,"wx");if(i)return i;if(r){if(!ut.isDir(n.mode))return 54;if(ut.isRoot(n)||ut.getPath(n)===ut.cwd())return 10}else if(ut.isDir(n.mode))return 31;return 0},mayOpen:(e,t)=>e?ut.isLink(e.mode)?32:ut.isDir(e.mode)&&("r"!==ut.flagsToPermissionString(t)||512&t)?31:ut.nodePermissions(e,ut.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd(){for(var e=0;e<=ut.MAX_OPEN_FDS;e++)if(!ut.streams[e])return e;throw new ut.ErrnoError(33)},getStreamChecked(e){var t=ut.getStream(e);if(!t)throw new ut.ErrnoError(8);return t},getStream:e=>ut.streams[e],createStream:(e,t=-1)=>(ut.FSStream||(ut.FSStream=function(){this.shared={}},ut.FSStream.prototype={},Object.defineProperties(ut.FSStream.prototype,{object:{get(){return this.node},set(e){this.node=e}},isRead:{get(){return 1!=(2097155&this.flags)}},isWrite:{get(){return 0!=(2097155&this.flags)}},isAppend:{get(){return 1024&this.flags}},flags:{get(){return this.shared.flags},set(e){this.shared.flags=e}},position:{get(){return this.shared.position},set(e){this.shared.position=e}}})),e=Object.assign(new ut.FSStream,e),-1==t&&(t=ut.nextfd()),e.fd=t,ut.streams[t]=e,e),closeStream(e){ut.streams[e]=null},chrdev_stream_ops:{open(e){var t=ut.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek(){throw new ut.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice(e,t){ut.devices[e]={stream_ops:t}},getDevice:e=>ut.devices[e],getMounts(e){for(var t=[],r=[e];r.length;){var n=r.pop();t.push(n),r.push.apply(r,n.mounts)}return t},syncfs(e,t){"function"==typeof e&&(t=e,e=!1),ut.syncFSRequests++,ut.syncFSRequests>1&&$(`warning: ${ut.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var r=ut.getMounts(ut.root.mount),n=0;function i(e){return Z(ut.syncFSRequests>0),ut.syncFSRequests--,t(e)}function o(e){if(e)return o.errored?void 0:(o.errored=!0,i(e));++n>=r.length&&i(null)}r.forEach((t=>{if(!t.type.syncfs)return o(null);t.type.syncfs(t,e,o)}))},mount(e,t,r){if("string"==typeof e)throw e;var n,i="/"===r,o=!r;if(i&&ut.root)throw new ut.ErrnoError(10);if(!i&&!o){var a=ut.lookupPath(r,{follow_mount:!1});if(r=a.path,n=a.node,ut.isMountpoint(n))throw new ut.ErrnoError(10);if(!ut.isDir(n.mode))throw new ut.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},c=e.mount(s);return c.mount=s,s.root=c,i?ut.root=c:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),c},unmount(e){var t=ut.lookupPath(e,{follow_mount:!1});if(!ut.isMountpoint(t.node))throw new ut.ErrnoError(28);var r=t.node,n=r.mounted,i=ut.getMounts(n);Object.keys(ut.nameTable).forEach((e=>{for(var t=ut.nameTable[e];t;){var r=t.name_next;i.includes(t.mount)&&ut.destroyNode(t),t=r}})),r.mounted=null;var o=r.mount.mounts.indexOf(n);Z(-1!==o),r.mount.mounts.splice(o,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod(e,t,r){var n=ut.lookupPath(e,{parent:!0}).node,i=ze.basename(e);if(!i||"."===i||".."===i)throw new ut.ErrnoError(28);var o=ut.mayCreate(n,i);if(o)throw new ut.ErrnoError(o);if(!n.node_ops.mknod)throw new ut.ErrnoError(63);return n.node_ops.mknod(n,i,t,r)},create:(e,t)=>(t=void 0!==t?t:438,t&=4095,t|=32768,ut.mknod(e,t,0)),mkdir:(e,t)=>(t=void 0!==t?t:511,t&=1023,t|=16384,ut.mknod(e,t,0)),mkdirTree(e,t){for(var r=e.split("/"),n="",i=0;i(void 0===r&&(r=t,t=438),t|=8192,ut.mknod(e,t,r)),symlink(e,t){if(!Ge.resolve(e))throw new ut.ErrnoError(44);var r=ut.lookupPath(t,{parent:!0}).node;if(!r)throw new ut.ErrnoError(44);var n=ze.basename(t),i=ut.mayCreate(r,n);if(i)throw new ut.ErrnoError(i);if(!r.node_ops.symlink)throw new ut.ErrnoError(63);return r.node_ops.symlink(r,n,e)},rename(e,t){var r,n,i=ze.dirname(e),o=ze.dirname(t),a=ze.basename(e),s=ze.basename(t);if(r=ut.lookupPath(e,{parent:!0}).node,n=ut.lookupPath(t,{parent:!0}).node,!r||!n)throw new ut.ErrnoError(44);if(r.mount!==n.mount)throw new ut.ErrnoError(75);var c,d=ut.lookupNode(r,a),l=Ge.relative(e,o);if("."!==l.charAt(0))throw new ut.ErrnoError(28);if("."!==(l=Ge.relative(t,i)).charAt(0))throw new ut.ErrnoError(55);try{c=ut.lookupNode(n,s)}catch(e){}if(d!==c){var f=ut.isDir(d.mode),u=ut.mayDelete(r,a,f);if(u)throw new ut.ErrnoError(u);if(u=c?ut.mayDelete(n,s,f):ut.mayCreate(n,s))throw new ut.ErrnoError(u);if(!r.node_ops.rename)throw new ut.ErrnoError(63);if(ut.isMountpoint(d)||c&&ut.isMountpoint(c))throw new ut.ErrnoError(10);if(n!==r&&(u=ut.nodePermissions(r,"w")))throw new ut.ErrnoError(u);ut.hashRemoveNode(d);try{r.node_ops.rename(d,n,s)}catch(e){throw e}finally{ut.hashAddNode(d)}}},rmdir(e){var t=ut.lookupPath(e,{parent:!0}).node,r=ze.basename(e),n=ut.lookupNode(t,r),i=ut.mayDelete(t,r,!0);if(i)throw new ut.ErrnoError(i);if(!t.node_ops.rmdir)throw new ut.ErrnoError(63);if(ut.isMountpoint(n))throw new ut.ErrnoError(10);t.node_ops.rmdir(t,r),ut.destroyNode(n)},readdir(e){var t=ut.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new ut.ErrnoError(54);return t.node_ops.readdir(t)},unlink(e){var t=ut.lookupPath(e,{parent:!0}).node;if(!t)throw new ut.ErrnoError(44);var r=ze.basename(e),n=ut.lookupNode(t,r),i=ut.mayDelete(t,r,!1);if(i)throw new ut.ErrnoError(i);if(!t.node_ops.unlink)throw new ut.ErrnoError(63);if(ut.isMountpoint(n))throw new ut.ErrnoError(10);t.node_ops.unlink(t,r),ut.destroyNode(n)},readlink(e){var t=ut.lookupPath(e).node;if(!t)throw new ut.ErrnoError(44);if(!t.node_ops.readlink)throw new ut.ErrnoError(28);return Ge.resolve(ut.getPath(t.parent),t.node_ops.readlink(t))},stat(e,t){var r=ut.lookupPath(e,{follow:!t}).node;if(!r)throw new ut.ErrnoError(44);if(!r.node_ops.getattr)throw new ut.ErrnoError(63);return r.node_ops.getattr(r)},lstat:e=>ut.stat(e,!0),chmod(e,t,r){var n;if(!(n="string"==typeof e?ut.lookupPath(e,{follow:!r}).node:e).node_ops.setattr)throw new ut.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod(e,t){ut.chmod(e,t,!0)},fchmod(e,t){var r=ut.getStreamChecked(e);ut.chmod(r.node,t)},chown(e,t,r,n){var i;if(!(i="string"==typeof e?ut.lookupPath(e,{follow:!n}).node:e).node_ops.setattr)throw new ut.ErrnoError(63);i.node_ops.setattr(i,{timestamp:Date.now()})},lchown(e,t,r){ut.chown(e,t,r,!0)},fchown(e,t,r){var n=ut.getStreamChecked(e);ut.chown(n.node,t,r)},truncate(e,t){if(t<0)throw new ut.ErrnoError(28);var r;if(!(r="string"==typeof e?ut.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new ut.ErrnoError(63);if(ut.isDir(r.mode))throw new ut.ErrnoError(31);if(!ut.isFile(r.mode))throw new ut.ErrnoError(28);var n=ut.nodePermissions(r,"w");if(n)throw new ut.ErrnoError(n);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate(e,t){var r=ut.getStreamChecked(e);if(0==(2097155&r.flags))throw new ut.ErrnoError(28);ut.truncate(r.node,t)},utime(e,t,r){var n=ut.lookupPath(e,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(t,r)})},open(e,t,r){if(""===e)throw new ut.ErrnoError(44);var n;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?(e=>{var t={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[e];if(void 0===t)throw new Error(`Unknown file open mode: ${e}`);return t})(t):t)?4095&r|32768:0,"object"==typeof e)n=e;else{e=ze.normalize(e);try{n=ut.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var i=!1;if(64&t)if(n){if(128&t)throw new ut.ErrnoError(20)}else n=ut.mknod(e,r,0),i=!0;if(!n)throw new ut.ErrnoError(44);if(ut.isChrdev(n.mode)&&(t&=-513),65536&t&&!ut.isDir(n.mode))throw new ut.ErrnoError(54);if(!i){var o=ut.mayOpen(n,t);if(o)throw new ut.ErrnoError(o)}512&t&&!i&&ut.truncate(n,0),t&=-131713;var a=ut.createStream({node:n,path:ut.getPath(n),flags:t,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return a.stream_ops.open&&a.stream_ops.open(a),!f.logReadFiles||1&t||(ut.readFiles||(ut.readFiles={}),e in ut.readFiles||(ut.readFiles[e]=1)),a},close(e){if(ut.isClosed(e))throw new ut.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{ut.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek(e,t,r){if(ut.isClosed(e))throw new ut.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new ut.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new ut.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read(e,t,r,n,i){if(Z(r>=0),n<0||i<0)throw new ut.ErrnoError(28);if(ut.isClosed(e))throw new ut.ErrnoError(8);if(1==(2097155&e.flags))throw new ut.ErrnoError(8);if(ut.isDir(e.node.mode))throw new ut.ErrnoError(31);if(!e.stream_ops.read)throw new ut.ErrnoError(28);var o=void 0!==i;if(o){if(!e.seekable)throw new ut.ErrnoError(70)}else i=e.position;var a=e.stream_ops.read(e,t,r,n,i);return o||(e.position+=a),a},write(e,t,r,n,i,o){if(Z(r>=0),n<0||i<0)throw new ut.ErrnoError(28);if(ut.isClosed(e))throw new ut.ErrnoError(8);if(0==(2097155&e.flags))throw new ut.ErrnoError(8);if(ut.isDir(e.node.mode))throw new ut.ErrnoError(31);if(!e.stream_ops.write)throw new ut.ErrnoError(28);e.seekable&&1024&e.flags&&ut.llseek(e,0,2);var a=void 0!==i;if(a){if(!e.seekable)throw new ut.ErrnoError(70)}else i=e.position;var s=e.stream_ops.write(e,t,r,n,i,o);return a||(e.position+=s),s},allocate(e,t,r){if(ut.isClosed(e))throw new ut.ErrnoError(8);if(t<0||r<=0)throw new ut.ErrnoError(28);if(0==(2097155&e.flags))throw new ut.ErrnoError(8);if(!ut.isFile(e.node.mode)&&!ut.isDir(e.node.mode))throw new ut.ErrnoError(43);if(!e.stream_ops.allocate)throw new ut.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap(e,t,r,n,i){if(0!=(2&n)&&0==(2&i)&&2!=(2097155&e.flags))throw new ut.ErrnoError(2);if(1==(2097155&e.flags))throw new ut.ErrnoError(2);if(!e.stream_ops.mmap)throw new ut.ErrnoError(43);return e.stream_ops.mmap(e,t,r,n,i)},msync:(e,t,r,n,i)=>(Z(r>=0),e.stream_ops.msync?e.stream_ops.msync(e,t,r,n,i):0),munmap:e=>0,ioctl(e,t,r){if(!e.stream_ops.ioctl)throw new ut.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile(e,t={}){if(t.flags=t.flags||0,t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error(`Invalid encoding type "${t.encoding}"`);var r,n=ut.open(e,t.flags),i=ut.stat(e).size,o=new Uint8Array(i);return ut.read(n,o,0,i,0),"utf8"===t.encoding?r=Ve(o,0):"binary"===t.encoding&&(r=o),ut.close(n),r},writeFile(e,t,r={}){r.flags=r.flags||577;var n=ut.open(e,r.flags,r.mode);if("string"==typeof t){var i=new Uint8Array(qe(t)+1),o=Ze(t,i,0,i.length);ut.write(n,i,0,o,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");ut.write(n,t,0,t.byteLength,void 0,r.canOwn)}ut.close(n)},cwd:()=>ut.currentPath,chdir(e){var t=ut.lookupPath(e,{follow:!0});if(null===t.node)throw new ut.ErrnoError(44);if(!ut.isDir(t.node.mode))throw new ut.ErrnoError(54);var r=ut.nodePermissions(t.node,"x");if(r)throw new ut.ErrnoError(r);ut.currentPath=t.path},createDefaultDirectories(){ut.mkdir("/tmp"),ut.mkdir("/home"),ut.mkdir("/home/web_user")},createDefaultDevices(){ut.mkdir("/dev"),ut.registerDevice(ut.makedev(1,3),{read:()=>0,write:(e,t,r,n,i)=>n}),ut.mkdev("/dev/null",ut.makedev(1,3)),Je.register(ut.makedev(5,0),Je.default_tty_ops),Je.register(ut.makedev(6,0),Je.default_tty1_ops),ut.mkdev("/dev/tty",ut.makedev(5,0)),ut.mkdev("/dev/tty1",ut.makedev(6,0));var e=new Uint8Array(1024),t=0,r=()=>(0===t&&(t=He(e).byteLength),e[--t]);ut.createDevice("/dev","random",r),ut.createDevice("/dev","urandom",r),ut.mkdir("/dev/shm"),ut.mkdir("/dev/shm/tmp")},createSpecialDirectories(){ut.mkdir("/proc");var e=ut.mkdir("/proc/self");ut.mkdir("/proc/self/fd"),ut.mount({mount(){var t=ut.createNode(e,"fd",16895,73);return t.node_ops={lookup(e,t){var r=+t,n=ut.getStreamChecked(r),i={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>n.path}};return i.parent=i,i}},t}},{},"/proc/self/fd")},createStandardStreams(){f.stdin?ut.createDevice("/dev","stdin",f.stdin):ut.symlink("/dev/tty","/dev/stdin"),f.stdout?ut.createDevice("/dev","stdout",null,f.stdout):ut.symlink("/dev/tty","/dev/stdout"),f.stderr?ut.createDevice("/dev","stderr",null,f.stderr):ut.symlink("/dev/tty1","/dev/stderr");var e=ut.open("/dev/stdin",0),t=ut.open("/dev/stdout",1),r=ut.open("/dev/stderr",1);Z(0===e.fd,`invalid handle for stdin (${e.fd})`),Z(1===t.fd,`invalid handle for stdout (${t.fd})`),Z(2===r.fd,`invalid handle for stderr (${r.fd})`)},ensureErrnoError(){ut.ErrnoError||(ut.ErrnoError=function(e,t){this.name="ErrnoError",this.node=t,this.setErrno=function(e){for(var t in this.errno=e,it)if(it[t]===e){this.code=t;break}},this.setErrno(e),this.message=at[e],this.stack&&(Object.defineProperty(this,"stack",{value:(new Error).stack,writable:!0}),this.stack=this.stack.replace(/\b_Z[\w\d_]+/g,(function(e){var t=ft(e);return e===t?e:t+" ["+e+"]"})))},ut.ErrnoError.prototype=new Error,ut.ErrnoError.prototype.constructor=ut.ErrnoError,[44].forEach((e=>{ut.genericErrors[e]=new ut.ErrnoError(e),ut.genericErrors[e].stack=""})))},staticInit(){ut.ensureErrnoError(),ut.nameTable=new Array(4096),ut.mount(et,{},"/"),ut.createDefaultDirectories(),ut.createDefaultDevices(),ut.createSpecialDirectories(),ut.filesystems={MEMFS:et,IDBFS:nt,NODEFS:ot}},init(e,t,r){Z(!ut.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),ut.init.initialized=!0,ut.ensureErrnoError(),f.stdin=e||f.stdin,f.stdout=t||f.stdout,f.stderr=r||f.stderr,ut.createStandardStreams()},quit(){ut.init.initialized=!1,xn(0);for(var e=0;ethis.length-1||e<0)){var t=e%this.chunkSize,r=e/this.chunkSize|0;return this.getter(r)[t]}},a.prototype.setDataGetter=function(e){this.getter=e},a.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",n,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+n+". Status: "+e.status);var t,r=Number(e.getResponseHeader("Content-length")),i=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,o=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,a=1048576;i||(a=r);var s=this;s.setDataGetter((e=>{var t=e*a,i=(e+1)*a-1;if(i=Math.min(i,r-1),void 0===s.chunks[e]&&(s.chunks[e]=((e,t)=>{if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>r-1)throw new Error("only "+r+" bytes available! programmer error!");var i=new XMLHttpRequest;if(i.open("GET",n,!1),r!==a&&i.setRequestHeader("Range","bytes="+e+"-"+t),i.responseType="arraybuffer",i.overrideMimeType&&i.overrideMimeType("text/plain; charset=x-user-defined"),i.send(null),!(i.status>=200&&i.status<300||304===i.status))throw new Error("Couldn't load "+n+". Status: "+i.status);return void 0!==i.response?new Uint8Array(i.response||[]):Xe(i.responseText||"",!0)})(t,i)),void 0===s.chunks[e])throw new Error("doXHR failed!");return s.chunks[e]})),!o&&r||(a=r=1,r=this.getter(0).length,a=r,R("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=r,this._chunkSize=a,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!y)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var s=new a;Object.defineProperties(s,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var c={isDevice:!1,contents:s}}else c={isDevice:!1,url:n};var d=ut.createFile(e,t,c,i,o);c.contents?d.contents=c.contents:c.url&&(d.contents=null,d.url=c.url),Object.defineProperties(d,{usedBytes:{get:function(){return this.contents.length}}});var l={};function f(e,t,r,n,i){var o=e.node.contents;if(i>=o.length)return 0;var a=Math.min(o.length-i,n);if(Z(a>=0),o.slice)for(var s=0;s{var t=d.stream_ops[e];l[e]=function(){return ut.forceLoadFile(d),t.apply(null,arguments)}})),l.read=(e,t,r,n,i)=>(ut.forceLoadFile(d),f(e,t,r,n,i)),l.mmap=(e,t,n,i,o)=>{ut.forceLoadFile(d);var a=Qe(t);if(!a)throw new ut.ErrnoError(48);return f(e,r(),a,t,n),{ptr:a,allocated:!0}},d.stream_ops=l,d},absolutePath(){_e("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder(){_e("FS.createFolder has been removed; use FS.mkdir instead")},createLink(){_e("FS.createLink has been removed; use FS.symlink instead")},joinPath(){_e("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc(){_e("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath(){_e("FS.standardizePath has been removed; use PATH.normalize instead")}},ht={DEFAULT_POLLMASK:5,calculateAt(e,t,r){if(ze.isAbs(t))return t;var n;if(n=-100===e?ut.cwd():ht.getStreamFromFD(e).path,0==t.length){if(!r)throw new ut.ErrnoError(44);return n}return ze.join2(n,t)},doStat(e,t,r){try{var n=e(t)}catch(e){if(e&&e.node&&ze.normalize(t)!==ze.normalize(ut.getPath(e.node)))return-54;throw e}a()[r>>2]=n.dev,$e(n.dev),a()[r+4>>2]=n.mode,$e(n.mode),s()[r+8>>2]=n.nlink,$e(n.nlink),a()[r+12>>2]=n.uid,$e(n.uid),a()[r+16>>2]=n.gid,$e(n.gid),a()[r+20>>2]=n.rdev,$e(n.rdev),we=[n.size>>>0,(ge=n.size,+Math.abs(ge)>=1?ge>0?+Math.floor(ge/4294967296)>>>0:~~+Math.ceil((ge-+(~~ge>>>0))/4294967296)>>>0:0)],a()[r+24>>2]=we[0],a()[r+28>>2]=we[1],xe(n.size),a()[r+32>>2]=4096,$e(4096),a()[r+36>>2]=n.blocks,$e(n.blocks);var i=n.atime.getTime(),o=n.mtime.getTime(),c=n.ctime.getTime();return we=[Math.floor(i/1e3)>>>0,(ge=Math.floor(i/1e3),+Math.abs(ge)>=1?ge>0?+Math.floor(ge/4294967296)>>>0:~~+Math.ceil((ge-+(~~ge>>>0))/4294967296)>>>0:0)],a()[r+40>>2]=we[0],a()[r+44>>2]=we[1],xe(Math.floor(i/1e3)),s()[r+48>>2]=i%1e3*1e3,$e(i%1e3*1e3),we=[Math.floor(o/1e3)>>>0,(ge=Math.floor(o/1e3),+Math.abs(ge)>=1?ge>0?+Math.floor(ge/4294967296)>>>0:~~+Math.ceil((ge-+(~~ge>>>0))/4294967296)>>>0:0)],a()[r+56>>2]=we[0],a()[r+60>>2]=we[1],xe(Math.floor(o/1e3)),s()[r+64>>2]=o%1e3*1e3,$e(o%1e3*1e3),we=[Math.floor(c/1e3)>>>0,(ge=Math.floor(c/1e3),+Math.abs(ge)>=1?ge>0?+Math.floor(ge/4294967296)>>>0:~~+Math.ceil((ge-+(~~ge>>>0))/4294967296)>>>0:0)],a()[r+72>>2]=we[0],a()[r+76>>2]=we[1],xe(Math.floor(c/1e3)),s()[r+80>>2]=c%1e3*1e3,$e(c%1e3*1e3),we=[n.ino>>>0,(ge=n.ino,+Math.abs(ge)>=1?ge>0?+Math.floor(ge/4294967296)>>>0:~~+Math.ceil((ge-+(~~ge>>>0))/4294967296)>>>0:0)],a()[r+88>>2]=we[0],a()[r+92>>2]=we[1],xe(n.ino),0},doMsync(e,t,r,i,o){if(!ut.isFile(t.node.mode))throw new ut.ErrnoError(43);if(2&i)return 0;var a=n().slice(e,e+r);ut.msync(t,a,o,r,i)},varargs:void 0,get(){Z(null!=ht.varargs);var e=a()[+ht.varargs>>2];return ht.varargs+=4,e},getp:()=>ht.get(),getStr:e=>lt(e),getStreamFromFD:e=>ut.getStreamChecked(e)};function mt(e){if(S)return nn(0,1,e);W=e,se()||(gt.terminateAllThreads(),f.onExit&&f.onExit(e),q=!0),v(e,new je(e))}var pt=(e,t)=>{if(W=e,function(){var e=R,t=$,r=!1;R=$=e=>{r=!0};try{xn(0),["stdout","stderr"].forEach((function(e){var t=ut.analyzePath("/dev/"+e);if(t){var n=t.object.rdev,i=Je.ttys[n];i&&i.output&&i.output.length&&(r=!0)}}))}catch(e){}R=e,$=t,r&&Ft("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the Emscripten FAQ), or make sure to emit a newline when you printf etc.")}(),S)throw Z(!t),Et(e),"unwind";if(se()&&!t){var r=`program exited (with status: ${e}), but keepRuntimeAlive() is set (counter=${ae}) due to an async operation, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)`;l(r),$(r)}mt(e)},vt=pt,_t=e=>(Z("number"==typeof e),"0x"+(e>>>=0).toString(16).padStart(8,"0")),yt=e=>{if(e instanceof je||"unwind"==e)return W;ee(),e instanceof WebAssembly.RuntimeError&&ri()<=0&&$("Stack overflow detected. You can try increasing -sSTACK_SIZE (currently set to 5242880)"),v(1,e)},gt={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},nextWorkerID:1,debugInit(){var e=Le;Le=t=>{return e((r=0,oe&&void 0!==Wn&&(r=Wn()),"w:"+(f.workerID||0)+",t:"+_t(r)+": "+t));var r}},init(){gt.debugInit(),S?gt.initWorker():gt.initMainThread()},initMainThread(){for(var e=32;e--;)gt.allocateUnusedWorker();de((()=>{pe("loading-workers"),gt.loadWasmModuleToAllWorkers((()=>ve("loading-workers")))}))},initWorker(){j=!1},setExitStatus:e=>{W=e},terminateAllThreads__deps:["$terminateWorker"],terminateAllThreads:()=>{for(var e of(Z(!S,"Internal Error! terminateAllThreads() can only ever be called from main application thread!"),gt.runningWorkers))We(e);for(var e of gt.unusedWorkers)We(e);gt.unusedWorkers=[],gt.runningWorkers=[],gt.pthreads=[]},returnWorkerToPool:e=>{var t=e.pthread_ptr;delete gt.pthreads[t],gt.unusedWorkers.push(e),gt.runningWorkers.splice(gt.runningWorkers.indexOf(e),1),e.pthread_ptr=0,Vn(t)},receiveObjectTransfer(e){},threadInitTLS(){gt.tlsInitFunctions.forEach((e=>e()))},loadWasmModuleToWorker:t=>new Promise((r=>{t.onmessage=e=>{var n=e.data,i=n.cmd;if(n.targetThread&&n.targetThread!=Wn()){var o=gt.pthreads[n.targetThread];o?o.postMessage(n,n.transferList):$(`Internal error! Worker sent a message "${i}" to target pthread ${n.targetThread}, but that thread no longer exists!`)}else{var a;"checkMailbox"===i?rn():"spawnThread"===i?Be(n):"cleanupThread"===i?Ue(n.thread):"killThread"===i?(e=>{Z(!S,"Internal Error! killThread() can only ever be called from main application thread!"),Z(e,"Internal Error! Null pthread_ptr in killThread!");var t=gt.pthreads[e];delete gt.pthreads[e],We(t),Vn(e),gt.runningWorkers.splice(gt.runningWorkers.indexOf(t),1),t.pthread_ptr=0})(n.thread):"cancelThread"===i?(a=n.thread,Z(!S,"Internal Error! cancelThread() can only ever be called from main application thread!"),Z(a,"Internal Error! Null pthread_ptr in cancelThread!"),gt.pthreads[a].postMessage({cmd:"cancel"})):"loaded"===i?(t.loaded=!0,g&&!t.pthread_ptr&&t.unref(),r(t)):"alert"===i?alert(`Thread ${n.threadId}: ${n.text}`):"setimmediate"===n.target?t.postMessage(n):"callHandler"===i?f[n.handler](...n.args):i&&$(`worker sent an unknown command ${i}`)}},t.onerror=e=>{var r="worker sent an error!";throw t.pthread_ptr&&(r=`Pthread ${_t(t.pthread_ptr)} sent an error!`),$(`${r} ${e.filename}:${e.lineno}: ${e.message}`),e},g&&(t.on("message",(e=>t.onmessage({data:e}))),t.on("error",(e=>t.onerror(e)))),Z(x instanceof WebAssembly.Memory,"WebAssembly memory should have been loaded by now!"),Z(L instanceof WebAssembly.Module,"WebAssembly Module should have been loaded by now!");var n=[];for(var i of["onExit","onAbort","print","printErr"])f.hasOwnProperty(i)&&n.push(i);t.workerID=gt.nextWorkerID++,t.postMessage({cmd:"load",handlers:n,urlOrBlob:f.mainScriptUrlOrBlob||e,wasmMemory:x,wasmModule:L,workerID:t.workerID})})),loadWasmModuleToAllWorkers(e){if(S)return e();Promise.all(gt.unusedWorkers.map(gt.loadWasmModuleToWorker)).then(e)},allocateUnusedWorker(){var e,t=P("moorhen.worker.js");e=new Worker(t),gt.unusedWorkers.push(e)},getNewWorker:()=>(0==gt.unusedWorkers.length&&(g||$("Tried to spawn a new thread, but the thread pool is exhausted.\nThis might result in a deadlock unless some threads eventually exit or the code explicitly breaks out to the event loop.\nIf you want to increase the pool size, use setting `-sPTHREAD_POOL_SIZE=...`."),gt.allocateUnusedWorker(),gt.loadWasmModuleToWorker(gt.unusedWorkers[0])),gt.unusedWorkers.pop())};f.PThread=gt;var wt=e=>{for(;e.length>0;)e.shift()(f)};function Et(e){if(S)return nn(1,0,e);vt(e)}f.establishStackSpace=()=>{var e=Wn(),t=s()[e+52>>2],r=t-s()[e+56>>2];Z(0!=t),Z(0!=r),Z(t>r,"stackHigh must be higher then stackLow"),Jn(t,r),Pt(),ei(t),Q()};var bt=e=>(e=>st((()=>{var t=ti(4),r=ti(4);ai(e,t,r);var n,i=s()[t>>2],o=s()[r>>2],a=lt(i);return $n(i),o&&(n=lt(o),$n(o)),[a,n]})))(e);f.getExceptionMessage=bt;var kt,St=[],Tt=e=>{var t=St[e];return t||(e>=St.length&&(St.length=e+1),St[e]=t=kt.get(e)),Z(kt.get(e)==t,"JavaScript-side Wasm function table mirror is out of date!"),t};f.invokeEntryPoint=(e,t)=>{var r=Tt(e)(t);ee(),function(e){se()?gt.setExitStatus(e):Kn(e)}(r)};var Pt=()=>{var e=Hn(),t=Gn();di(e,t)},Ft=e=>{Ft.shown||(Ft.shown={}),Ft.shown[e]||(Ft.shown[e]=1,g&&(e="warning: "+e),$(e))},Ct=[],At=0,Nt=0;function Dt(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(e){s()[this.ptr+4>>2]=e},this.get_type=function(){return s()[this.ptr+4>>2]},this.set_destructor=function(e){s()[this.ptr+8>>2]=e},this.get_destructor=function(){return s()[this.ptr+8>>2]},this.set_caught=function(e){e=e?1:0,r()[this.ptr+12>>0]=e,Ie(e)},this.get_caught=function(){return 0!=r()[this.ptr+12>>0]},this.set_rethrown=function(e){e=e?1:0,r()[this.ptr+13>>0]=e,Ie(e)},this.get_rethrown=function(){return 0!=r()[this.ptr+13>>0]},this.init=function(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t)},this.set_adjusted_ptr=function(e){s()[this.ptr+16>>2]=e},this.get_adjusted_ptr=function(){return s()[this.ptr+16>>2]},this.get_exception_ptr=function(){if(ci(this.get_type()))return s()[this.excPtr>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}var Ot=e=>{var t=Nt&&Nt.excPtr;if(!t)return jn(0),0;var r=new Dt(t);r.set_adjusted_ptr(t);var n=r.get_type();if(!n)return jn(0),t;for(var i in e){var o=e[i];if(0===o||o===n)break;var a=r.ptr+16;if(si(o,n,a))return jn(o),t}return jn(n),t};function Mt(e,t,r,n){return S?nn(2,1,e,t,r,n):It(e,t,r,n)}var It=(e,t,r,n)=>{if("undefined"==typeof SharedArrayBuffer)return $("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var i=[];if(S&&0===i.length)return Mt(e,t,r,n);var o={startRoutine:r,pthread_ptr:e,arg:n,transferList:i};return S?(o.cmd="spawnThread",postMessage(o,i),0):Be(o)};function Rt(e,t,r){if(S)return nn(3,1,e,t,r);ht.varargs=r;try{var n=ht.getStreamFromFD(e);switch(t){case 0:if((o=ht.get())<0)return-28;for(;ut.streams[o];)o++;return ut.createStream(n,o).fd;case 1:case 2:case 6:case 7:return 0;case 3:return n.flags;case 4:var o=ht.get();return n.flags|=o,0;case 5:return o=ht.getp(),i()[o+0>>1]=2,Re(2),0;case 16:case 8:default:return-28;case 9:return 28,a()[Rn()>>2]=28,$e(28),-1}}catch(e){if(void 0===ut||"ErrnoError"!==e.name)throw e;return-e.errno}}function $t(e,t){if(S)return nn(4,1,e,t);try{var r=ht.getStreamFromFD(e);return ht.doStat(ut.stat,r.path,t)}catch(e){if(void 0===ut||"ErrnoError"!==e.name)throw e;return-e.errno}}function xt(e,t,n){if(S)return nn(5,1,e,t,n);ht.varargs=n;try{var o=ht.getStreamFromFD(e);switch(t){case 21509:case 21510:case 21511:case 21512:case 21524:case 21515:return o.tty?0:-59;case 21505:if(!o.tty)return-59;if(o.tty.ops.ioctl_tcgets){var s=o.tty.ops.ioctl_tcgets(o),c=ht.getp();a()[c>>2]=s.c_iflag||0,$e(s.c_iflag||0),a()[c+4>>2]=s.c_oflag||0,$e(s.c_oflag||0),a()[c+8>>2]=s.c_cflag||0,$e(s.c_cflag||0),a()[c+12>>2]=s.c_lflag||0,$e(s.c_lflag||0);for(var d=0;d<32;d++)r()[c+d+17>>0]=s.c_cc[d]||0,Ie(s.c_cc[d]||0);return 0}return 0;case 21506:case 21507:case 21508:if(!o.tty)return-59;if(o.tty.ops.ioctl_tcsets){c=ht.getp();var l=a()[c>>2],f=a()[c+4>>2],u=a()[c+8>>2],h=a()[c+12>>2],m=[];for(d=0;d<32;d++)m.push(r()[c+d+17>>0]);return o.tty.ops.ioctl_tcsets(o.tty,t,{c_iflag:l,c_oflag:f,c_cflag:u,c_lflag:h,c_cc:m})}return 0;case 21519:return o.tty?(c=ht.getp(),a()[c>>2]=0,$e(0),0):-59;case 21520:return o.tty?-28:-59;case 21531:return c=ht.getp(),ut.ioctl(o,t,c);case 21523:if(!o.tty)return-59;if(o.tty.ops.ioctl_tiocgwinsz){var p=o.tty.ops.ioctl_tiocgwinsz(o.tty);c=ht.getp(),i()[c>>1]=p[0],Re(p[0]),i()[c+2>>1]=p[1],Re(p[1])}return 0;default:return-28}}catch(e){if(void 0===ut||"ErrnoError"!==e.name)throw e;return-e.errno}}function Lt(e,t){if(S)return nn(6,1,e,t);try{return e=ht.getStr(e),ht.doStat(ut.lstat,e,t)}catch(e){if(void 0===ut||"ErrnoError"!==e.name)throw e;return-e.errno}}function jt(e,t,r){if(S)return nn(7,1,e,t,r);try{return t=ht.getStr(t),t=ht.calculateAt(e,t),"/"===(t=ze.normalize(t))[t.length-1]&&(t=t.substr(0,t.length-1)),ut.mkdir(t,r,0),0}catch(e){if(void 0===ut||"ErrnoError"!==e.name)throw e;return-e.errno}}function Wt(e,t,r,n){if(S)return nn(8,1,e,t,r,n);try{t=ht.getStr(t);var i=256&n,o=4096&n;return Z(!(n&=-6401),`unknown flags in __syscall_newfstatat: ${n}`),t=ht.calculateAt(e,t,o),ht.doStat(i?ut.lstat:ut.stat,t,r)}catch(e){if(void 0===ut||"ErrnoError"!==e.name)throw e;return-e.errno}}function Ut(e,t,r,n){if(S)return nn(9,1,e,t,r,n);ht.varargs=n;try{t=ht.getStr(t),t=ht.calculateAt(e,t);var i=n?ht.get():0;return ut.open(t,r,i).fd}catch(e){if(void 0===ut||"ErrnoError"!==e.name)throw e;return-e.errno}}function Bt(e){if(S)return nn(10,1,e);try{return e=ht.getStr(e),ut.rmdir(e),0}catch(e){if(void 0===ut||"ErrnoError"!==e.name)throw e;return-e.errno}}function zt(e,t){if(S)return nn(11,1,e,t);try{return e=ht.getStr(e),ht.doStat(ut.stat,e,t)}catch(e){if(void 0===ut||"ErrnoError"!==e.name)throw e;return-e.errno}}function Ht(e,t,r){if(S)return nn(12,1,e,t,r);try{return t=ht.getStr(t),t=ht.calculateAt(e,t),0===r?ut.unlink(t):512===r?ut.rmdir(t):_e("Invalid flags passed to unlinkat"),0}catch(e){if(void 0===ut||"ErrnoError"!==e.name)throw e;return-e.errno}}var Gt={},Yt=e=>{for(;e.length;){var t=e.pop();e.pop()(t)}};function Vt(e){return this.fromWireType(a()[e>>2])}var Kt,qt,Zt,Xt={},Jt={},Qt={},er=e=>{throw new Kt(e)},tr=(e,t,r)=>{function n(t){var n=r(t);n.length!==e.length&&er("Mismatched type converter count");for(var i=0;i{Jt.hasOwnProperty(e)?i[t]=Jt[e]:(o.push(e),Xt.hasOwnProperty(e)||(Xt[e]=[]),Xt[e].push((()=>{i[t]=Jt[e],++a===o.length&&n(i)})))})),0===o.length&&n(i)},rr={},nr=e=>{for(var t="",r=e;n()[r];)t+=qt[n()[r++]];return t},ir=e=>{throw new Zt(e)};function or(e,t,r={}){if(!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(e,t,r={}){var n=t.name;if(e||ir(`type "${n}" must have a positive integer typeid pointer`),Jt.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;ir(`Cannot register type '${n}' twice`)}if(Jt[e]=t,delete Qt[e],Xt.hasOwnProperty(e)){var i=Xt[e];delete Xt[e],i.forEach((e=>e()))}}(e,t,r)}var ar,sr=e=>{ir(e.$$.ptrType.registeredClass.name+" instance already deleted")},cr=!1,dr=e=>{},lr=e=>{e.count.value-=1,0===e.count.value&&(e=>{e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)})(e)},fr=(e,t,r)=>{if(t===r)return e;if(void 0===r.baseClass)return null;var n=fr(e,t,r.baseClass);return null===n?null:r.downcast(n)},ur={},hr=[],mr=()=>{for(;hr.length;){var e=hr.pop();e.$$.deleteScheduled=!1,e.delete()}},pr={},vr=(e,t)=>(t.ptrType&&t.ptr||er("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&er("Both smartPtrType and smartPtr must be specified"),t.count={value:1},yr(Object.create(e,{$$:{value:t}})));function _r(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var r=((e,t)=>(t=((e,t)=>{for(void 0===t&&ir("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t})(e,t),pr[t]))(this.registeredClass,t);if(void 0!==r){if(0===r.$$.count.value)return r.$$.ptr=t,r.$$.smartPtr=e,r.clone();var n=r.clone();return this.destructor(e),n}function i(){return this.isSmartPointer?vr(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):vr(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var o,a=this.registeredClass.getActualType(t),s=ur[a];if(!s)return i.call(this);o=this.isConst?s.constPointerType:s.pointerType;var c=fr(t,this.registeredClass,o.registeredClass);return null===c?i.call(this):this.isSmartPointer?vr(o.registeredClass.instancePrototype,{ptrType:o,ptr:c,smartPtrType:this,smartPtr:e}):vr(o.registeredClass.instancePrototype,{ptrType:o,ptr:c})}var yr=e=>"undefined"==typeof FinalizationRegistry?(yr=e=>e,e):(cr=new FinalizationRegistry((e=>{console.warn(e.leakWarning.stack.replace(/^Error: /,"")),lr(e.$$)})),yr=e=>{var t=e.$$;if(t.smartPtr){var r={$$:t},n=t.ptrType.registeredClass;r.leakWarning=new Error(`Embind found a leaked C++ instance ${n.name} <${_t(t.ptr)}>.\nWe'll free it automatically in this case, but this functionality is not reliable across various environments.\nMake sure to invoke .delete() manually once you're done with the instance instead.\nOriginally allocated`),"captureStackTrace"in Error&&Error.captureStackTrace(r.leakWarning,_r),cr.register(e,r,e)}return e},dr=e=>cr.unregister(e),yr(e));function gr(){}var wr=e=>{if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=48&&t<=57?`_${e}`:e};function Er(e,t){return{[e=wr(e)]:function(){return t.apply(this,arguments)}}[e]}var br=(e,t,r)=>{if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||ir(`Function '${r}' called with an invalid number of arguments (${arguments.length}) - expects one of (${e[t].overloadTable})!`),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[n.argCount]=n}},kr=(e,t,r)=>{f.hasOwnProperty(e)?((void 0===r||void 0!==f[e].overloadTable&&void 0!==f[e].overloadTable[r])&&ir(`Cannot register public name '${e}' twice`),br(f,e,e),f.hasOwnProperty(r)&&ir(`Cannot register multiple overloads of a function with the same number of arguments (${r})!`),f[e].overloadTable[r]=t):(f[e]=t,void 0!==r&&(f[e].numArguments=r))};function Sr(e,t,r,n,i,o,a,s){this.name=e,this.constructor=t,this.instancePrototype=r,this.rawDestructor=n,this.baseClass=i,this.getActualType=o,this.upcast=a,this.downcast=s,this.pureVirtualFunctions=[]}var Tr=(e,t,r)=>{for(;t!==r;)t.upcast||ir(`Expected null or instance of ${r.name}, got an instance of ${t.name}`),e=t.upcast(e),t=t.baseClass;return e};function Pr(e,t){if(null===t)return this.isReference&&ir(`null is not a valid ${this.name}`),0;t.$$||ir(`Cannot pass "${Gr(t)}" as a ${this.name}`),t.$$.ptr||ir(`Cannot pass deleted object as a pointer of type ${this.name}`);var r=t.$$.ptrType.registeredClass;return Tr(t.$$.ptr,r,this.registeredClass)}function Fr(e,t){var r;if(null===t)return this.isReference&&ir(`null is not a valid ${this.name}`),this.isSmartPointer?(r=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,r),r):0;t.$$||ir(`Cannot pass "${Gr(t)}" as a ${this.name}`),t.$$.ptr||ir(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&t.$$.ptrType.isConst&&ir(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);var n=t.$$.ptrType.registeredClass;if(r=Tr(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&ir("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:ir(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:r=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)r=t.$$.smartPtr;else{var i=t.clone();r=this.rawShare(r,Br.toHandle((()=>i.delete()))),null!==e&&e.push(this.rawDestructor,r)}break;default:ir("Unsupporting sharing policy")}return r}function Cr(e,t){if(null===t)return this.isReference&&ir(`null is not a valid ${this.name}`),0;t.$$||ir(`Cannot pass "${Gr(t)}" as a ${this.name}`),t.$$.ptr||ir(`Cannot pass deleted object as a pointer of type ${this.name}`),t.$$.ptrType.isConst&&ir(`Cannot convert argument of type ${t.$$.ptrType.name} to parameter type ${this.name}`);var r=t.$$.ptrType.registeredClass;return Tr(t.$$.ptr,r,this.registeredClass)}function Ar(e){return this.fromWireType(s()[e>>2])}function Nr(e,t,r,n,i,o,a,s,c,d,l){this.name=e,this.registeredClass=t,this.isReference=r,this.isConst=n,this.isSmartPointer=i,this.pointeeType=o,this.sharingPolicy=a,this.rawGetPointee=s,this.rawConstructor=c,this.rawShare=d,this.rawDestructor=l,i||void 0!==t.baseClass?this.toWireType=Fr:n?(this.toWireType=Pr,this.destructorFunction=null):(this.toWireType=Cr,this.destructorFunction=null)}var Dr,Or=(e,t,r)=>{f.hasOwnProperty(e)||er("Replacing nonexistant public symbol"),void 0!==f[e].overloadTable&&void 0!==r?f[e].overloadTable[r]=t:(f[e]=t,f[e].argCount=r)},Mr=(e,t)=>{var r=(e=nr(e)).includes("j")?((e,t)=>{Z(e.includes("j")||e.includes("p"),"getDynCaller should only be called with i64 sigs");var r=[];return function(){return r.length=0,Object.assign(r,arguments),((e,t,r)=>e.includes("j")?((e,t,r)=>{Z("dynCall_"+e in f,`bad function pointer type - dynCall function not found for sig '${e}'`),r&&r.length?Z(r.length===e.substring(1).replace(/j/g,"--").length):Z(1==e.length);var n=f["dynCall_"+e];return r&&r.length?n.apply(null,[t].concat(r)):n.call(null,t)})(e,t,r):(Z(Tt(t),`missing table entry in dynCall: ${t}`),Tt(t).apply(null,r)))(e,t,r)}})(e,t):Tt(t);return"function"!=typeof r&&ir(`unknown function pointer with signature ${e}: ${t}`),r},Ir=e=>{var t=Bn(e),r=nr(t);return $n(t),r},Rr=(e,t)=>{var r=[],n={};throw t.forEach((function e(t){n[t]||Jt[t]||(Qt[t]?Qt[t].forEach(e):(r.push(t),n[t]=!0))})),new Dr(`${e}: `+r.map(Ir).join([", "]))},$r=(e,t)=>{for(var r=[],n=0;n>2]);return r};function xr(e,t,r,n,i,o){var a=t.length;a<2&&ir("argTypes array size mismatch! Must at least get return value and 'this' types!"),Z(!o,"Async bindings are only supported with JSPI.");for(var s=null!==t[1]&&null!==r,c=!1,d=1;d0?", ":"")+u),h+=(l||o?"var rv = ":"")+"invoker(fn"+(u.length>0?", ":"")+u+");\n",c)h+="runDestructors(destructors);\n";else for(d=s?1:2;d(e instanceof Object||ir(`${r} with invalid "this": ${e}`),e instanceof t.registeredClass.constructor||ir(`${r} incompatible with "this" of type ${e.constructor.name}`),e.$$.ptr||ir(`cannot call emscripten binding method ${r} on deleted object`),Tr(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass));function jr(){this.allocated=[void 0],this.freelist=[]}var Wr=new jr,Ur=e=>{e>=Wr.reserved&&0==--Wr.get(e).refcount&&Wr.free(e)},Br={toValue:e=>(e||ir("Cannot use deleted val. handle = "+e),Wr.get(e).value),toHandle:e=>{switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return Wr.allocate({refcount:1,value:e})}}},zr=(e,t,c)=>{switch(t){case 1:return c?function(e){return this.fromWireType(r()[e>>0])}:function(e){return this.fromWireType(n()[e>>0])};case 2:return c?function(e){return this.fromWireType(i()[e>>1])}:function(e){return this.fromWireType(o()[e>>1])};case 4:return c?function(e){return this.fromWireType(a()[e>>2])}:function(e){return this.fromWireType(s()[e>>2])};default:throw new TypeError(`invalid integer width (${t}): ${e}`)}},Hr=(e,t)=>{var r=Jt[e];return void 0===r&&ir(t+" has unknown type "+Ir(e)),r},Gr=e=>{if(null===e)return"null";var t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():""+e},Yr=(e,t)=>{switch(t){case 4:return function(e){return this.fromWireType((x.buffer!=U.buffer&&X(),V)[e>>2])};case 8:return function(e){return this.fromWireType(c()[e>>3])};default:throw new TypeError(`invalid float width (${t}): ${e}`)}},Vr=(e,t,c)=>{switch(t){case 1:return c?e=>r()[e>>0]:e=>n()[e>>0];case 2:return c?e=>i()[e>>1]:e=>o()[e>>1];case 4:return c?e=>a()[e>>2]:e=>s()[e>>2];default:throw new TypeError(`invalid integer width (${t}): ${e}`)}},Kr="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,qr=(e,t)=>{Z(e%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");for(var r=e,a=r>>1,s=a+t/2;!(a>=s)&&o()[a];)++a;if((r=a<<1)-e>32&&Kr)return Kr.decode(n().slice(e,r));for(var c="",d=0;!(d>=t/2);++d){var l=i()[e+2*d>>1];if(0==l)break;c+=String.fromCharCode(l)}return c},Zr=(e,t,r)=>{if(Z(t%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),Z("number"==typeof r,"stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),void 0===r&&(r=2147483647),r<2)return 0;for(var n=t,o=(r-=2)<2*e.length?r/2:e.length,a=0;a>1]=s,Re(s),t+=2}return i()[t>>1]=0,Re(0),t-n},Xr=e=>2*e.length,Jr=(e,t)=>{Z(e%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");for(var r=0,n="";!(r>=t/4);){var i=a()[e+4*r>>2];if(0==i)break;if(++r,i>=65536){var o=i-65536;n+=String.fromCharCode(55296|o>>10,56320|1023&o)}else n+=String.fromCharCode(i)}return n},Qr=(e,t,r)=>{if(Z(t%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),Z("number"==typeof r,"stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),void 0===r&&(r=2147483647),r<4)return 0;for(var n=t,i=n+r-4,o=0;o=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&e.charCodeAt(++o)),a()[t>>2]=s,$e(s),(t+=4)+4>i)break}return a()[t>>2]=0,$e(0),t-n},en=e=>{for(var t=0,r=0;r=55296&&n<=57343&&++r,t+=4}return t},tn=e=>{if("function"==typeof Atomics.waitAsync){var t=Atomics.waitAsync(a(),e>>2,e);Z(t.async),t.value.then(rn);var r=e+128;Atomics.store(a(),r>>2,1)}};f.__emscripten_thread_mailbox_await=tn;var rn=()=>{var e=Wn();e&&(tn(e),(e=>{if(q)$("user callback triggered after runtime exited or application aborted. Ignoring.");else try{e(),(()=>{if(!se())try{S?Kn(W):vt(W)}catch(e){yt(e)}})()}catch(e){yt(e)}})((()=>qn())))};f.checkMailbox=rn;var nn=function(e,t){var r=arguments.length-2,n=arguments;return st((()=>{for(var i=r,o=ti(8*i),a=o>>3,s=0;se%4==0&&(e%100!=0||e%400==0),sn=[0,31,60,91,121,152,182,213,244,274,305,335],cn=[0,31,59,90,120,151,181,212,243,273,304,334],dn=(e,t)=>(Z(e==e>>>0||e==(0|e)),Z(t===(0|t)),t+2097152>>>0<4194305-!!e?(e>>>0)+4294967296*t:NaN);function ln(e,t,r,n,i,o,c,d){if(S)return nn(13,1,e,t,r,n,i,o,c,d);var l=dn(i,o);try{if(isNaN(l))return 61;var f=ht.getStreamFromFD(n),u=ut.mmap(f,e,l,t,r),h=u.ptr;return a()[c>>2]=u.allocated,$e(u.allocated),s()[d>>2]=h,0}catch(e){if(void 0===ut||"ErrnoError"!==e.name)throw e;return-e.errno}}function fn(e,t,r,n,i,o,a){if(S)return nn(14,1,e,t,r,n,i,o,a);var s=dn(o,a);try{if(isNaN(s))return 61;var c=ht.getStreamFromFD(i);2&r&&ht.doMsync(e,c,t,n,s),ut.munmap(c)}catch(e){if(void 0===ut||"ErrnoError"!==e.name)throw e;return-e.errno}}var un,hn=e=>{var t=qe(e)+1,r=In(t);return r&&ct(e,r,t),r};un=()=>performance.timeOrigin+performance.now();var mn=e=>{var t=x.buffer,r=(e-t.byteLength+65535)/65536;try{return x.grow(r),X(),1}catch(r){$(`growMemory: Attempted to grow heap from ${t.byteLength} bytes to ${e} bytes, but got error: ${r}`)}},pn={},vn=()=>{if(!vn.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:p||"./this.program"};for(var t in pn)void 0===pn[t]?delete e[t]:e[t]=pn[t];var r=[];for(var t in e)r.push(`${t}=${e[t]}`);vn.strings=r}return vn.strings},_n=function(e,t){if(S)return nn(15,1,e,t);var n=0;return vn().forEach(((i,o)=>{var a=t+n;s()[e+4*o>>2]=a,$e(a),((e,t)=>{for(var n=0;n>0]=e.charCodeAt(n),Ie(e.charCodeAt(n));r()[t>>0]=0,Ie(0)})(i,a),n+=i.length+1})),0},yn=function(e,t){if(S)return nn(16,1,e,t);var r=vn();s()[e>>2]=r.length,$e(r.length);var n=0;return r.forEach((e=>n+=e.length+1)),s()[t>>2]=n,$e(n),0};function gn(e){if(S)return nn(17,1,e);try{var t=ht.getStreamFromFD(e);return ut.close(t),0}catch(e){if(void 0===ut||"ErrnoError"!==e.name)throw e;return e.errno}}function wn(e,t){if(S)return nn(18,1,e,t);try{var n=ht.getStreamFromFD(e),o=n.tty?2:ut.isDir(n.mode)?3:ut.isLink(n.mode)?7:4;return r()[t>>0]=o,Ie(o),i()[t+2>>1]=0,Re(0),we=[0,(ge=0,+Math.abs(ge)>=1?ge>0?+Math.floor(ge/4294967296)>>>0:~~+Math.ceil((ge-+(~~ge>>>0))/4294967296)>>>0:0)],a()[t+8>>2]=we[0],a()[t+12>>2]=we[1],xe(0),we=[0,(ge=0,+Math.abs(ge)>=1?ge>0?+Math.floor(ge/4294967296)>>>0:~~+Math.ceil((ge-+(~~ge>>>0))/4294967296)>>>0:0)],a()[t+16>>2]=we[0],a()[t+20>>2]=we[1],xe(0),0}catch(e){if(void 0===ut||"ErrnoError"!==e.name)throw e;return e.errno}}function En(e,t,n,i){if(S)return nn(19,1,e,t,n,i);try{var o=((e,t,n,i)=>{for(var o=0,a=0;a>2],d=s()[t+4>>2];t+=8;var l=ut.read(e,r(),c,d,i);if(l<0)return-1;if(o+=l,l>2]=o,$e(o),0}catch(e){if(void 0===ut||"ErrnoError"!==e.name)throw e;return e.errno}}function bn(e,t,r,n,i){if(S)return nn(20,1,e,t,r,n,i);var o=dn(t,r);try{if(isNaN(o))return 61;var s=ht.getStreamFromFD(e);return ut.llseek(s,o,n),we=[s.position>>>0,(ge=s.position,+Math.abs(ge)>=1?ge>0?+Math.floor(ge/4294967296)>>>0:~~+Math.ceil((ge-+(~~ge>>>0))/4294967296)>>>0:0)],a()[i>>2]=we[0],a()[i+4>>2]=we[1],xe(s.position),s.getdents&&0===o&&0===n&&(s.getdents=null),0}catch(e){if(void 0===ut||"ErrnoError"!==e.name)throw e;return e.errno}}function kn(e,t,n,i){if(S)return nn(21,1,e,t,n,i);try{var o=((e,t,n,i)=>{for(var o=0,a=0;a>2],d=s()[t+4>>2];t+=8;var l=ut.write(e,r(),c,d,i);if(l<0)return-1;o+=l,void 0!==i&&(i+=l)}return o})(ht.getStreamFromFD(e),t,n);return s()[i>>2]=o,$e(o),0}catch(e){if(void 0===ut||"ErrnoError"!==e.name)throw e;return e.errno}}var Sn=[31,29,31,30,31,30,31,31,30,31,30,31],Tn=[31,28,31,30,31,30,31,31,30,31,30,31],Pn=(e,t,n,i)=>{var o=s()[i+40>>2],c={tm_sec:a()[i>>2],tm_min:a()[i+4>>2],tm_hour:a()[i+8>>2],tm_mday:a()[i+12>>2],tm_mon:a()[i+16>>2],tm_year:a()[i+20>>2],tm_wday:a()[i+24>>2],tm_yday:a()[i+28>>2],tm_isdst:a()[i+32>>2],tm_gmtoff:a()[i+36>>2],tm_zone:o?lt(o):""},d=lt(n),l={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var f in l)d=d.replace(new RegExp(f,"g"),l[f]);var u=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],h=["January","February","March","April","May","June","July","August","September","October","November","December"];function m(e,t,r){for(var n="number"==typeof e?e.toString():e||"";n.length0?1:0}var n;return 0===(n=r(e.getFullYear()-t.getFullYear()))&&0===(n=r(e.getMonth()-t.getMonth()))&&(n=r(e.getDate()-t.getDate())),n}function _(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function y(e){var t=((e,t)=>{for(var r=new Date(e.getTime());t>0;){var n=an(r.getFullYear()),i=r.getMonth(),o=(n?Sn:Tn)[i];if(!(t>o-r.getDate()))return r.setDate(r.getDate()+t),r;t-=o-r.getDate()+1,r.setDate(1),i<11?r.setMonth(i+1):(r.setMonth(0),r.setFullYear(r.getFullYear()+1))}return r})(new Date(e.tm_year+1900,0,1),e.tm_yday),r=new Date(t.getFullYear(),0,4),n=new Date(t.getFullYear()+1,0,4),i=_(r),o=_(n);return v(i,t)<=0?v(o,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var g={"%a":e=>u[e.tm_wday].substring(0,3),"%A":e=>u[e.tm_wday],"%b":e=>h[e.tm_mon].substring(0,3),"%B":e=>h[e.tm_mon],"%C":e=>p((e.tm_year+1900)/100|0,2),"%d":e=>p(e.tm_mday,2),"%e":e=>m(e.tm_mday,2," "),"%g":e=>y(e).toString().substring(2),"%G":e=>y(e),"%H":e=>p(e.tm_hour,2),"%I":e=>{var t=e.tm_hour;return 0==t?t=12:t>12&&(t-=12),p(t,2)},"%j":e=>p(e.tm_mday+((e,t)=>{for(var r=0,n=0;n<=t;r+=e[n++]);return r})(an(e.tm_year+1900)?Sn:Tn,e.tm_mon-1),3),"%m":e=>p(e.tm_mon+1,2),"%M":e=>p(e.tm_min,2),"%n":()=>"\n","%p":e=>e.tm_hour>=0&&e.tm_hour<12?"AM":"PM","%S":e=>p(e.tm_sec,2),"%t":()=>"\t","%u":e=>e.tm_wday||7,"%U":e=>{var t=e.tm_yday+7-e.tm_wday;return p(Math.floor(t/7),2)},"%V":e=>{var t=Math.floor((e.tm_yday+7-(e.tm_wday+6)%7)/7);if((e.tm_wday+371-e.tm_yday-2)%7<=2&&t++,t){if(53==t){var r=(e.tm_wday+371-e.tm_yday)%7;4==r||3==r&&an(e.tm_year)||(t=1)}}else{t=52;var n=(e.tm_wday+7-e.tm_yday-1)%7;(4==n||5==n&&an(e.tm_year%400-1))&&t++}return p(t,2)},"%w":e=>e.tm_wday,"%W":e=>{var t=e.tm_yday+7-(e.tm_wday+6)%7;return p(Math.floor(t/7),2)},"%y":e=>(e.tm_year+1900).toString().substring(2),"%Y":e=>e.tm_year+1900,"%z":e=>{var t=e.tm_gmtoff,r=t>=0;return t=(t=Math.abs(t)/60)/60*100+t%60,(r?"+":"-")+String("0000"+t).slice(-4)},"%Z":e=>e.tm_zone,"%%":()=>"%"};for(var f in d=d.replace(/%%/g,"\0\0"),g)d.includes(f)&&(d=d.replace(new RegExp(f,"g"),g[f](c)));var w,E,b=Xe(d=d.replace(/\0\0/g,"%"),!1);return b.length>t?0:(E=e,Z((w=b).length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),r().set(w,E),b.length-1)};gt.init();var Fn,Cn,An=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=ut.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n};Object.defineProperties(An.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return ut.isDir(this.mode)}},isDevice:{get:function(){return ut.isChrdev(this.mode)}}}),ut.FSNode=An,ut.createPreloadedFile=(e,t,r,n,i,o,a,s,c,d)=>{var l=t?Ge.resolve(ze.join2(e,t)):e,f=me(`cp ${l}`);function u(r){function u(r){d&&d(),s||((e,t,r,n,i,o)=>{ut.createDataFile(e,t,r,n,i,o)})(e,t,r,n,i,c),o&&o(),ve(f)}((e,t,r,n)=>{"undefined"!=typeof Browser&&Browser.init();var i=!1;return tt.forEach((o=>{i||o.canHandle(t)&&(o.handle(e,t,r,n),i=!0)})),i})(r,l,u,(()=>{a&&a(),ve(f)}))||u(r)}pe(f),"string"==typeof r?((e,t,r,n)=>{var i=me(`al ${e}`);b(e,(t=>{Z(t,`Loading data file "${e}" failed (no arrayBuffer).`),u(new Uint8Array(t)),i&&ve(i)}),(t=>{if(!r)throw`Loading data file "${e}" failed.`;r()})),i&&pe(i)})(r,0,a):u(r)},ut.staticInit(),f.FS_createPath=ut.createPath,f.FS_createDataFile=ut.createDataFile,f.FS_createPreloadedFile=ut.createPreloadedFile,f.FS_unlink=ut.unlink,f.FS_createLazyFile=ut.createLazyFile,f.FS_createDevice=ut.createDevice,g&&ot.staticInit(),it={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},Kt=f.InternalError=class extends Error{constructor(e){super(e),this.name="InternalError"}},(()=>{for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);qt=e})(),Zt=f.BindingError=class extends Error{constructor(e){super(e),this.name="BindingError"}},Object.assign(gr.prototype,{isAliasOf(e){if(!(this instanceof gr))return!1;if(!(e instanceof gr))return!1;var t=this.$$.ptrType.registeredClass,r=this.$$.ptr;e.$$=e.$$;for(var n=e.$$.ptrType.registeredClass,i=e.$$.ptr;t.baseClass;)r=t.upcast(r),t=t.baseClass;for(;n.baseClass;)i=n.upcast(i),n=n.baseClass;return t===n&&r===i},clone(){if(this.$$.ptr||sr(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e,t=yr(Object.create(Object.getPrototypeOf(this),{$$:{value:(e=this.$$,{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType})}}));return t.$$.count.value+=1,t.$$.deleteScheduled=!1,t},delete(){this.$$.ptr||sr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ir("Object already scheduled for deletion"),dr(this),lr(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||sr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ir("Object already scheduled for deletion"),hr.push(this),1===hr.length&&ar&&ar(mr),this.$$.deleteScheduled=!0,this}}),f.getInheritedInstanceCount=()=>Object.keys(pr).length,f.getLiveInheritedInstances=()=>{var e=[];for(var t in pr)pr.hasOwnProperty(t)&&e.push(pr[t]);return e},f.flushPendingDeletes=mr,f.setDelayFunction=e=>{ar=e,hr.length&&ar&&ar(mr)},Object.assign(Nr.prototype,{getPointee(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},destructor(e){this.rawDestructor&&this.rawDestructor(e)},argPackAdvance:8,readValueFromPointer:Ar,deleteObject(e){null!==e&&e.delete()},fromWireType:_r}),Dr=f.UnboundTypeError=(Fn=Error,(Cn=Er("UnboundTypeError",(function(e){this.name="UnboundTypeError",this.message=e;var t=new Error(e).stack;void 0!==t&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))}))).prototype=Object.create(Fn.prototype),Cn.prototype.constructor=Cn,Cn.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`},Cn),Object.assign(jr.prototype,{get(e){return Z(void 0!==this.allocated[e],`invalid handle: ${e}`),this.allocated[e]},has(e){return void 0!==this.allocated[e]},allocate(e){var t=this.freelist.pop()||this.allocated.length;return this.allocated[t]=e,t},free(e){Z(void 0!==this.allocated[e]),this.allocated[e]=void 0,this.freelist.push(e)}}),Wr.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Wr.reserved=Wr.allocated.length,f.count_emval_handles=()=>{for(var e=0,t=Wr.reserved;t{_e(`Assertion failed: ${lt(e)}, at: `+[t?lt(t):"unknown filename",r,n?lt(n):"unknown function"])},__cxa_begin_catch:e=>{var t=new Dt(e);return t.get_caught()||(t.set_caught(!0),At--),t.set_rethrown(!1),Ct.push(t),ii(t.excPtr),t.get_exception_ptr()},__cxa_current_primary_exception:()=>{if(!Ct.length)return 0;var e=Ct[Ct.length-1];return ii(e.excPtr),e.excPtr},__cxa_end_catch:()=>{Zn(0,0),Z(Ct.length>0);var e=Ct.pop();ni(e.excPtr),Nt=0},__cxa_find_matching_catch_2:()=>Ot([]),__cxa_find_matching_catch_3:e=>Ot([e]),__cxa_find_matching_catch_4:(e,t)=>Ot([e,t]),__cxa_find_matching_catch_5:(e,t,r)=>Ot([e,t,r]),__cxa_find_matching_catch_6:(e,t,r,n)=>Ot([e,t,r,n]),__cxa_find_matching_catch_7:(e,t,r,n,i)=>Ot([e,t,r,n,i]),__cxa_get_exception_ptr:e=>new Dt(e).get_exception_ptr(),__cxa_rethrow:()=>{var e=Ct.pop();e||_e("no exception to throw");var t=e.excPtr;throw e.get_rethrown()||(Ct.push(e),e.set_rethrown(!0),e.set_caught(!1),At++),Nt=new Pe(t)},__cxa_throw:(e,t,r)=>{throw new Dt(e).init(t,r),Nt=new Pe(e),At++,Nt},__cxa_uncaught_exceptions:()=>At,__emscripten_init_main_thread_js:e=>{zn(e,!y,1,!_,2097152,!1),gt.threadInitTLS()},__emscripten_thread_cleanup:e=>{S?postMessage({cmd:"cleanupThread",thread:e}):Ue(e)},__handle_stack_overflow:e=>{var t=Hn(),r=Gn();_e(`stack overflow (Attempt to set SP to ${_t(e)}, with stack limits [${_t(r)} - ${_t(t)}]). If you require more stack space build with -sSTACK_SIZE=`)},__pthread_create_js:It,__resumeException:e=>{throw Nt||(Nt=new Pe(e)),Nt},__syscall_fcntl64:Rt,__syscall_fstat64:$t,__syscall_ioctl:xt,__syscall_lstat64:Lt,__syscall_mkdirat:jt,__syscall_newfstatat:Wt,__syscall_openat:Ut,__syscall_rmdir:Bt,__syscall_stat64:zt,__syscall_unlinkat:Ht,_embind_finalize_value_array:e=>{var t=Gt[e];delete Gt[e];var r=t.elements,n=r.length,i=r.map((e=>e.getterReturnType)).concat(r.map((e=>e.setterArgumentType))),o=t.rawConstructor,a=t.rawDestructor;tr([e],i,(function(e){return r.forEach(((t,r)=>{var i=e[r],o=t.getter,a=t.getterContext,s=e[r+n],c=t.setter,d=t.setterContext;t.read=e=>i.fromWireType(o(a,e)),t.write=(e,t)=>{var r=[];c(d,e,s.toWireType(r,t)),Yt(r)}})),[{name:t.name,fromWireType:e=>{for(var t=new Array(n),i=0;i{if(n!==i.length)throw new TypeError(`Incorrect number of tuple elements for ${t.name}: expected=${n}, actual=${i.length}`);for(var s=o(),c=0;c{var t=rr[e];delete rr[e];var r=t.rawConstructor,n=t.rawDestructor,i=t.fields,o=i.map((e=>e.getterReturnType)).concat(i.map((e=>e.setterArgumentType)));tr([e],o,(e=>{var o={};return i.forEach(((t,r)=>{var n=t.fieldName,a=e[r],s=t.getter,c=t.getterContext,d=e[r+i.length],l=t.setter,f=t.setterContext;o[n]={read:e=>a.fromWireType(s(c,e)),write:(e,t)=>{var r=[];l(f,e,d.toWireType(r,t)),Yt(r)}}})),[{name:t.name,fromWireType:e=>{var t={};for(var r in o)t[r]=o[r].read(e);return n(e),t},toWireType:(e,t)=>{for(var i in o)if(!(i in t))throw new TypeError(`Missing field: "${i}"`);var a=r();for(i in o)o[i].write(a,t[i]);return null!==e&&e.push(n,a),a},argPackAdvance:8,readValueFromPointer:Vt,destructorFunction:n}]}))},_embind_register_bigint:(e,t,r,n,i)=>{},_embind_register_bool:(e,t,r,i)=>{or(e,{name:t=nr(t),fromWireType:function(e){return!!e},toWireType:function(e,t){return t?r:i},argPackAdvance:8,readValueFromPointer:function(e){return this.fromWireType(n()[e])},destructorFunction:null})},_embind_register_class:(e,t,r,n,i,o,a,s,c,d,l,f,u)=>{l=nr(l),o=Mr(i,o),s&&(s=Mr(a,s)),d&&(d=Mr(c,d)),u=Mr(f,u);var h=wr(l);kr(h,(function(){Rr(`Cannot construct ${l} due to unbound types`,[n])})),tr([e,t,r],n?[n]:[],(function(t){var r,i;t=t[0],i=n?(r=t.registeredClass).instancePrototype:gr.prototype;var a=Er(h,(function(){if(Object.getPrototypeOf(this)!==c)throw new Zt("Use 'new' to construct "+l);if(void 0===f.constructor_body)throw new Zt(l+" has no accessible constructor");var e=f.constructor_body[arguments.length];if(void 0===e)throw new Zt(`Tried to invoke ctor of ${l} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(f.constructor_body).toString()}) parameters instead!`);return e.apply(this,arguments)})),c=Object.create(i,{constructor:{value:a}});a.prototype=c;var f=new Sr(l,a,c,u,r,o,s,d);f.baseClass&&(void 0===f.baseClass.__derivedClasses&&(f.baseClass.__derivedClasses=[]),f.baseClass.__derivedClasses.push(f));var m=new Nr(l,f,!0,!1,!1),p=new Nr(l+"*",f,!1,!1,!1),v=new Nr(l+" const*",f,!1,!0,!1);return ur[e]={pointerType:p,constPointerType:v},Or(h,a),[m,p,v]}))},_embind_register_class_constructor:(e,t,r,n,i,o)=>{Z(t>0);var a=$r(t,r);i=Mr(n,i),tr([],[e],(function(e){var r=`constructor ${(e=e[0]).name}`;if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[t-1])throw new Zt(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${e.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return e.registeredClass.constructor_body[t-1]=()=>{Rr(`Cannot construct ${e.name} due to unbound types`,a)},tr([],a,(n=>(n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=xr(r,n,null,i,o),[]))),[]}))},_embind_register_class_function:(e,t,r,n,i,o,a,s,c)=>{var d=$r(r,n);t=nr(t),o=Mr(i,o),tr([],[e],(function(e){var n=`${(e=e[0]).name}.${t}`;function i(){Rr(`Cannot call ${n} due to unbound types`,d)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(t);var l=e.registeredClass.instancePrototype,f=l[t];return void 0===f||void 0===f.overloadTable&&f.className!==e.name&&f.argCount===r-2?(i.argCount=r-2,i.className=e.name,l[t]=i):(br(l,t,n),l[t].overloadTable[r-2]=i),tr([],d,(function(i){var s=xr(n,i,e,o,a,c);return void 0===l[t].overloadTable?(s.argCount=r-2,l[t]=s):l[t].overloadTable[r-2]=s,[]})),[]}))},_embind_register_class_property:(e,t,r,n,i,o,a,s,c,d)=>{t=nr(t),i=Mr(n,i),tr([],[e],(function(e){var n=`${(e=e[0]).name}.${t}`,l={get(){Rr(`Cannot access ${n} due to unbound types`,[r,a])},enumerable:!0,configurable:!0};return l.set=c?()=>Rr(`Cannot access ${n} due to unbound types`,[r,a]):e=>ir(n+" is a read-only property"),Object.defineProperty(e.registeredClass.instancePrototype,t,l),tr([],c?[r,a]:[r],(function(r){var a=r[0],l={get(){var t=Lr(this,e,n+" getter");return a.fromWireType(i(o,t))},enumerable:!0};if(c){c=Mr(s,c);var f=r[1];l.set=function(t){var r=Lr(this,e,n+" setter"),i=[];c(d,r,f.toWireType(i,t)),Yt(i)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,l),[]})),[]}))},_embind_register_emval:(e,t)=>{or(e,{name:t=nr(t),fromWireType:e=>{var t=Br.toValue(e);return Ur(e),t},toWireType:(e,t)=>Br.toHandle(t),argPackAdvance:8,readValueFromPointer:Vt,destructorFunction:null})},_embind_register_enum:(e,t,r,n)=>{function i(){}t=nr(t),i.values={},or(e,{name:t,constructor:i,fromWireType:function(e){return this.constructor.values[e]},toWireType:(e,t)=>t.value,argPackAdvance:8,readValueFromPointer:zr(t,r,n),destructorFunction:null}),kr(t,i)},_embind_register_enum_value:(e,t,r)=>{var n=Hr(e,"enum");t=nr(t);var i=n.constructor,o=Object.create(n.constructor.prototype,{value:{value:r},constructor:{value:Er(`${n.name}_${t}`,(function(){}))}});i.values[r]=o,i[t]=o},_embind_register_float:(e,t,r)=>{or(e,{name:t=nr(t),fromWireType:e=>e,toWireType:(e,t)=>{if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError(`Cannot convert ${Gr(t)} to ${this.name}`);return t},argPackAdvance:8,readValueFromPointer:Yr(t,r),destructorFunction:null})},_embind_register_function:(e,t,r,n,i,o,a)=>{var s=$r(t,r);e=nr(e),i=Mr(n,i),kr(e,(function(){Rr(`Cannot call ${e} due to unbound types`,s)}),t-1),tr([],s,(function(r){var n=[r[0],null].concat(r.slice(1));return Or(e,xr(e,n,null,i,o,a),t-1),[]}))},_embind_register_integer:(e,t,r,n,i)=>{t=nr(t),-1===i&&(i=4294967295);var o=e=>e;if(0===n){var a=32-8*r;o=e=>e<>>a}var s=t.includes("unsigned"),c=(e,r)=>{if("number"!=typeof e&&"boolean"!=typeof e)throw new TypeError(`Cannot convert "${Gr(e)}" to ${r}`);if(ei)throw new TypeError(`Passing a number "${Gr(e)}" from JS side to C/C++ side to an argument of type "${t}", which is outside the valid range [${n}, ${i}]!`)};or(e,{name:t,fromWireType:o,toWireType:s?function(e,t){return c(t,this.name),t>>>0}:function(e,t){return c(t,this.name),t},argPackAdvance:8,readValueFromPointer:Vr(t,r,0!==n),destructorFunction:null})},_embind_register_memory_view:(e,t,n)=>{var i=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function o(e){var t=s()[e>>2],n=s()[e+4>>2];return new i(r().buffer,n,t)}or(e,{name:n=nr(n),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},_embind_register_std_string:(e,t)=>{var r="std::string"===(t=nr(t));or(e,{name:t,fromWireType(e){var t,i=s()[e>>2],o=e+4;if(r)for(var a=o,c=0;c<=i;++c){var d=o+c;if(c==i||0==n()[d]){var l=lt(a,d-a);void 0===t?t=l:(t+=String.fromCharCode(0),t+=l),a=d+1}}else{var f=new Array(i);for(c=0;c>2]=i,$e(i),r&&o)ct(t,c,i+1);else if(o)for(var d=0;d255&&($n(c),ir("String has UTF-16 code units that do not fit in 8 bits")),n()[c+d]=l}else for(d=0;d{var n,i,a,c,d;r=nr(r),2===t?(n=qr,i=Zr,c=Xr,a=()=>o(),d=1):4===t&&(n=Jr,i=Qr,c=en,a=()=>s(),d=2),or(e,{name:r,fromWireType:e=>{for(var r,i=s()[e>>2],o=a(),c=e+4,l=0;l<=i;++l){var f=e+4+l*t;if(l==i||0==o[f>>d]){var u=n(c,f-c);void 0===r?r=u:(r+=String.fromCharCode(0),r+=u),c=f+t}}return $n(e),r},toWireType:(e,n)=>{"string"!=typeof n&&ir(`Cannot pass non-string to C++ string type ${r}`);var o=c(n),a=In(4+o+t);return s()[a>>2]=o>>d,i(n,a+4,o+t),null!==e&&e.push($n,a),a},argPackAdvance:8,readValueFromPointer:Vt,destructorFunction(e){$n(e)}})},_embind_register_value_array:(e,t,r,n,i,o)=>{Gt[e]={name:nr(t),rawConstructor:Mr(r,n),rawDestructor:Mr(i,o),elements:[]}},_embind_register_value_array_element:(e,t,r,n,i,o,a,s,c)=>{Gt[e].elements.push({getterReturnType:t,getter:Mr(r,n),getterContext:i,setterArgumentType:o,setter:Mr(a,s),setterContext:c})},_embind_register_value_object:(e,t,r,n,i,o)=>{rr[e]={name:nr(t),rawConstructor:Mr(r,n),rawDestructor:Mr(i,o),fields:[]}},_embind_register_value_object_field:(e,t,r,n,i,o,a,s,c,d)=>{rr[e].fields.push({fieldName:nr(t),getterReturnType:r,getter:Mr(n,i),getterContext:o,setterArgumentType:a,setter:Mr(s,c),setterContext:d})},_embind_register_void:(e,t)=>{or(e,{isVoid:!0,name:t=nr(t),argPackAdvance:0,fromWireType:()=>{},toWireType:(e,t)=>{}})},_emscripten_get_now_is_monotonic:()=>!0,_emscripten_notify_mailbox_postmessage:(e,t,r)=>{if(e==t)setTimeout((()=>rn()));else if(S)postMessage({targetThread:e,cmd:"checkMailbox"});else{var n=gt.pthreads[e];if(!n)return void $(`Cannot send message to thread with ID ${e}, unknown thread ID!`);n.postMessage({cmd:"checkMailbox"})}},_emscripten_receive_on_main_thread_js:(e,t,r,n)=>{on.length=r;for(var i=n>>3,o=0;o{g&>.pthreads[e].ref()},_emscripten_throw_longjmp:()=>{throw new Te},_emval_decref:Ur,_emval_incref:e=>{e>4&&(Wr.get(e).refcount+=1)},_emval_take_value:(e,t)=>{var r=(e=Hr(e,"_emval_take_value")).readValueFromPointer(t);return Br.toHandle(r)},_localtime_js:function(e,t,r){var n=dn(e,t),i=new Date(1e3*n);a()[r>>2]=i.getSeconds(),$e(i.getSeconds()),a()[r+4>>2]=i.getMinutes(),$e(i.getMinutes()),a()[r+8>>2]=i.getHours(),$e(i.getHours()),a()[r+12>>2]=i.getDate(),$e(i.getDate()),a()[r+16>>2]=i.getMonth(),$e(i.getMonth()),a()[r+20>>2]=i.getFullYear()-1900,$e(i.getFullYear()-1900),a()[r+24>>2]=i.getDay(),$e(i.getDay());var o=0|(e=>(an(e.getFullYear())?sn:cn)[e.getMonth()]+e.getDate()-1)(i);a()[r+28>>2]=o,$e(o),a()[r+36>>2]=-60*i.getTimezoneOffset(),$e(-60*i.getTimezoneOffset());var s=new Date(i.getFullYear(),0,1),c=new Date(i.getFullYear(),6,1).getTimezoneOffset(),d=s.getTimezoneOffset(),l=0|(c!=d&&i.getTimezoneOffset()==Math.min(d,c));a()[r+32>>2]=l,$e(l)},_mmap_js:ln,_munmap_js:fn,_tzset_js:(e,t,r)=>{var n=(new Date).getFullYear(),i=new Date(n,0,1),o=new Date(n,6,1),c=i.getTimezoneOffset(),d=o.getTimezoneOffset(),l=Math.max(c,d);function f(e){var t=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}s()[e>>2]=60*l,$e(60*l),a()[t>>2]=Number(c!=d),$e(Number(c!=d));var u=f(i),h=f(o),m=hn(u),p=hn(h);d>2]=m,$e(m),s()[r+4>>2]=p,$e(p)):(s()[r>>2]=p,$e(p),s()[r+4>>2]=m,$e(m))},abort:()=>{_e("native code called abort()")},emscripten_check_blocking_allowed:()=>{g||y||Ft("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")},emscripten_date_now:()=>Date.now(),emscripten_exit_with_live_runtime:()=>{throw ae+=1,"unwind"},emscripten_get_heap_max:()=>2147483648,emscripten_get_now:un,emscripten_num_logical_cores:()=>g?require("os").cpus().length:navigator.hardwareConcurrency,emscripten_resize_heap:e=>{var t=n().length;if((e>>>=0)<=t)return!1;var r=2147483648;if(e>r)return $(`Cannot enlarge memory, requested ${e} bytes, but the limit is 2147483648 bytes!`),!1;for(var i,o=1;o<=4;o*=2){var a=t*(1+.2/o);a=Math.min(a,e+100663296);var s=Math.min(r,(i=Math.max(e,a))+(65536-i%65536)%65536),c=un(),d=mn(s);if(Le(`Heap resize call from ${t} to ${s} took ${un()-c} msecs. Success: ${!!d}`),d)return!0}return $(`Failed to grow the heap from ${t} bytes to ${s} bytes, not enough memory!`),!1},environ_get:_n,environ_sizes_get:yn,exit:vt,fd_close:gn,fd_fdstat_get:wn,fd_read:En,fd_seek:bn,fd_write:kn,getentropy:(e,t)=>(He(n().subarray(e,e+t)),0),invoke_dd:function(e,t){var r=Qn();try{return Tt(e)(t)}catch(e){if(ei(r),!(e instanceof Se))throw e;Zn(1,0)}},invoke_ddi:function(e,t,r){var n=Qn();try{return Tt(e)(t,r)}catch(e){if(ei(n),!(e instanceof Se))throw e;Zn(1,0)}},invoke_di:function(e,t){var r=Qn();try{return Tt(e)(t)}catch(e){if(ei(r),!(e instanceof Se))throw e;Zn(1,0)}},invoke_did:function(e,t,r){var n=Qn();try{return Tt(e)(t,r)}catch(e){if(ei(n),!(e instanceof Se))throw e;Zn(1,0)}},invoke_didi:function(e,t,r,n){var i=Qn();try{return Tt(e)(t,r,n)}catch(e){if(ei(i),!(e instanceof Se))throw e;Zn(1,0)}},invoke_dii:function(e,t,r){var n=Qn();try{return Tt(e)(t,r)}catch(e){if(ei(n),!(e instanceof Se))throw e;Zn(1,0)}},invoke_diidiiii:function(e,t,r,n,i,o,a,s){var c=Qn();try{return Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_diii:function(e,t,r,n){var i=Qn();try{return Tt(e)(t,r,n)}catch(e){if(ei(i),!(e instanceof Se))throw e;Zn(1,0)}},invoke_diiid:function(e,t,r,n,i){var o=Qn();try{return Tt(e)(t,r,n,i)}catch(e){if(ei(o),!(e instanceof Se))throw e;Zn(1,0)}},invoke_diiidi:function(e,t,r,n,i,o){var a=Qn();try{return Tt(e)(t,r,n,i,o)}catch(e){if(ei(a),!(e instanceof Se))throw e;Zn(1,0)}},invoke_diiif:function(e,t,r,n,i){var o=Qn();try{return Tt(e)(t,r,n,i)}catch(e){if(ei(o),!(e instanceof Se))throw e;Zn(1,0)}},invoke_diiii:function(e,t,r,n,i){var o=Qn();try{return Tt(e)(t,r,n,i)}catch(e){if(ei(o),!(e instanceof Se))throw e;Zn(1,0)}},invoke_diiiii:function(e,t,r,n,i,o){var a=Qn();try{return Tt(e)(t,r,n,i,o)}catch(e){if(ei(a),!(e instanceof Se))throw e;Zn(1,0)}},invoke_diiiiid:function(e,t,r,n,i,o,a){var s=Qn();try{return Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_diiiiii:function(e,t,r,n,i,o,a){var s=Qn();try{return Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_diiiiiii:function(e,t,r,n,i,o,a,s){var c=Qn();try{return Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_fi:function(e,t){var r=Qn();try{return Tt(e)(t)}catch(e){if(ei(r),!(e instanceof Se))throw e;Zn(1,0)}},invoke_fii:function(e,t,r){var n=Qn();try{return Tt(e)(t,r)}catch(e){if(ei(n),!(e instanceof Se))throw e;Zn(1,0)}},invoke_fiiffii:function(e,t,r,n,i,o,a){var s=Qn();try{return Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_fiii:function(e,t,r,n){var i=Qn();try{return Tt(e)(t,r,n)}catch(e){if(ei(i),!(e instanceof Se))throw e;Zn(1,0)}},invoke_fiiifif:function(e,t,r,n,i,o,a){var s=Qn();try{return Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_fiiii:function(e,t,r,n,i){var o=Qn();try{return Tt(e)(t,r,n,i)}catch(e){if(ei(o),!(e instanceof Se))throw e;Zn(1,0)}},invoke_fiiiif:function(e,t,r,n,i,o){var a=Qn();try{return Tt(e)(t,r,n,i,o)}catch(e){if(ei(a),!(e instanceof Se))throw e;Zn(1,0)}},invoke_fiiiifi:function(e,t,r,n,i,o,a){var s=Qn();try{return Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_fiiiifif:function(e,t,r,n,i,o,a,s){var c=Qn();try{return Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_i:function(e){var t=Qn();try{return Tt(e)()}catch(e){if(ei(t),!(e instanceof Se))throw e;Zn(1,0)}},invoke_idi:function(e,t,r){var n=Qn();try{return Tt(e)(t,r)}catch(e){if(ei(n),!(e instanceof Se))throw e;Zn(1,0)}},invoke_ii:function(e,t){var r=Qn();try{return Tt(e)(t)}catch(e){if(ei(r),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iid:function(e,t,r){var n=Qn();try{return Tt(e)(t,r)}catch(e){if(ei(n),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iidd:function(e,t,r,n){var i=Qn();try{return Tt(e)(t,r,n)}catch(e){if(ei(i),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiddd:function(e,t,r,n,i){var o=Qn();try{return Tt(e)(t,r,n,i)}catch(e){if(ei(o),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iidddd:function(e,t,r,n,i,o){var a=Qn();try{return Tt(e)(t,r,n,i,o)}catch(e){if(ei(a),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iidddii:function(e,t,r,n,i,o,a){var s=Qn();try{return Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iidddiii:function(e,t,r,n,i,o,a,s){var c=Qn();try{return Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiddiiiiii:function(e,t,r,n,i,o,a,s,c,d){var l=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c,d)}catch(e){if(ei(l),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iidii:function(e,t,r,n,i){var o=Qn();try{return Tt(e)(t,r,n,i)}catch(e){if(ei(o),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iif:function(e,t,r){var n=Qn();try{return Tt(e)(t,r)}catch(e){if(ei(n),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiffff:function(e,t,r,n,i,o){var a=Qn();try{return Tt(e)(t,r,n,i,o)}catch(e){if(ei(a),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiffffffff:function(e,t,r,n,i,o,a,s,c,d){var l=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c,d)}catch(e){if(ei(l),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iifffi:function(e,t,r,n,i,o){var a=Qn();try{return Tt(e)(t,r,n,i,o)}catch(e){if(ei(a),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iifiif:function(e,t,r,n,i,o){var a=Qn();try{return Tt(e)(t,r,n,i,o)}catch(e){if(ei(a),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iii:function(e,t,r){var n=Qn();try{return Tt(e)(t,r)}catch(e){if(ei(n),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiid:function(e,t,r,n){var i=Qn();try{return Tt(e)(t,r,n)}catch(e){if(ei(i),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiidd:function(e,t,r,n,i){var o=Qn();try{return Tt(e)(t,r,n,i)}catch(e){if(ei(o),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiidi:function(e,t,r,n,i){var o=Qn();try{return Tt(e)(t,r,n,i)}catch(e){if(ei(o),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiidii:function(e,t,r,n,i,o){var a=Qn();try{return Tt(e)(t,r,n,i,o)}catch(e){if(ei(a),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiif:function(e,t,r,n){var i=Qn();try{return Tt(e)(t,r,n)}catch(e){if(ei(i),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiffffffffffff:function(e,t,r,n,i,o,a,s,c,d,l,f,u,h,m){var p=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u,h,m)}catch(e){if(ei(p),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiifffii:function(e,t,r,n,i,o,a,s){var c=Qn();try{return Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiifffiii:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiii:function(e,t,r,n){var i=Qn();try{return Tt(e)(t,r,n)}catch(e){if(ei(i),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiid:function(e,t,r,n,i){var o=Qn();try{return Tt(e)(t,r,n,i)}catch(e){if(ei(o),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiidd:function(e,t,r,n,i,o){var a=Qn();try{return Tt(e)(t,r,n,i,o)}catch(e){if(ei(a),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiidii:function(e,t,r,n,i,o,a){var s=Qn();try{return Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiif:function(e,t,r,n,i){var o=Qn();try{return Tt(e)(t,r,n,i)}catch(e){if(ei(o),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiifff:function(e,t,r,n,i,o,a){var s=Qn();try{return Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiffff:function(e,t,r,n,i,o,a,s){var c=Qn();try{return Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiifffiff:function(e,t,r,n,i,o,a,s,c,d){var l=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c,d)}catch(e){if(ei(l),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiii:function(e,t,r,n,i){var o=Qn();try{return Tt(e)(t,r,n,i)}catch(e){if(ei(o),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiid:function(e,t,r,n,i,o){var a=Qn();try{return Tt(e)(t,r,n,i,o)}catch(e){if(ei(a),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiidd:function(e,t,r,n,i,o,a){var s=Qn();try{return Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiddd:function(e,t,r,n,i,o,a,s){var c=Qn();try{return Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiidddi:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiidi:function(e,t,r,n,i,o,a){var s=Qn();try{return Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiif:function(e,t,r,n,i,o){var a=Qn();try{return Tt(e)(t,r,n,i,o)}catch(e){if(ei(a),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiifff:function(e,t,r,n,i,o,a,s){var c=Qn();try{return Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiifffffffffffffff:function(e,t,r,n,i,o,a,s,c,d,l,f,u,h,m,p,v,_,y,g){var w=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u,h,m,p,v,_,y,g)}catch(e){if(ei(w),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiifi:function(e,t,r,n,i,o,a){var s=Qn();try{return Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiifiii:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiii:function(e,t,r,n,i,o){var a=Qn();try{return Tt(e)(t,r,n,i,o)}catch(e){if(ei(a),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiid:function(e,t,r,n,i,o,a){var s=Qn();try{return Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiidd:function(e,t,r,n,i,o,a,s){var c=Qn();try{return Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiidi:function(e,t,r,n,i,o,a,s){var c=Qn();try{return Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiidiiidiiiiidiiiii:function(e,t,r,n,i,o,a,s,c,d,l,f,u,h,m,p,v,_,y,g,w,E){var b=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u,h,m,p,v,_,y,g,w,E)}catch(e){if(ei(b),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiif:function(e,t,r,n,i,o,a){var s=Qn();try{return Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiff:function(e,t,r,n,i,o,a,s){var c=Qn();try{return Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiifff:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiffi:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiii:function(e,t,r,n,i,o,a){var s=Qn();try{return Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiid:function(e,t,r,n,i,o,a,s){var c=Qn();try{return Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiidd:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiiddi:function(e,t,r,n,i,o,a,s,c,d){var l=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c,d)}catch(e){if(ei(l),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiidi:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiif:function(e,t,r,n,i,o,a,s){var c=Qn();try{return Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiiff:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiiffi:function(e,t,r,n,i,o,a,s,c,d){var l=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c,d)}catch(e){if(ei(l),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiifi:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiifif:function(e,t,r,n,i,o,a,s,c,d){var l=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c,d)}catch(e){if(ei(l),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiifiiiiiii:function(e,t,r,n,i,o,a,s,c,d,l,f,u,h,m){var p=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u,h,m)}catch(e){if(ei(p),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiii:function(e,t,r,n,i,o,a,s){var c=Qn();try{return Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiiid:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiiiddii:function(e,t,r,n,i,o,a,s,c,d,l,f){var u=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c,d,l,f)}catch(e){if(ei(u),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiiiff:function(e,t,r,n,i,o,a,s,c,d){var l=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c,d)}catch(e){if(ei(l),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiiiffffffffffff:function(e,t,r,n,i,o,a,s,c,d,l,f,u,h,m,p,v,_,y,g){var w=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u,h,m,p,v,_,y,g)}catch(e){if(ei(w),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiiifffi:function(e,t,r,n,i,o,a,s,c,d,l,f){var u=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c,d,l,f)}catch(e){if(ei(u),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiiii:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiiiii:function(e,t,r,n,i,o,a,s,c,d){var l=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c,d)}catch(e){if(ei(l),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,d,l){var f=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c,d,l)}catch(e){if(ei(f),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,d,l,f){var u=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c,d,l,f)}catch(e){if(ei(u),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,d,l,f,u){var h=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u)}catch(e){if(ei(h),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,d,l,f,u,h,m,p){var v=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u,h,m,p)}catch(e){if(ei(v),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiiiiiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,d,l,f,u,h,m,p,v){var _=Qn();try{return Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u,h,m,p,v)}catch(e){if(ei(_),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iiiiij:function(e,t,r,n,i,o,a){var s=Qn();try{return mi(e,t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_iij:function(e,t,r,n){var i=Qn();try{return ui(e,t,r,n)}catch(e){if(ei(i),!(e instanceof Se))throw e;Zn(1,0)}},invoke_j:function(e){var t=Qn();try{return hi(e)}catch(e){if(ei(t),!(e instanceof Se))throw e;Zn(1,0)}},invoke_ji:function(e,t){var r=Qn();try{return li(e,t)}catch(e){if(ei(r),!(e instanceof Se))throw e;Zn(1,0)}},invoke_jiiii:function(e,t,r,n,i){var o=Qn();try{return pi(e,t,r,n,i)}catch(e){if(ei(o),!(e instanceof Se))throw e;Zn(1,0)}},invoke_v:function(e){var t=Qn();try{Tt(e)()}catch(e){if(ei(t),!(e instanceof Se))throw e;Zn(1,0)}},invoke_vi:function(e,t){var r=Qn();try{Tt(e)(t)}catch(e){if(ei(r),!(e instanceof Se))throw e;Zn(1,0)}},invoke_vid:function(e,t,r){var n=Qn();try{Tt(e)(t,r)}catch(e){if(ei(n),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viddddd:function(e,t,r,n,i,o,a){var s=Qn();try{Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_vidddddd:function(e,t,r,n,i,o,a,s){var c=Qn();try{Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viddddddi:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_vidi:function(e,t,r,n){var i=Qn();try{Tt(e)(t,r,n)}catch(e){if(ei(i),!(e instanceof Se))throw e;Zn(1,0)}},invoke_vidii:function(e,t,r,n,i){var o=Qn();try{Tt(e)(t,r,n,i)}catch(e){if(ei(o),!(e instanceof Se))throw e;Zn(1,0)}},invoke_vif:function(e,t,r){var n=Qn();try{Tt(e)(t,r)}catch(e){if(ei(n),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viff:function(e,t,r,n){var i=Qn();try{Tt(e)(t,r,n)}catch(e){if(ei(i),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viffiiiiii:function(e,t,r,n,i,o,a,s,c,d){var l=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d)}catch(e){if(ei(l),!(e instanceof Se))throw e;Zn(1,0)}},invoke_vifi:function(e,t,r,n){var i=Qn();try{Tt(e)(t,r,n)}catch(e){if(ei(i),!(e instanceof Se))throw e;Zn(1,0)}},invoke_vifif:function(e,t,r,n,i){var o=Qn();try{Tt(e)(t,r,n,i)}catch(e){if(ei(o),!(e instanceof Se))throw e;Zn(1,0)}},invoke_vifii:function(e,t,r,n,i){var o=Qn();try{Tt(e)(t,r,n,i)}catch(e){if(ei(o),!(e instanceof Se))throw e;Zn(1,0)}},invoke_vii:function(e,t,r){var n=Qn();try{Tt(e)(t,r)}catch(e){if(ei(n),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viid:function(e,t,r,n){var i=Qn();try{Tt(e)(t,r,n)}catch(e){if(ei(i),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viidd:function(e,t,r,n,i){var o=Qn();try{Tt(e)(t,r,n,i)}catch(e){if(ei(o),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viidi:function(e,t,r,n,i){var o=Qn();try{Tt(e)(t,r,n,i)}catch(e){if(ei(o),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viidiiiddi:function(e,t,r,n,i,o,a,s,c,d){var l=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d)}catch(e){if(ei(l),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viidiiii:function(e,t,r,n,i,o,a,s){var c=Qn();try{Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viif:function(e,t,r,n){var i=Qn();try{Tt(e)(t,r,n)}catch(e){if(ei(i),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiff:function(e,t,r,n,i){var o=Qn();try{Tt(e)(t,r,n,i)}catch(e){if(ei(o),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viifff:function(e,t,r,n,i,o){var a=Qn();try{Tt(e)(t,r,n,i,o)}catch(e){if(ei(a),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiffff:function(e,t,r,n,i,o,a){var s=Qn();try{Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viifffffff:function(e,t,r,n,i,o,a,s,c,d){var l=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d)}catch(e){if(ei(l),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viifffi:function(e,t,r,n,i,o,a){var s=Qn();try{Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viifffii:function(e,t,r,n,i,o,a,s){var c=Qn();try{Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viifffiii:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viifi:function(e,t,r,n,i){var o=Qn();try{Tt(e)(t,r,n,i)}catch(e){if(ei(o),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viififfffii:function(e,t,r,n,i,o,a,s,c,d,l){var f=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l)}catch(e){if(ei(f),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viififi:function(e,t,r,n,i,o,a){var s=Qn();try{Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viifiii:function(e,t,r,n,i,o,a){var s=Qn();try{Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viifiiifff:function(e,t,r,n,i,o,a,s,c,d){var l=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d)}catch(e){if(ei(l),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viii:function(e,t,r,n){var i=Qn();try{Tt(e)(t,r,n)}catch(e){if(ei(i),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiid:function(e,t,r,n,i){var o=Qn();try{Tt(e)(t,r,n,i)}catch(e){if(ei(o),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiddddd:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiddddi:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiidi:function(e,t,r,n,i,o){var a=Qn();try{Tt(e)(t,r,n,i,o)}catch(e){if(ei(a),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiidiiiii:function(e,t,r,n,i,o,a,s,c,d){var l=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d)}catch(e){if(ei(l),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiif:function(e,t,r,n,i){var o=Qn();try{Tt(e)(t,r,n,i)}catch(e){if(ei(o),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiff:function(e,t,r,n,i,o){var a=Qn();try{Tt(e)(t,r,n,i,o)}catch(e){if(ei(a),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiifff:function(e,t,r,n,i,o,a){var s=Qn();try{Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiffff:function(e,t,r,n,i,o,a,s){var c=Qn();try{Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiifffffffffffff:function(e,t,r,n,i,o,a,s,c,d,l,f,u,h,m,p,v){var _=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u,h,m,p,v)}catch(e){if(ei(_),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiifffiff:function(e,t,r,n,i,o,a,s,c,d){var l=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d)}catch(e){if(ei(l),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiifffii:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiffi:function(e,t,r,n,i,o,a){var s=Qn();try{Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiffii:function(e,t,r,n,i,o,a,s){var c=Qn();try{Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiffiiiii:function(e,t,r,n,i,o,a,s,c,d,l){var f=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l)}catch(e){if(ei(f),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiffiiiiii:function(e,t,r,n,i,o,a,s,c,d,l,f){var u=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l,f)}catch(e){if(ei(u),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiifi:function(e,t,r,n,i,o){var a=Qn();try{Tt(e)(t,r,n,i,o)}catch(e){if(ei(a),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiifii:function(e,t,r,n,i,o,a){var s=Qn();try{Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiii:function(e,t,r,n,i){var o=Qn();try{Tt(e)(t,r,n,i)}catch(e){if(ei(o),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiid:function(e,t,r,n,i,o){var a=Qn();try{Tt(e)(t,r,n,i,o)}catch(e){if(ei(a),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiidd:function(e,t,r,n,i,o,a){var s=Qn();try{Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiidi:function(e,t,r,n,i,o,a){var s=Qn();try{Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiif:function(e,t,r,n,i,o){var a=Qn();try{Tt(e)(t,r,n,i,o)}catch(e){if(ei(a),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiifff:function(e,t,r,n,i,o,a,s){var c=Qn();try{Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiifffi:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiifffiiii:function(e,t,r,n,i,o,a,s,c,d,l,f){var u=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l,f)}catch(e){if(ei(u),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiffii:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiffiii:function(e,t,r,n,i,o,a,s,c,d){var l=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d)}catch(e){if(ei(l),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiifi:function(e,t,r,n,i,o,a){var s=Qn();try{Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiifiii:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiii:function(e,t,r,n,i,o){var a=Qn();try{Tt(e)(t,r,n,i,o)}catch(e){if(ei(a),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiid:function(e,t,r,n,i,o,a){var s=Qn();try{Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiidd:function(e,t,r,n,i,o,a,s){var c=Qn();try{Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiidddi:function(e,t,r,n,i,o,a,s,c,d){var l=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d)}catch(e){if(ei(l),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiddi:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiddii:function(e,t,r,n,i,o,a,s,c,d){var l=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d)}catch(e){if(ei(l),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiddiiiiiiii:function(e,t,r,n,i,o,a,s,c,d,l,f,u,h,m,p){var v=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u,h,m,p)}catch(e){if(ei(v),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiidi:function(e,t,r,n,i,o,a,s){var c=Qn();try{Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiif:function(e,t,r,n,i,o,a){var s=Qn();try{Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiffi:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiffii:function(e,t,r,n,i,o,a,s,c,d){var l=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d)}catch(e){if(ei(l),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiffiii:function(e,t,r,n,i,o,a,s,c,d,l){var f=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l)}catch(e){if(ei(f),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiii:function(e,t,r,n,i,o,a){var s=Qn();try{Tt(e)(t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiid:function(e,t,r,n,i,o,a,s){var c=Qn();try{Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiidd:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiddddii:function(e,t,r,n,i,o,a,s,c,d,l,f,u){var h=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u)}catch(e){if(ei(h),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiidddi:function(e,t,r,n,i,o,a,s,c,d,l){var f=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l)}catch(e){if(ei(f),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiddii:function(e,t,r,n,i,o,a,s,c,d,l){var f=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l)}catch(e){if(ei(f),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiidi:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiffi:function(e,t,r,n,i,o,a,s,c,d){var l=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d)}catch(e){if(ei(l),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiffiii:function(e,t,r,n,i,o,a,s,c,d,l,f){var u=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l,f)}catch(e){if(ei(u),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiii:function(e,t,r,n,i,o,a,s){var c=Qn();try{Tt(e)(t,r,n,i,o,a,s)}catch(e){if(ei(c),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiid:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiiddddd:function(e,t,r,n,i,o,a,s,c,d,l,f,u){var h=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u)}catch(e){if(ei(h),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiif:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiiffiiii:function(e,t,r,n,i,o,a,s,c,d,l,f,u,h){var m=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u,h)}catch(e){if(ei(m),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiifi:function(e,t,r,n,i,o,a,s,c,d){var l=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d)}catch(e){if(ei(l),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiii:function(e,t,r,n,i,o,a,s,c){var d=Qn();try{Tt(e)(t,r,n,i,o,a,s,c)}catch(e){if(ei(d),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiiidd:function(e,t,r,n,i,o,a,s,c,d,l){var f=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l)}catch(e){if(ei(f),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiiidddii:function(e,t,r,n,i,o,a,s,c,d,l,f,u,h){var m=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u,h)}catch(e){if(ei(m),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiiiddi:function(e,t,r,n,i,o,a,s,c,d,l,f){var u=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l,f)}catch(e){if(ei(u),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiiidi:function(e,t,r,n,i,o,a,s,c,d,l){var f=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l)}catch(e){if(ei(f),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiiifiifififiii:function(e,t,r,n,i,o,a,s,c,d,l,f,u,h,m,p,v,_,y,g){var w=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u,h,m,p,v,_,y,g)}catch(e){if(ei(w),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiiifiii:function(e,t,r,n,i,o,a,s,c,d,l,f,u){var h=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u)}catch(e){if(ei(h),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiiii:function(e,t,r,n,i,o,a,s,c,d){var l=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d)}catch(e){if(ei(l),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiiiii:function(e,t,r,n,i,o,a,s,c,d,l){var f=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l)}catch(e){if(ei(f),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiiiiid:function(e,t,r,n,i,o,a,s,c,d,l,f){var u=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l,f)}catch(e){if(ei(u),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiiiiiddii:function(e,t,r,n,i,o,a,s,c,d,l,f,u,h,m){var p=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u,h,m)}catch(e){if(ei(p),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,d,l,f){var u=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l,f)}catch(e){if(ei(u),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,d,l,f,u){var h=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u)}catch(e){if(ei(h),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiiiiiiiffi:function(e,t,r,n,i,o,a,s,c,d,l,f,u,h,m,p){var v=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u,h,m,p)}catch(e){if(ei(v),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,d,l,f,u,h){var m=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u,h)}catch(e){if(ei(m),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiiiiiiiid:function(e,t,r,n,i,o,a,s,c,d,l,f,u,h,m){var p=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u,h,m)}catch(e){if(ei(p),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,d,l,f,u,h,m){var p=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u,h,m)}catch(e){if(ei(p),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,d,l,f,u,h,m,p){var v=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u,h,m,p)}catch(e){if(ei(v),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,d,l,f,u,h,m,p,v){var _=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u,h,m,p,v)}catch(e){if(ei(_),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viiiiiiiiiiiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,d,l,f,u,h,m,p,v,_,y,g,w){var E=Qn();try{Tt(e)(t,r,n,i,o,a,s,c,d,l,f,u,h,m,p,v,_,y,g,w)}catch(e){if(ei(E),!(e instanceof Se))throw e;Zn(1,0)}},invoke_viijii:function(e,t,r,n,i,o,a){var s=Qn();try{fi(e,t,r,n,i,o,a)}catch(e){if(ei(s),!(e instanceof Se))throw e;Zn(1,0)}},llvm_eh_typeid_for:e=>e,memory:x||f.wasmMemory,strftime:Pn,strftime_l:(e,t,r,n,i)=>Pn(e,t,r,n)},Mn=function(){var e={env:On,wasi_snapshot_preview1:On};function t(e,t){var r,n;return Mn=e.exports,n=Mn._emscripten_tls_init,gt.tlsInitFunctions.push(n),Z(kt=Mn.__indirect_function_table,"table not found in wasm exports"),r=Mn.__wasm_call_ctors,re.unshift(r),L=t,ve("wasm-instantiate"),Mn}pe("wasm-instantiate");var r,n,i,o,a=f;if(f.instantiateWasm)try{return f.instantiateWasm(e,t)}catch(e){$(`Module.instantiateWasm callback failed with error: ${e}`),l(e)}return(r=I,n=ye,i=e,o=function(e){Z(f===a,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),a=null,t(e.instance,e.module)},r||"function"!=typeof WebAssembly.instantiateStreaming||Ee(n)||be(n)||g||"function"!=typeof fetch?Ce(n,i,o):fetch(n,{credentials:"same-origin"}).then((e=>WebAssembly.instantiateStreaming(e,i).then(o,(function(e){return $(`wasm streaming compile failed: ${e}`),$("falling back to ArrayBuffer instantiation"),Ce(n,i,o)}))))).catch(l),{}}(),In=(ke("__wasm_call_ctors"),ke("__cxa_free_exception"),ke("malloc")),Rn=ke("__errno_location"),$n=f._free=ke("free"),xn=f._fflush=ke("fflush"),Ln=f._main=ke("__main_argc_argv"),jn=ke("setTempRet0"),Wn=(f.__ZN5boost13serialization16singleton_module8get_lockEv=ke("_ZN5boost13serialization16singleton_module8get_lockEv"),f.__ZNK5boost7archive6detail11oserializerINS0_13text_oarchiveEN5RDKit9MolBundleEE16save_object_dataERNS1_14basic_oarchiveEPKv=ke("_ZNK5boost7archive6detail11oserializerINS0_13text_oarchiveEN5RDKit9MolBundleEE16save_object_dataERNS1_14basic_oarchiveEPKv"),f.__ZNK5boost7archive6detail11oserializerINS0_13text_oarchiveENSt3__26vectorINS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEENS9_ISB_EEEEE16save_object_dataERNS1_14basic_oarchiveEPKv=ke("_ZNK5boost7archive6detail11oserializerINS0_13text_oarchiveENSt3__26vectorINS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEENS9_ISB_EEEEE16save_object_dataERNS1_14basic_oarchiveEPKv"),f.__ZNK5boost7archive6detail11iserializerINS0_13text_iarchiveEN5RDKit9MolBundleEE16load_object_dataERNS1_14basic_iarchiveEPvj=ke("_ZNK5boost7archive6detail11iserializerINS0_13text_iarchiveEN5RDKit9MolBundleEE16load_object_dataERNS1_14basic_iarchiveEPvj"),f.__ZNK5boost7archive6detail11iserializerINS0_13text_iarchiveENSt3__26vectorINS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEENS9_ISB_EEEEE16load_object_dataERNS1_14basic_iarchiveEPvj=ke("_ZNK5boost7archive6detail11iserializerINS0_13text_iarchiveENSt3__26vectorINS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEENS9_ISB_EEEEE16load_object_dataERNS1_14basic_iarchiveEPvj"),f.__emscripten_tls_init=ke("_emscripten_tls_init"),f._pthread_self=()=>(Wn=f._pthread_self=Mn.pthread_self)()),Un=ke("emscripten_builtin_memalign"),Bn=ke("__getTypeName"),zn=(f.__embind_initialize_bindings=ke("_embind_initialize_bindings"),f.__emscripten_thread_init=ke("_emscripten_thread_init")),Hn=(f.__emscripten_thread_crashed=ke("_emscripten_thread_crashed"),ke("emscripten_main_thread_process_queued_calls"),ke("emscripten_main_runtime_thread_id"),()=>(Hn=Mn.emscripten_stack_get_base)()),Gn=()=>(Gn=Mn.emscripten_stack_get_end)(),Yn=ke("_emscripten_run_on_main_thread_js"),Vn=ke("_emscripten_thread_free_data"),Kn=f.__emscripten_thread_exit=ke("_emscripten_thread_exit"),qn=f.__emscripten_check_mailbox=ke("_emscripten_check_mailbox"),Zn=ke("setThrew"),Xn=()=>(Xn=Mn.emscripten_stack_init)(),Jn=(e,t)=>(Jn=Mn.emscripten_stack_set_limits)(e,t),Qn=ke("stackSave"),ei=ke("stackRestore"),ti=ke("stackAlloc"),ri=()=>(ri=Mn.emscripten_stack_get_current)(),ni=ke("__cxa_decrement_exception_refcount"),ii=ke("__cxa_increment_exception_refcount"),oi=ke("__cxa_demangle"),ai=f.___get_exception_message=ke("__get_exception_message"),si=ke("__cxa_can_catch"),ci=ke("__cxa_is_pointer_type"),di=f.___set_stack_limits=ke("__set_stack_limits"),li=(f.dynCall_jii=ke("dynCall_jii"),f.dynCall_viij=ke("dynCall_viij"),f.dynCall_ji=ke("dynCall_ji")),fi=f.dynCall_viijii=ke("dynCall_viijii"),ui=f.dynCall_iij=ke("dynCall_iij"),hi=(f.dynCall_jiji=ke("dynCall_jiji"),f.dynCall_j=ke("dynCall_j")),mi=f.dynCall_iiiiij=ke("dynCall_iiiiij"),pi=f.dynCall_jiiii=ke("dynCall_jiiii");function vi(e=m){if(!(le>0)){if(S||(Z(!S),Xn(),Q()),S)return d(f),ce(),void startWorker(f);!function(){if(Z(!S),f.preRun)for("function"==typeof f.preRun&&(f.preRun=[f.preRun]);f.preRun.length;)de(f.preRun.shift());wt(te)}(),le>0||(f.setStatus?(f.setStatus("Running..."),setTimeout((function(){setTimeout((function(){f.setStatus("")}),1),t()}),1)):t(),ee())}function t(){Nn||(Nn=!0,f.calledRun=!0,q||(ce(),ee(),S||wt(ne),d(f),f.onRuntimeInitialized&&f.onRuntimeInitialized(),_i&&function(e=[]){Z(0==le,'cannot call main when async dependencies remain! (listen on Module["onRuntimeInitialized"])'),Z(0==te.length,"cannot call main when preRun functions remain to be called");var t=Ln;e.unshift(p);var r=e.length,n=ti(4*(r+1)),i=n;e.forEach((e=>{s()[i>>2]=dt(e),i+=4})),s()[i>>2]=0;try{var o=t(r,n);return pt(o,!0),o}catch(e){return yt(e)}}(e),function(){if(ee(),!S){if(f.postRun)for("function"==typeof f.postRun&&(f.postRun=[f.postRun]);f.postRun.length;)e=f.postRun.shift(),ie.unshift(e);var e;wt(ie)}}()))}}if(f.dynCall_iiiiijj=ke("dynCall_iiiiijj"),f.dynCall_iiiiiijj=ke("dynCall_iiiiiijj"),f.addRunDependency=pe,f.removeRunDependency=ve,f.FS_createPath=ut.createPath,f.FS_createLazyFile=ut.createLazyFile,f.FS_createDevice=ut.createDevice,f.keepRuntimeAlive=se,f.wasmMemory=x,f.ExitStatus=je,f.FS_createPreloadedFile=ut.createPreloadedFile,f.FS=ut,f.FS_createDataFile=ut.createDataFile,f.FS_unlink=ut.unlink,f.PThread=gt,["writeI53ToI64","writeI53ToI64Clamped","writeI53ToI64Signaling","writeI53ToU64Clamped","writeI53ToU64Signaling","readI53FromI64","readI53FromU64","convertI32PairToI53","convertU32PairToI53","inetPton4","inetNtop4","inetPton6","inetNtop6","readSockaddr","writeSockaddr","getHostByName","getCallstack","emscriptenLog","convertPCtoSourceLocation","readEmAsmArgs","jstoi_q","jstoi_s","listenOnce","autoResumeAudioContext","runtimeKeepalivePop","safeSetTimeout","asmjsMangle","getNativeTypeSize","STACK_SIZE","STACK_ALIGN","POINTER_SIZE","ASSERTIONS","getCFunc","ccall","cwrap","uleb128Encode","sigToWasmTypes","generateFuncType","convertJsFunctionToWasm","getEmptyTableSlot","updateTableMap","getFunctionAddress","addFunction","removeFunction","reallyNegative","unSign","strLen","reSign","formatString","intArrayToString","AsciiToString","registerKeyEventCallback","maybeCStringToJsString","findEventTarget","findCanvasEventTarget","getBoundingClientRect","fillMouseEventData","registerMouseEventCallback","registerWheelEventCallback","registerUiEventCallback","registerFocusEventCallback","fillDeviceOrientationEventData","registerDeviceOrientationEventCallback","fillDeviceMotionEventData","registerDeviceMotionEventCallback","screenOrientation","fillOrientationChangeEventData","registerOrientationChangeEventCallback","fillFullscreenChangeEventData","registerFullscreenChangeEventCallback","JSEvents_requestFullscreen","JSEvents_resizeCanvasForFullscreen","registerRestoreOldStyle","hideEverythingExceptGivenElement","restoreHiddenElements","setLetterbox","softFullscreenResizeWebGLRenderTarget","doRequestFullscreen","fillPointerlockChangeEventData","registerPointerlockChangeEventCallback","registerPointerlockErrorEventCallback","requestPointerLock","fillVisibilityChangeEventData","registerVisibilityChangeEventCallback","registerTouchEventCallback","fillGamepadEventData","registerGamepadEventCallback","registerBeforeUnloadEventCallback","fillBatteryEventData","battery","registerBatteryEventCallback","setCanvasElementSizeCallingThread","setCanvasElementSizeMainThread","setCanvasElementSize","getCanvasSizeCallingThread","getCanvasSizeMainThread","getCanvasElementSize","checkWasiClock","wasiRightsToMuslOFlags","wasiOFlagsToMuslOFlags","createDyncallWrapper","setImmediateWrapped","clearImmediateWrapped","polyfillSetImmediate","getPromise","makePromise","idsToPromises","makePromiseCallback","setMainLoop","getSocketFromFD","getSocketAddress","FS_mkdirTree","_setNetworkCallback","heapObjectForWebGLType","heapAccessShiftForWebGLHeap","webgl_enable_ANGLE_instanced_arrays","webgl_enable_OES_vertex_array_object","webgl_enable_WEBGL_draw_buffers","webgl_enable_WEBGL_multi_draw","emscriptenWebGLGet","computeUnpackAlignedImageSize","colorChannelsInGlTextureFormat","emscriptenWebGLGetTexPixelData","__glGenObject","emscriptenWebGLGetUniform","webglGetUniformLocation","webglPrepareUniformLocationsBeforeFirstUse","webglGetLeftBracePos","emscriptenWebGLGetVertexAttrib","__glGetActiveAttribOrUniform","writeGLArray","emscripten_webgl_destroy_context_before_on_calling_thread","registerWebGlEventCallback","runAndAbortIfError","SDL_unicode","SDL_ttfContext","SDL_audio","ALLOC_NORMAL","ALLOC_STACK","allocate","writeStringToMemory","writeAsciiToMemory","registerInheritedInstance","unregisterInheritedInstance","getStringOrSymbol","craftEmvalAllocator","emval_get_global","emval_lookupTypes","emval_allocateDestructors","emval_addMethodCaller"].forEach((function(e){"undefined"==typeof globalThis||Object.getOwnPropertyDescriptor(globalThis,e)||Object.defineProperty(globalThis,e,{configurable:!0,get(){var t="`"+e+"` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line",r=e;r.startsWith("_")||(r="$"+e),t+=" (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE='"+r+"')",Ne(e)&&(t+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"),Ft(t)}}),Oe(e)})),["run","addOnPreRun","addOnInit","addOnPreMain","addOnExit","addOnPostRun","FS_createFolder","FS_createLink","FS_readFile","out","err","callMain","abort","wasmExports","stackAlloc","stackSave","stackRestore","getTempRet0","setTempRet0","GROWABLE_HEAP_I8","GROWABLE_HEAP_U8","GROWABLE_HEAP_I16","GROWABLE_HEAP_U16","GROWABLE_HEAP_I32","GROWABLE_HEAP_U32","GROWABLE_HEAP_F32","GROWABLE_HEAP_F64","writeStackCookie","checkStackCookie","convertI32PairToI53Checked","ptrToString","zeroMemory","exitJS","getHeapMax","growMemory","ENV","setStackLimits","MONTH_DAYS_REGULAR","MONTH_DAYS_LEAP","MONTH_DAYS_REGULAR_CUMULATIVE","MONTH_DAYS_LEAP_CUMULATIVE","isLeapYear","ydayFromDate","arraySum","addDays","ERRNO_CODES","ERRNO_MESSAGES","setErrNo","DNS","Protocols","Sockets","initRandomFill","randomFill","timers","warnOnce","UNWIND_CACHE","readEmAsmArgsArray","getExecutableName","dynCallLegacy","getDynCaller","dynCall","handleException","runtimeKeepalivePush","callUserCallback","maybeExit","asyncLoad","alignMemory","mmapAlloc","handleAllocatorInit","HandleAllocator","wasmTable","freeTableIndexes","functionsInTableMap","setValue","getValue","PATH","PATH_FS","UTF8Decoder","UTF8ArrayToString","UTF8ToString","stringToUTF8Array","stringToUTF8","lengthBytesUTF8","intArrayFromString","stringToAscii","UTF16Decoder","UTF16ToString","stringToUTF16","lengthBytesUTF16","UTF32ToString","stringToUTF32","lengthBytesUTF32","stringToNewUTF8","stringToUTF8OnStack","writeArrayToMemory","JSEvents","specialHTMLTargets","currentFullscreenStrategy","restoreOldWindowedStyle","demangle","demangleAll","jsStackTrace","stackTrace","getEnvStrings","doReadv","doWritev","promiseMap","uncaughtExceptionCount","exceptionLast","exceptionCaught","ExceptionInfo","findMatchingCatch","getExceptionMessageCommon","incrementExceptionRefcount","decrementExceptionRefcount","getExceptionMessage","Browser","wget","SYSCALLS","preloadPlugins","FS_modeStringToFlags","FS_getMode","FS_stdin_getChar_buffer","FS_stdin_getChar","MEMFS","TTY","PIPEFS","SOCKFS","tempFixedLengthArray","miniTempWebGLFloatBuffers","miniTempWebGLIntBuffers","GL","emscripten_webgl_power_preferences","AL","GLUT","EGL","GLEW","IDBStore","SDL","SDL_gfx","allocateUTF8","allocateUTF8OnStack","terminateWorker","killThread","cleanupThread","registerTLSInit","cancelThread","spawnThread","exitOnMainThread","proxyToMainThread","proxiedJSCallArgs","invokeEntryPoint","checkMailbox","InternalError","BindingError","throwInternalError","throwBindingError","registeredTypes","awaitingDependencies","typeDependencies","tupleRegistrations","structRegistrations","sharedRegisterType","whenDependentTypesAreResolved","embind_charCodes","embind_init_charCodes","readLatin1String","getTypeName","heap32VectorToArray","requireRegisteredType","UnboundTypeError","PureVirtualError","GenericWireTypeSize","init_embind","throwUnboundTypeError","ensureOverloadTable","exposePublicSymbol","replacePublicSymbol","extendError","createNamedFunction","embindRepr","registeredInstances","getBasestPointer","getInheritedInstance","getInheritedInstanceCount","getLiveInheritedInstances","registeredPointers","registerType","integerReadValueFromPointer","enumReadValueFromPointer","floatReadValueFromPointer","simpleReadValueFromPointer","readPointer","runDestructors","newFunc","craftInvokerFunction","embind__requireFunction","genericPointerToWireType","constNoSmartPtrRawPointerToWireType","nonConstNoSmartPtrRawPointerToWireType","init_RegisteredPointer","RegisteredPointer","RegisteredPointer_fromWireType","runDestructor","releaseClassHandle","finalizationRegistry","detachFinalizer_deps","detachFinalizer","attachFinalizer","makeClassHandle","init_ClassHandle","ClassHandle","throwInstanceAlreadyDeleted","deletionQueue","flushPendingDeletes","delayFunction","setDelayFunction","RegisteredClass","shallowCopyInternalPointer","downcastPointer","upcastPointer","validateThis","char_0","char_9","makeLegalFunctionName","emval_handles","emval_symbols","init_emval","count_emval_handles","Emval","emval_newers","emval_methodCallers","emval_registeredMethods","IDBFS","NODEFS"].forEach(Oe),ue=function e(){Nn||vi(),Nn||(ue=e)},f.preInit)for("function"==typeof f.preInit&&(f.preInit=[f.preInit]);f.preInit.length>0;)f.preInit.pop()();var _i=!0;return f.noInitialRun&&(_i=!1),vi(),t.ready}})();"object"==typeof exports&&"object"==typeof module?module.exports=createRSRModule:"function"==typeof define&&define.amd&&define([],(()=>createRSRModule)); \ No newline at end of file diff --git a/webserver/public/baby-gru/wasm/moorhen.wasm b/webapp/public/baby-gru/wasm/moorhen.wasm similarity index 54% rename from webserver/public/baby-gru/wasm/moorhen.wasm rename to webapp/public/baby-gru/wasm/moorhen.wasm index 5855cc968..015da786d 100644 Binary files a/webserver/public/baby-gru/wasm/moorhen.wasm and b/webapp/public/baby-gru/wasm/moorhen.wasm differ diff --git a/webapp/public/baby-gru/wasm/moorhen.worker.js b/webapp/public/baby-gru/wasm/moorhen.worker.js new file mode 100644 index 000000000..913422f88 --- /dev/null +++ b/webapp/public/baby-gru/wasm/moorhen.worker.js @@ -0,0 +1 @@ +"use strict";var Module={},ENVIRONMENT_IS_NODE="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node;if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads"),parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",(e=>onmessage({data:e})));var fs=require("fs");Object.assign(global,{self:global,require,Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:e=>(0,eval)(fs.readFileSync(e,"utf8")+"//# sourceURL="+e),postMessage:e=>parentPort.postMessage(e),performance:global.performance||{now:Date.now}})}var initializedJS=!1;function assert(e,r){e||abort("Assertion failed: "+r)}function threadPrintErr(){var e=Array.prototype.slice.call(arguments).join(" ");ENVIRONMENT_IS_NODE?fs.writeSync(2,e+"\n"):console.error(e)}function threadAlert(){var e=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:e,threadId:Module._pthread_self()})}var out=()=>{throw"out() is not defined in worker.js."},err=threadPrintErr;self.alert=threadAlert;var dbg=threadPrintErr;function handleMessage(e){try{if("load"===e.data.cmd){let a=[];self.onmessage=e=>a.push(e),self.startWorker=e=>{Module=e,postMessage({cmd:"loaded"});for(let e of a)handleMessage(e);self.onmessage=handleMessage},Module.wasmModule=e.data.wasmModule;for(const r of e.data.handlers)Module[r]=(...e)=>{postMessage({cmd:"callHandler",handler:r,args:e})};if(Module.wasmMemory=e.data.wasmMemory,Module.buffer=Module.wasmMemory.buffer,Module.workerID=e.data.workerID,Module.ENVIRONMENT_IS_PTHREAD=!0,"string"==typeof e.data.urlOrBlob)importScripts(e.data.urlOrBlob);else{var r=URL.createObjectURL(e.data.urlOrBlob);importScripts(r),URL.revokeObjectURL(r)}createRSRModule(Module)}else if("run"===e.data.cmd){Module.__emscripten_thread_init(e.data.pthread_ptr,0,0,1),Module.__emscripten_thread_mailbox_await(e.data.pthread_ptr),assert(e.data.pthread_ptr),Module.establishStackSpace(),Module.PThread.receiveObjectTransfer(e.data),Module.PThread.threadInitTLS(),initializedJS||(Module.__embind_initialize_bindings(),initializedJS=!0);try{Module.invokeEntryPoint(e.data.start_routine,e.data.arg)}catch(e){if("unwind"!=e)throw e}}else"cancel"===e.data.cmd?Module._pthread_self()&&Module.__emscripten_thread_exit(-1):"setimmediate"===e.data.target||("checkMailbox"===e.data.cmd?initializedJS&&Module.checkMailbox():e.data.cmd&&(err(`worker.js received unknown command ${e.data.cmd}`),err(e.data)))}catch(e){throw err(`worker.js onmessage() captured an uncaught exception: ${e}`),e&&e.stack&&err(e.stack),Module.__emscripten_thread_crashed&&Module.__emscripten_thread_crashed(),e}}Module.instantiateWasm=(e,r)=>{var a=Module.wasmModule;return Module.wasmModule=null,r(new WebAssembly.Instance(a,e))},self.onunhandledrejection=e=>{throw e.reason||e},self.onmessage=handleMessage; \ No newline at end of file diff --git a/webserver/public/baby-gru/wasm/mtz_arraybuffer_worker.js b/webapp/public/baby-gru/wasm/mtz_arraybuffer_worker.js similarity index 100% rename from webserver/public/baby-gru/wasm/mtz_arraybuffer_worker.js rename to webapp/public/baby-gru/wasm/mtz_arraybuffer_worker.js diff --git a/webserver/public/baby-gru/wasm/mtz_worker.js b/webapp/public/baby-gru/wasm/mtz_worker.js similarity index 100% rename from webserver/public/baby-gru/wasm/mtz_worker.js rename to webapp/public/baby-gru/wasm/mtz_worker.js diff --git a/webserver/public/baby-gru/wasm/nma_worker.js b/webapp/public/baby-gru/wasm/nma_worker.js similarity index 100% rename from webserver/public/baby-gru/wasm/nma_worker.js rename to webapp/public/baby-gru/wasm/nma_worker.js diff --git a/webserver/public/baby-gru/wasm/papaparse.min.js b/webapp/public/baby-gru/wasm/papaparse.min.js similarity index 100% rename from webserver/public/baby-gru/wasm/papaparse.min.js rename to webapp/public/baby-gru/wasm/papaparse.min.js diff --git a/webserver/public/baby-gru/wasm/pdb_worker.js b/webapp/public/baby-gru/wasm/pdb_worker.js similarity index 100% rename from webserver/public/baby-gru/wasm/pdb_worker.js rename to webapp/public/baby-gru/wasm/pdb_worker.js diff --git a/webserver/public/baby-gru/wasm/smiles_to_pdb_worker.js b/webapp/public/baby-gru/wasm/smiles_to_pdb_worker.js similarity index 100% rename from webserver/public/baby-gru/wasm/smiles_to_pdb_worker.js rename to webapp/public/baby-gru/wasm/smiles_to_pdb_worker.js diff --git a/webserver/public/baby-gru/wasm/superpose_worker.js b/webapp/public/baby-gru/wasm/superpose_worker.js similarity index 100% rename from webserver/public/baby-gru/wasm/superpose_worker.js rename to webapp/public/baby-gru/wasm/superpose_worker.js diff --git a/webapp/public/baby-gru/wasm/web_example.js b/webapp/public/baby-gru/wasm/web_example.js new file mode 100644 index 000000000..e25b7db12 --- /dev/null +++ b/webapp/public/baby-gru/wasm/web_example.js @@ -0,0 +1 @@ +var createCCP4Module=(()=>{var e="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0;return"undefined"!=typeof __filename&&(e=e||__filename),function(r={}){function t(){return I.buffer!=W.buffer&&K(),W}function n(){return I.buffer!=W.buffer&&K(),j}function o(){return I.buffer!=W.buffer&&K(),U}function a(){return I.buffer!=W.buffer&&K(),B}function i(){return I.buffer!=W.buffer&&K(),z}function s(){return I.buffer!=W.buffer&&K(),H}function l(){return I.buffer!=W.buffer&&K(),Y}var c,d,u=r;u.ready=new Promise(((e,r)=>{c=e,d=r})),["_main","__emscripten_thread_init","__emscripten_thread_exit","__emscripten_thread_crashed","__emscripten_thread_mailbox_await","__emscripten_tls_init","_pthread_self","checkMailbox","establishStackSpace","invokeEntryPoint","PThread","getExceptionMessage","___get_exception_message","_free","___indirect_function_table","_fflush","__embind_initialize_bindings","__emscripten_check_mailbox","___set_stack_limits","onRuntimeInitialized"].forEach((e=>{Object.getOwnPropertyDescriptor(u.ready,e)||Object.defineProperty(u.ready,e,{get:()=>pe("You are getting "+e+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js"),set:()=>pe("You are setting "+e+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")})}));var f=Object.assign({},u),h="./this.program",p=(e,r)=>{throw r},m="object"==typeof window,v="function"==typeof importScripts,y="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,g=!m&&!y&&!v;if(u.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)");var _,w,E,b=u.ENVIRONMENT_IS_PTHREAD||!1,T="";function k(e){return u.locateFile?u.locateFile(e,T):T+e}if(y){if("undefined"==typeof process||!process.release||"node"!==process.release.name)throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");var S=process.versions.node,P=S.split(".").slice(0,3);if((P=1e4*P[0]+100*P[1]+1*P[2].split("-")[0])<16e4)throw new Error("This emscripten-generated code requires node v16.0.0 (detected v"+S+")");var C=require("fs"),A=require("path");let e;T=v?A.dirname(T)+"/":__dirname+"/",_=(e,r)=>(e=_e(e)?new URL(e):A.normalize(e),C.readFileSync(e,r?void 0:"utf8")),E=e=>{var r=_(e,!0);return r.buffer||(r=new Uint8Array(r)),q(r.buffer),r},w=(e,r,t,n=!0)=>{e=_e(e)?new URL(e):A.normalize(e),C.readFile(e,n?void 0:"utf8",((e,o)=>{e?t(e):r(n?o.buffer:o)}))},!u.thisProgram&&process.argv.length>1&&(h=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),p=(e,r)=>{throw process.exitCode=e,r},u.inspect=()=>"[Emscripten Module object]";try{e=require("worker_threads")}catch(e){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),e}global.Worker=e.Worker}else if(g){if("object"==typeof process&&"function"==typeof require||"object"==typeof window||"function"==typeof importScripts)throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");"undefined"!=typeof read&&(_=read),E=e=>{if("function"==typeof readbuffer)return new Uint8Array(readbuffer(e));let r=read(e,"binary");return q("object"==typeof r),r},w=(e,r,t)=>{setTimeout((()=>r(E(e))))},"undefined"==typeof clearTimeout&&(globalThis.clearTimeout=e=>{}),"undefined"==typeof setTimeout&&(globalThis.setTimeout=e=>"function"==typeof e?e():pe()),"undefined"!=typeof scriptArgs&&scriptArgs,"function"==typeof quit&&(p=(e,r)=>{throw setTimeout((()=>{if(!(r instanceof Ie)){let e=r;r&&"object"==typeof r&&r.stack&&(e=[r,r.stack]),$(`exiting due to exception: ${e}`)}quit(e)})),r}),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)}else{if(!m&&!v)throw new Error("environment detection error");if(v?T=self.location.href:"undefined"!=typeof document&&document.currentScript&&(T=document.currentScript.src),e&&(T=e),T=0!==T.indexOf("blob:")?T.substr(0,T.replace(/[?#].*/,"").lastIndexOf("/")+1):"","object"!=typeof window&&"function"!=typeof importScripts)throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");y||(_=e=>{var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},v&&(E=e=>{var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),w=(e,r,t)=>{var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=()=>{200==n.status||0==n.status&&n.response?r(n.response):t()},n.onerror=t,n.send(null)})}y&&"undefined"==typeof performance&&(global.performance=require("perf_hooks").performance);var F=console.log.bind(console),O=console.error.bind(console);y&&(F=(...e)=>C.writeSync(1,e.join(" ")+"\n"),O=(...e)=>C.writeSync(2,e.join(" ")+"\n"));var D,M,N=u.print||F,$=u.printErr||O;Object.assign(u,f),f=null,D="fetchSettings",Object.getOwnPropertyDescriptor(u,D)&&pe(`\`Module.${D}\` was supplied but \`${D}\` not included in INCOMING_MODULE_JS_API`),u.arguments&&u.arguments,Se("arguments","arguments_"),u.thisProgram&&(h=u.thisProgram),Se("thisProgram","thisProgram"),u.quit&&(p=u.quit),Se("quit","quit_"),q(void 0===u.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),q(void 0===u.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),q(void 0===u.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),q(void 0===u.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),q(void 0===u.read,"Module.read option was removed (modify read_ in JS)"),q(void 0===u.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),q(void 0===u.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),q(void 0===u.setWindowTitle,"Module.setWindowTitle option was removed (modify emscripten_set_window_title in JS)"),q(void 0===u.TOTAL_MEMORY,"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),Se("asm","wasmExports"),Se("read","read_"),Se("readAsync","readAsync"),Se("readBinary","readBinary"),Se("setWindowTitle","setWindowTitle"),q(m||v||y,"Pthreads do not work in this environment yet (need Web Workers, or an alternative to them)"),q(!g,"shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable."),u.wasmBinary&&(M=u.wasmBinary),Se("wasmBinary","wasmBinary");var I,R,x=u.noExitRuntime||!0;Se("noExitRuntime","noExitRuntime"),"object"!=typeof WebAssembly&&pe("no native wasm support detected");var L,W,j,U,B,z,H,G,Y,V=!1;function q(e,r){e||pe("Assertion failed"+(r?": "+r:""))}function K(){var e=I.buffer;u.HEAP8=W=new Int8Array(e),u.HEAP16=U=new Int16Array(e),u.HEAPU8=j=new Uint8Array(e),u.HEAPU16=B=new Uint16Array(e),u.HEAP32=z=new Int32Array(e),u.HEAPU32=H=new Uint32Array(e),u.HEAPF32=G=new Float32Array(e),u.HEAPF64=Y=new Float64Array(e)}q(!u.STACK_SIZE,"STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time"),q("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&null!=Int32Array.prototype.subarray&&null!=Int32Array.prototype.set,"JS engine does not provide full typed array support");var X=u.INITIAL_MEMORY||16777216;if(Se("INITIAL_MEMORY","INITIAL_MEMORY"),q(X>=5242880,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+X+"! (STACK_SIZE=5242880)"),b)I=u.wasmMemory;else if(u.wasmMemory)I=u.wasmMemory;else if(!((I=new WebAssembly.Memory({initial:X/65536,maximum:32768,shared:!0})).buffer instanceof SharedArrayBuffer))throw $("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),y&&$("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");function J(){var e=Fn();q(0==(3&e)),0==e&&(e+=4),s()[e>>2]=34821223,Me(34821223),s()[e+4>>2]=2310721022,Me(2310721022),s()[0]=1668509029,Me(1668509029)}function Z(){if(!V){var e=Fn();0==e&&(e+=4);var r=s()[e>>2],t=s()[e+4>>2];34821223==r&&2310721022==t||pe(`Stack overflow! Stack cookie has been overwritten at ${dr(e)}, expected hex dwords 0x89BACDFE and 0x2135467, but received ${dr(t)} ${dr(r)}`),1668509029!=s()[0]&&pe("Runtime error: The application has corrupted its heap memory area (address zero)!")}}K(),q((X=I.buffer.byteLength)%65536==0),function(){var e=new Int16Array(1),r=new Int8Array(e.buffer);if(e[0]=25459,115!==r[0]||99!==r[1])throw"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)"}();var Q=[],ee=[],re=[],te=!1,ne=0;function oe(){return x||ne>0}function ae(){q(!te),te=!0,b||(Z(),_r(),u.noFSInit||ir.init.initialized||ir.init(),ir.ignorePermissions=!1,Ve.init(),hr(ee))}function ie(e){Q.unshift(e)}q(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),q(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),q(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),q(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var se=0,le=null,ce=null,de={};function ue(e){for(var r=e;;){if(!de[e])return e;e=r+Math.random()}}function fe(e){se++,u.monitorRunDependencies&&u.monitorRunDependencies(se),e?(q(!de[e]),de[e]=1,null===le&&"undefined"!=typeof setInterval&&(le=setInterval((()=>{if(V)return clearInterval(le),void(le=null);var e=!1;for(var r in de)e||(e=!0,$("still waiting on run dependencies:")),$(`dependency: ${r}`);e&&$("(end of list)")}),1e4))):$("warning: run dependency added without ID")}function he(e){if(se--,u.monitorRunDependencies&&u.monitorRunDependencies(se),e?(q(de[e]),delete de[e]):$("warning: run dependency removed without ID"),0==se&&(null!==le&&(clearInterval(le),le=null),ce)){var r=ce;ce=null,r()}}function pe(e){u.onAbort&&u.onAbort(e),$(e="Aborted("+e+")"),V=!0,L=1;var r=new WebAssembly.RuntimeError(e);throw d(r),r}var me,ve,ye;function ge(e){return e.startsWith("data:application/octet-stream;base64,")}function _e(e){return e.startsWith("file://")}function we(e){return function(){q(te,`native function \`${e}\` called before runtime initialization`);var r=_n[e];return q(r,`exported native function \`${e}\` not found`),r.apply(null,arguments)}}class Ee extends Error{}class be extends Ee{constructor(e){super(e),this.excPtr=e;const r=mr(e);this.name=r[0],this.message=r[1]}}function Te(e){if(e==me&&M)return new Uint8Array(M);if(E)return E(e);throw"both async and sync fetching of the wasm failed"}function ke(e,r,t){return function(e){if(!M&&(m||v)){if("function"==typeof fetch&&!_e(e))return fetch(e,{credentials:"same-origin"}).then((r=>{if(!r.ok)throw"failed to load wasm binary file at '"+e+"'";return r.arrayBuffer()})).catch((()=>Te(e)));if(w)return new Promise(((r,t)=>{w(e,(e=>r(new Uint8Array(e))),t)}))}return Promise.resolve().then((()=>Te(e)))}(e).then((e=>WebAssembly.instantiate(e,r))).then((e=>e)).then(t,(e=>{$(`failed to asynchronously prepare wasm: ${e}`),_e(me)&&$(`warning: Loading from a file URI (${me}) is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing`),pe(e)}))}function Se(e,r,t=!0){Object.getOwnPropertyDescriptor(u,e)||Object.defineProperty(u,e,{configurable:!0,get(){pe(`\`Module.${e}\` has been replaced by \`${r}\``+(t?" (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)":""))}})}function Pe(e){return"FS_createPath"===e||"FS_createDataFile"===e||"FS_createPreloadedFile"===e||"FS_unlink"===e||"addRunDependency"===e||"FS_createLazyFile"===e||"FS_createDevice"===e||"removeRunDependency"===e}function Ce(e,r){"undefined"!=typeof globalThis&&Object.defineProperty(globalThis,e,{configurable:!0,get(){wr("`"+e+"` is not longer defined by emscripten. "+r)}})}function Ae(e){Object.getOwnPropertyDescriptor(u,e)||Object.defineProperty(u,e,{configurable:!0,get(){var r="'"+e+"' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the Emscripten FAQ)";Pe(e)&&(r+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"),pe(r)}})}function Fe(e,r,t,n){q(Number.isInteger(Number(e)),"attempt to write non-integer ("+e+") into integer heap"),q(e<=n,"value ("+e+") too large to write as "+r+"-bit value"),q(e>=t,"value ("+e+") too small to write as "+r+"-bit value")}ge(me="web_example.wasm")||(me=k(me)),Ce("buffer","Please use HEAP8.buffer or wasmMemory.buffer"),Ce("asm","Please use wasmExports instead");var Oe=e=>Fe(e,8,-127,255),De=e=>Fe(e,16,-32767,65535),Me=e=>Fe(e,32,-2147483647,4294967295),Ne=e=>Fe(e,64,-0x8000000000000000,0x10000000000000000);function $e(e){y?C.writeSync(2,Array.from(arguments).join(" ")+"\n"):console.warn.apply(console,arguments)}function Ie(e){this.name="ExitStatus",this.message=`Program terminated with exit(${e})`,this.status=e}var Re=e=>{e.terminate(),e.onmessage=r=>{var t=r.data.cmd;$(`received "${t}" command from terminated worker: ${e.workerID}`)}},xe=e=>{q(!b,"Internal Error! cleanupThread() can only ever be called from main application thread!"),q(e,"Internal Error! Null pthread_ptr in cleanupThread!");var r=fr.pthreads[e];q(r),fr.returnWorkerToPool(r)},Le={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,r)=>{for(var t=0,n=e.length-1;n>=0;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),t++):t&&(e.splice(n,1),t--)}if(r)for(;t;t--)e.unshift("..");return e},normalize:e=>{var r=Le.isAbs(e),t="/"===e.substr(-1);return(e=Le.normalizeArray(e.split("/").filter((e=>!!e)),!r).join("/"))||r||(e="."),e&&t&&(e+="/"),(r?"/":"")+e},dirname:e=>{var r=Le.splitPath(e),t=r[0],n=r[1];return t||n?(n&&(n=n.substr(0,n.length-1)),t+n):"."},basename:e=>{if("/"===e)return"/";var r=(e=(e=Le.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===r?e:e.substr(r+1)},join:function(){var e=Array.prototype.slice.call(arguments);return Le.normalize(e.join("/"))},join2:(e,r)=>Le.normalize(e+"/"+r)},We=e=>(We=(()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return e=>(e.set(crypto.getRandomValues(new Uint8Array(e.byteLength))),e);if(y)try{var e=require("crypto");if(e.randomFillSync)return r=>e.randomFillSync(r);var r=e.randomBytes;return e=>(e.set(r(e.byteLength)),e)}catch(e){}pe("no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: (array) => { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };")})())(e),je={resolve:function(){for(var e="",r=!1,t=arguments.length-1;t>=-1&&!r;t--){var n=t>=0?arguments[t]:ir.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,r=Le.isAbs(n)}return(r?"/":"")+(e=Le.normalizeArray(e.split("/").filter((e=>!!e)),!r).join("/"))||"."},relative:(e,r)=>{function t(e){for(var r=0;r=0&&""===e[t];t--);return r>t?[]:e.slice(r,t-r+1)}e=je.resolve(e).substr(1),r=je.resolve(r).substr(1);for(var n=t(e.split("/")),o=t(r.split("/")),a=Math.min(n.length,o.length),i=a,s=0;s{for(var n=r+t,o=r;e[o]&&!(o>=n);)++o;if(o-r>16&&e.buffer&&Ue)return Ue.decode(e.buffer instanceof SharedArrayBuffer?e.slice(r,o):e.subarray(r,o));for(var a="";r>10,56320|1023&c)}}else a+=String.fromCharCode((31&i)<<6|s)}else a+=String.fromCharCode(i)}return a},ze=[],He=e=>{for(var r=0,t=0;t=55296&&n<=57343?(r+=4,++t):r+=3}return r},Ge=(e,r,t,n)=>{if(q("string"==typeof e),!(n>0))return 0;for(var o=t,a=t+n-1,i=0;i=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&e.charCodeAt(++i)),s<=127){if(t>=a)break;r[t++]=s}else if(s<=2047){if(t+1>=a)break;r[t++]=192|s>>6,r[t++]=128|63&s}else if(s<=65535){if(t+2>=a)break;r[t++]=224|s>>12,r[t++]=128|s>>6&63,r[t++]=128|63&s}else{if(t+3>=a)break;s>1114111&&wr("Invalid Unicode code point "+dr(s)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF)."),r[t++]=240|s>>18,r[t++]=128|s>>12&63,r[t++]=128|s>>6&63,r[t++]=128|63&s}}return r[t]=0,t-o};function Ye(e,r,t){var n=t>0?t:He(e)+1,o=new Array(n),a=Ge(e,o,0,o.length);return r&&(o.length=a),o}var Ve={ttys:[],init(){},shutdown(){},register(e,r){Ve.ttys[e]={input:[],output:[],ops:r},ir.registerDevice(e,Ve.stream_ops)},stream_ops:{open(e){var r=Ve.ttys[e.node.rdev];if(!r)throw new ir.ErrnoError(43);e.tty=r,e.seekable=!1},close(e){e.tty.ops.fsync(e.tty)},fsync(e){e.tty.ops.fsync(e.tty)},read(e,r,t,n,o){if(!e.tty||!e.tty.ops.get_char)throw new ir.ErrnoError(60);for(var a=0,i=0;i(()=>{if(!ze.length){var e=null;if(y){var r=Buffer.alloc(256),t=0,n=process.stdin.fd;try{t=C.readSync(n,r)}catch(e){if(!e.toString().includes("EOF"))throw e;t=0}e=t>0?r.slice(0,t).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(e=window.prompt("Input: "))&&(e+="\n"):"function"==typeof readline&&null!==(e=readline())&&(e+="\n");if(!e)return null;ze=Ye(e,!0)}return ze.shift()})(),put_char(e,r){null===r||10===r?(N(Be(e.output,0)),e.output=[]):0!=r&&e.output.push(r)},fsync(e){e.output&&e.output.length>0&&(N(Be(e.output,0)),e.output=[])},ioctl_tcgets:e=>({c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}),ioctl_tcsets:(e,r,t)=>0,ioctl_tiocgwinsz:e=>[24,80]},default_tty1_ops:{put_char(e,r){null===r||10===r?($(Be(e.output,0)),e.output=[]):0!=r&&e.output.push(r)},fsync(e){e.output&&e.output.length>0&&($(Be(e.output,0)),e.output=[])}}},qe=e=>{e=((e,r)=>(q(r,"alignment argument is required"),Math.ceil(e/r)*r))(e,65536);var r=Sn(65536,e);return r?((e,r)=>(n().fill(0,e,e+r),e))(r,e):0},Ke={ops_table:null,mount:e=>Ke.createNode(null,"/",16895,0),createNode(e,r,t,n){if(ir.isBlkdev(t)||ir.isFIFO(t))throw new ir.ErrnoError(63);Ke.ops_table||(Ke.ops_table={dir:{node:{getattr:Ke.node_ops.getattr,setattr:Ke.node_ops.setattr,lookup:Ke.node_ops.lookup,mknod:Ke.node_ops.mknod,rename:Ke.node_ops.rename,unlink:Ke.node_ops.unlink,rmdir:Ke.node_ops.rmdir,readdir:Ke.node_ops.readdir,symlink:Ke.node_ops.symlink},stream:{llseek:Ke.stream_ops.llseek}},file:{node:{getattr:Ke.node_ops.getattr,setattr:Ke.node_ops.setattr},stream:{llseek:Ke.stream_ops.llseek,read:Ke.stream_ops.read,write:Ke.stream_ops.write,allocate:Ke.stream_ops.allocate,mmap:Ke.stream_ops.mmap,msync:Ke.stream_ops.msync}},link:{node:{getattr:Ke.node_ops.getattr,setattr:Ke.node_ops.setattr,readlink:Ke.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Ke.node_ops.getattr,setattr:Ke.node_ops.setattr},stream:ir.chrdev_stream_ops}});var o=ir.createNode(e,r,t,n);return ir.isDir(o.mode)?(o.node_ops=Ke.ops_table.dir.node,o.stream_ops=Ke.ops_table.dir.stream,o.contents={}):ir.isFile(o.mode)?(o.node_ops=Ke.ops_table.file.node,o.stream_ops=Ke.ops_table.file.stream,o.usedBytes=0,o.contents=null):ir.isLink(o.mode)?(o.node_ops=Ke.ops_table.link.node,o.stream_ops=Ke.ops_table.link.stream):ir.isChrdev(o.mode)&&(o.node_ops=Ke.ops_table.chrdev.node,o.stream_ops=Ke.ops_table.chrdev.stream),o.timestamp=Date.now(),e&&(e.contents[r]=o,e.timestamp=o.timestamp),o},getFileDataAsTypedArray:e=>e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0),expandFileStorage(e,r){var t=e.contents?e.contents.length:0;if(!(t>=r)){r=Math.max(r,t*(t<1048576?2:1.125)>>>0),0!=t&&(r=Math.max(r,256));var n=e.contents;e.contents=new Uint8Array(r),e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0)}},resizeFileStorage(e,r){if(e.usedBytes!=r)if(0==r)e.contents=null,e.usedBytes=0;else{var t=e.contents;e.contents=new Uint8Array(r),t&&e.contents.set(t.subarray(0,Math.min(r,e.usedBytes))),e.usedBytes=r}},node_ops:{getattr(e){var r={};return r.dev=ir.isChrdev(e.mode)?e.id:1,r.ino=e.id,r.mode=e.mode,r.nlink=1,r.uid=0,r.gid=0,r.rdev=e.rdev,ir.isDir(e.mode)?r.size=4096:ir.isFile(e.mode)?r.size=e.usedBytes:ir.isLink(e.mode)?r.size=e.link.length:r.size=0,r.atime=new Date(e.timestamp),r.mtime=new Date(e.timestamp),r.ctime=new Date(e.timestamp),r.blksize=4096,r.blocks=Math.ceil(r.size/r.blksize),r},setattr(e,r){void 0!==r.mode&&(e.mode=r.mode),void 0!==r.timestamp&&(e.timestamp=r.timestamp),void 0!==r.size&&Ke.resizeFileStorage(e,r.size)},lookup(e,r){throw ir.genericErrors[44]},mknod:(e,r,t,n)=>Ke.createNode(e,r,t,n),rename(e,r,t){if(ir.isDir(e.mode)){var n;try{n=ir.lookupNode(r,t)}catch(e){}if(n)for(var o in n.contents)throw new ir.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=t,r.contents[t]=e,r.timestamp=e.parent.timestamp,e.parent=r},unlink(e,r){delete e.contents[r],e.timestamp=Date.now()},rmdir(e,r){var t=ir.lookupNode(e,r);for(var n in t.contents)throw new ir.ErrnoError(55);delete e.contents[r],e.timestamp=Date.now()},readdir(e){var r=[".",".."];for(var t in e.contents)e.contents.hasOwnProperty(t)&&r.push(t);return r},symlink(e,r,t){var n=Ke.createNode(e,r,41471,0);return n.link=t,n},readlink(e){if(!ir.isLink(e.mode))throw new ir.ErrnoError(28);return e.link}},stream_ops:{read(e,r,t,n,o){var a=e.node.contents;if(o>=e.node.usedBytes)return 0;var i=Math.min(e.node.usedBytes-o,n);if(q(i>=0),i>8&&a.subarray)r.set(a.subarray(o,o+i),t);else for(var s=0;s0||n+r(Ke.stream_ops.write(e,r,0,n,t,!1),0)}},Xe=u.preloadPlugins||[],Je=(e,r)=>{var t=0;return e&&(t|=365),r&&(t|=146),t},Ze={dbs:{},indexedDB:()=>{if("undefined"!=typeof indexedDB)return indexedDB;var e=null;return"object"==typeof window&&(e=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB),q(e,"IDBFS used, but indexedDB not supported"),e},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function(e){return Ke.mount.apply(null,arguments)},syncfs:(e,r,t)=>{Ze.getLocalSet(e,((n,o)=>{if(n)return t(n);Ze.getRemoteSet(e,((e,n)=>{if(e)return t(e);var a=r?n:o,i=r?o:n;Ze.reconcile(a,i,t)}))}))},quit:()=>{Object.values(Ze.dbs).forEach((e=>e.close())),Ze.dbs={}},getDB:(e,r)=>{var t,n=Ze.dbs[e];if(n)return r(null,n);try{t=Ze.indexedDB().open(e,Ze.DB_VERSION)}catch(e){return r(e)}if(!t)return r("Unable to connect to IndexedDB");t.onupgradeneeded=e=>{var r,t=e.target.result,n=e.target.transaction;(r=t.objectStoreNames.contains(Ze.DB_STORE_NAME)?n.objectStore(Ze.DB_STORE_NAME):t.createObjectStore(Ze.DB_STORE_NAME)).indexNames.contains("timestamp")||r.createIndex("timestamp","timestamp",{unique:!1})},t.onsuccess=()=>{n=t.result,Ze.dbs[e]=n,r(null,n)},t.onerror=e=>{r(e.target.error),e.preventDefault()}},getLocalSet:(e,r)=>{var t={};function n(e){return"."!==e&&".."!==e}function o(e){return r=>Le.join2(e,r)}for(var a=ir.readdir(e.mountpoint).filter(n).map(o(e.mountpoint));a.length;){var i,s=a.pop();try{i=ir.stat(s)}catch(e){return r(e)}ir.isDir(i.mode)&&a.push.apply(a,ir.readdir(s).filter(n).map(o(s))),t[s]={timestamp:i.mtime}}return r(null,{type:"local",entries:t})},getRemoteSet:(e,r)=>{var t={};Ze.getDB(e.mountpoint,((e,n)=>{if(e)return r(e);try{var o=n.transaction([Ze.DB_STORE_NAME],"readonly");o.onerror=e=>{r(e.target.error),e.preventDefault()},o.objectStore(Ze.DB_STORE_NAME).index("timestamp").openKeyCursor().onsuccess=e=>{var o=e.target.result;if(!o)return r(null,{type:"remote",db:n,entries:t});t[o.primaryKey]={timestamp:o.key},o.continue()}}catch(e){return r(e)}}))},loadLocalEntry:(e,r)=>{var t,n;try{n=ir.lookupPath(e).node,t=ir.stat(e)}catch(e){return r(e)}return ir.isDir(t.mode)?r(null,{timestamp:t.mtime,mode:t.mode}):ir.isFile(t.mode)?(n.contents=Ke.getFileDataAsTypedArray(n),r(null,{timestamp:t.mtime,mode:t.mode,contents:n.contents})):r(new Error("node type not supported"))},storeLocalEntry:(e,r,t)=>{try{if(ir.isDir(r.mode))ir.mkdirTree(e,r.mode);else{if(!ir.isFile(r.mode))return t(new Error("node type not supported"));ir.writeFile(e,r.contents,{canOwn:!0})}ir.chmod(e,r.mode),ir.utime(e,r.timestamp,r.timestamp)}catch(e){return t(e)}t(null)},removeLocalEntry:(e,r)=>{try{var t=ir.stat(e);ir.isDir(t.mode)?ir.rmdir(e):ir.isFile(t.mode)&&ir.unlink(e)}catch(e){return r(e)}r(null)},loadRemoteEntry:(e,r,t)=>{var n=e.get(r);n.onsuccess=e=>{t(null,e.target.result)},n.onerror=e=>{t(e.target.error),e.preventDefault()}},storeRemoteEntry:(e,r,t,n)=>{try{var o=e.put(t,r)}catch(e){return void n(e)}o.onsuccess=()=>{n(null)},o.onerror=e=>{n(e.target.error),e.preventDefault()}},removeRemoteEntry:(e,r,t)=>{var n=e.delete(r);n.onsuccess=()=>{t(null)},n.onerror=e=>{t(e.target.error),e.preventDefault()}},reconcile:(e,r,t)=>{var n=0,o=[];Object.keys(e.entries).forEach((function(t){var a=e.entries[t],i=r.entries[t];i&&a.timestamp.getTime()==i.timestamp.getTime()||(o.push(t),n++)}));var a=[];if(Object.keys(r.entries).forEach((function(r){e.entries[r]||(a.push(r),n++)})),!n)return t(null);var i=!1,s=("remote"===e.type?e.db:r.db).transaction([Ze.DB_STORE_NAME],"readwrite"),l=s.objectStore(Ze.DB_STORE_NAME);function c(e){if(e&&!i)return i=!0,t(e)}s.onerror=e=>{c(this.error),e.preventDefault()},s.oncomplete=e=>{i||t(null)},o.sort().forEach((e=>{"local"===r.type?Ze.loadRemoteEntry(l,e,((r,t)=>{if(r)return c(r);Ze.storeLocalEntry(e,t,c)})):Ze.loadLocalEntry(e,((r,t)=>{if(r)return c(r);Ze.storeRemoteEntry(l,e,t,c)}))})),a.sort().reverse().forEach((e=>{"local"===r.type?Ze.removeLocalEntry(e,c):Ze.removeRemoteEntry(l,e,c)}))}},Qe={},er={isWindows:!1,staticInit(){er.isWindows=!!process.platform.match(/^win/);var e=process.binding("constants");e.fs&&(e=e.fs),er.flagsForNodeMap={1024:e.O_APPEND,64:e.O_CREAT,128:e.O_EXCL,256:e.O_NOCTTY,0:e.O_RDONLY,2:e.O_RDWR,4096:e.O_SYNC,512:e.O_TRUNC,1:e.O_WRONLY,131072:e.O_NOFOLLOW},q(0===er.flagsForNodeMap[0])},convertNodeCode(e){var r=e.code;return q(r in Qe,`unexpected node error code: ${r} (${e})`),Qe[r]},mount:e=>(q(y),er.createNode(null,"/",er.getMode(e.opts.root),0)),createNode(e,r,t,n){if(!ir.isDir(t)&&!ir.isFile(t)&&!ir.isLink(t))throw new ir.ErrnoError(28);var o=ir.createNode(e,r,t);return o.node_ops=er.node_ops,o.stream_ops=er.stream_ops,o},getMode(e){var r;try{r=C.lstatSync(e),er.isWindows&&(r.mode=r.mode|(292&r.mode)>>2)}catch(e){if(!e.code)throw e;throw new ir.ErrnoError(er.convertNodeCode(e))}return r.mode},realPath(e){for(var r=[];e.parent!==e;)r.push(e.name),e=e.parent;return r.push(e.mount.opts.root),r.reverse(),Le.join.apply(null,r)},flagsForNode(e){e&=-2097153,e&=-2049,e&=-32769,e&=-524289,e&=-65537;var r=0;for(var t in er.flagsForNodeMap)e&t&&(r|=er.flagsForNodeMap[t],e^=t);if(e)throw new ir.ErrnoError(28);return r},node_ops:{getattr(e){var r,t=er.realPath(e);try{r=C.lstatSync(t)}catch(e){if(!e.code)throw e;throw new ir.ErrnoError(er.convertNodeCode(e))}return er.isWindows&&!r.blksize&&(r.blksize=4096),er.isWindows&&!r.blocks&&(r.blocks=(r.size+r.blksize-1)/r.blksize|0),{dev:r.dev,ino:r.ino,mode:r.mode,nlink:r.nlink,uid:r.uid,gid:r.gid,rdev:r.rdev,size:r.size,atime:r.atime,mtime:r.mtime,ctime:r.ctime,blksize:r.blksize,blocks:r.blocks}},setattr(e,r){var t=er.realPath(e);try{if(void 0!==r.mode&&(C.chmodSync(t,r.mode),e.mode=r.mode),void 0!==r.timestamp){var n=new Date(r.timestamp);C.utimesSync(t,n,n)}void 0!==r.size&&C.truncateSync(t,r.size)}catch(e){if(!e.code)throw e;throw new ir.ErrnoError(er.convertNodeCode(e))}},lookup(e,r){var t=Le.join2(er.realPath(e),r),n=er.getMode(t);return er.createNode(e,r,n)},mknod(e,r,t,n){var o=er.createNode(e,r,t,n),a=er.realPath(o);try{ir.isDir(o.mode)?C.mkdirSync(a,o.mode):C.writeFileSync(a,"",{mode:o.mode})}catch(e){if(!e.code)throw e;throw new ir.ErrnoError(er.convertNodeCode(e))}return o},rename(e,r,t){var n=er.realPath(e),o=Le.join2(er.realPath(r),t);try{C.renameSync(n,o)}catch(e){if(!e.code)throw e;throw new ir.ErrnoError(er.convertNodeCode(e))}e.name=t},unlink(e,r){var t=Le.join2(er.realPath(e),r);try{C.unlinkSync(t)}catch(e){if(!e.code)throw e;throw new ir.ErrnoError(er.convertNodeCode(e))}},rmdir(e,r){var t=Le.join2(er.realPath(e),r);try{C.rmdirSync(t)}catch(e){if(!e.code)throw e;throw new ir.ErrnoError(er.convertNodeCode(e))}},readdir(e){var r=er.realPath(e);try{return C.readdirSync(r)}catch(e){if(!e.code)throw e;throw new ir.ErrnoError(er.convertNodeCode(e))}},symlink(e,r,t){var n=Le.join2(er.realPath(e),r);try{C.symlinkSync(t,n)}catch(e){if(!e.code)throw e;throw new ir.ErrnoError(er.convertNodeCode(e))}},readlink(e){var r=er.realPath(e);try{return r=C.readlinkSync(r),r=A.relative(A.resolve(e.mount.opts.root),r)}catch(e){if(!e.code)throw e;if("UNKNOWN"===e.code)throw new ir.ErrnoError(28);throw new ir.ErrnoError(er.convertNodeCode(e))}}},stream_ops:{open(e){var r=er.realPath(e.node);try{ir.isFile(e.node.mode)&&(e.nfd=C.openSync(r,er.flagsForNode(e.flags)))}catch(e){if(!e.code)throw e;throw new ir.ErrnoError(er.convertNodeCode(e))}},close(e){try{ir.isFile(e.node.mode)&&e.nfd&&C.closeSync(e.nfd)}catch(e){if(!e.code)throw e;throw new ir.ErrnoError(er.convertNodeCode(e))}},read(e,r,t,n,o){if(0===n)return 0;try{return C.readSync(e.nfd,new Int8Array(r.buffer,t,n),{position:o})}catch(e){throw new ir.ErrnoError(er.convertNodeCode(e))}},write(e,r,t,n,o){try{return C.writeSync(e.nfd,new Int8Array(r.buffer,t,n),{position:o})}catch(e){throw new ir.ErrnoError(er.convertNodeCode(e))}},llseek(e,r,t){var n=r;if(1===t)n+=e.position;else if(2===t&&ir.isFile(e.node.mode))try{n+=C.fstatSync(e.nfd).size}catch(e){throw new ir.ErrnoError(er.convertNodeCode(e))}if(n<0)throw new ir.ErrnoError(28);return n},mmap(e,r,n,o,a){if(!ir.isFile(e.node.mode))throw new ir.ErrnoError(43);var i=qe(r);return er.stream_ops.read(e,t(),i,r,n),{ptr:i,allocated:!0}},msync:(e,r,t,n,o)=>(er.stream_ops.write(e,r,0,n,t,!1),0)}},rr={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"},tr=e=>{var r=Ln(),t=e();return Wn(r),t},nr=(e,r,t)=>(q("number"==typeof t,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),Ge(e,n(),r,t)),or=(e,r)=>(q("number"==typeof e),e?Be(n(),e,r):""),ar=e=>(ar.recursionGuard=1+(0|ar.recursionGuard),ar.recursionGuard>1?e:tr((()=>{try{var r=e;r.startsWith("__Z")&&(r=r.substr(1));var t=(e=>{var r=He(e)+1,t=jn(r);return nr(e,t,r),t})(r),n=jn(4),o=Hn(t,0,0,n);if(0===i()[n>>2]&&o)return or(o)}catch(e){}finally{bn(o),ar.recursionGuard<2&&--ar.recursionGuard}return e}))),ir={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath(e,r={}){if(!(e=je.resolve(e)))return{path:"",node:null};if((r=Object.assign({follow_mount:!0,recurse_count:0},r)).recurse_count>8)throw new ir.ErrnoError(32);for(var t=e.split("/").filter((e=>!!e)),n=ir.root,o="/",a=0;a40)throw new ir.ErrnoError(32)}}return{path:o,node:n}},getPath(e){for(var r;;){if(ir.isRoot(e)){var t=e.mount.mountpoint;return r?"/"!==t[t.length-1]?`${t}/${r}`:t+r:t}r=r?`${e.name}/${r}`:e.name,e=e.parent}},hashName(e,r){for(var t=0,n=0;n>>0)%ir.nameTable.length},hashAddNode(e){var r=ir.hashName(e.parent.id,e.name);e.name_next=ir.nameTable[r],ir.nameTable[r]=e},hashRemoveNode(e){var r=ir.hashName(e.parent.id,e.name);if(ir.nameTable[r]===e)ir.nameTable[r]=e.name_next;else for(var t=ir.nameTable[r];t;){if(t.name_next===e){t.name_next=e.name_next;break}t=t.name_next}},lookupNode(e,r){var t=ir.mayLookup(e);if(t)throw new ir.ErrnoError(t,e);for(var n=ir.hashName(e.id,r),o=ir.nameTable[n];o;o=o.name_next){var a=o.name;if(o.parent.id===e.id&&a===r)return o}return ir.lookup(e,r)},createNode(e,r,t,n){q("object"==typeof e);var o=new ir.FSNode(e,r,t,n);return ir.hashAddNode(o),o},destroyNode(e){ir.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>49152==(49152&e),flagsToPermissionString(e){var r=["r","w","rw"][3&e];return 512&e&&(r+="w"),r},nodePermissions:(e,r)=>ir.ignorePermissions||(!r.includes("r")||292&e.mode)&&(!r.includes("w")||146&e.mode)&&(!r.includes("x")||73&e.mode)?0:2,mayLookup:e=>ir.nodePermissions(e,"x")||(e.node_ops.lookup?0:2),mayCreate(e,r){try{return ir.lookupNode(e,r),20}catch(e){}return ir.nodePermissions(e,"wx")},mayDelete(e,r,t){var n;try{n=ir.lookupNode(e,r)}catch(e){return e.errno}var o=ir.nodePermissions(e,"wx");if(o)return o;if(t){if(!ir.isDir(n.mode))return 54;if(ir.isRoot(n)||ir.getPath(n)===ir.cwd())return 10}else if(ir.isDir(n.mode))return 31;return 0},mayOpen:(e,r)=>e?ir.isLink(e.mode)?32:ir.isDir(e.mode)&&("r"!==ir.flagsToPermissionString(r)||512&r)?31:ir.nodePermissions(e,ir.flagsToPermissionString(r)):44,MAX_OPEN_FDS:4096,nextfd(){for(var e=0;e<=ir.MAX_OPEN_FDS;e++)if(!ir.streams[e])return e;throw new ir.ErrnoError(33)},getStreamChecked(e){var r=ir.getStream(e);if(!r)throw new ir.ErrnoError(8);return r},getStream:e=>ir.streams[e],createStream:(e,r=-1)=>(ir.FSStream||(ir.FSStream=function(){this.shared={}},ir.FSStream.prototype={},Object.defineProperties(ir.FSStream.prototype,{object:{get(){return this.node},set(e){this.node=e}},isRead:{get(){return 1!=(2097155&this.flags)}},isWrite:{get(){return 0!=(2097155&this.flags)}},isAppend:{get(){return 1024&this.flags}},flags:{get(){return this.shared.flags},set(e){this.shared.flags=e}},position:{get(){return this.shared.position},set(e){this.shared.position=e}}})),e=Object.assign(new ir.FSStream,e),-1==r&&(r=ir.nextfd()),e.fd=r,ir.streams[r]=e,e),closeStream(e){ir.streams[e]=null},chrdev_stream_ops:{open(e){var r=ir.getDevice(e.node.rdev);e.stream_ops=r.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek(){throw new ir.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,r)=>e<<8|r,registerDevice(e,r){ir.devices[e]={stream_ops:r}},getDevice:e=>ir.devices[e],getMounts(e){for(var r=[],t=[e];t.length;){var n=t.pop();r.push(n),t.push.apply(t,n.mounts)}return r},syncfs(e,r){"function"==typeof e&&(r=e,e=!1),ir.syncFSRequests++,ir.syncFSRequests>1&&$(`warning: ${ir.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var t=ir.getMounts(ir.root.mount),n=0;function o(e){return q(ir.syncFSRequests>0),ir.syncFSRequests--,r(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,o(e));++n>=t.length&&o(null)}t.forEach((r=>{if(!r.type.syncfs)return a(null);r.type.syncfs(r,e,a)}))},mount(e,r,t){if("string"==typeof e)throw e;var n,o="/"===t,a=!t;if(o&&ir.root)throw new ir.ErrnoError(10);if(!o&&!a){var i=ir.lookupPath(t,{follow_mount:!1});if(t=i.path,n=i.node,ir.isMountpoint(n))throw new ir.ErrnoError(10);if(!ir.isDir(n.mode))throw new ir.ErrnoError(54)}var s={type:e,opts:r,mountpoint:t,mounts:[]},l=e.mount(s);return l.mount=s,s.root=l,o?ir.root=l:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),l},unmount(e){var r=ir.lookupPath(e,{follow_mount:!1});if(!ir.isMountpoint(r.node))throw new ir.ErrnoError(28);var t=r.node,n=t.mounted,o=ir.getMounts(n);Object.keys(ir.nameTable).forEach((e=>{for(var r=ir.nameTable[e];r;){var t=r.name_next;o.includes(r.mount)&&ir.destroyNode(r),r=t}})),t.mounted=null;var a=t.mount.mounts.indexOf(n);q(-1!==a),t.mount.mounts.splice(a,1)},lookup:(e,r)=>e.node_ops.lookup(e,r),mknod(e,r,t){var n=ir.lookupPath(e,{parent:!0}).node,o=Le.basename(e);if(!o||"."===o||".."===o)throw new ir.ErrnoError(28);var a=ir.mayCreate(n,o);if(a)throw new ir.ErrnoError(a);if(!n.node_ops.mknod)throw new ir.ErrnoError(63);return n.node_ops.mknod(n,o,r,t)},create:(e,r)=>(r=void 0!==r?r:438,r&=4095,r|=32768,ir.mknod(e,r,0)),mkdir:(e,r)=>(r=void 0!==r?r:511,r&=1023,r|=16384,ir.mknod(e,r,0)),mkdirTree(e,r){for(var t=e.split("/"),n="",o=0;o(void 0===t&&(t=r,r=438),r|=8192,ir.mknod(e,r,t)),symlink(e,r){if(!je.resolve(e))throw new ir.ErrnoError(44);var t=ir.lookupPath(r,{parent:!0}).node;if(!t)throw new ir.ErrnoError(44);var n=Le.basename(r),o=ir.mayCreate(t,n);if(o)throw new ir.ErrnoError(o);if(!t.node_ops.symlink)throw new ir.ErrnoError(63);return t.node_ops.symlink(t,n,e)},rename(e,r){var t,n,o=Le.dirname(e),a=Le.dirname(r),i=Le.basename(e),s=Le.basename(r);if(t=ir.lookupPath(e,{parent:!0}).node,n=ir.lookupPath(r,{parent:!0}).node,!t||!n)throw new ir.ErrnoError(44);if(t.mount!==n.mount)throw new ir.ErrnoError(75);var l,c=ir.lookupNode(t,i),d=je.relative(e,a);if("."!==d.charAt(0))throw new ir.ErrnoError(28);if("."!==(d=je.relative(r,o)).charAt(0))throw new ir.ErrnoError(55);try{l=ir.lookupNode(n,s)}catch(e){}if(c!==l){var u=ir.isDir(c.mode),f=ir.mayDelete(t,i,u);if(f)throw new ir.ErrnoError(f);if(f=l?ir.mayDelete(n,s,u):ir.mayCreate(n,s))throw new ir.ErrnoError(f);if(!t.node_ops.rename)throw new ir.ErrnoError(63);if(ir.isMountpoint(c)||l&&ir.isMountpoint(l))throw new ir.ErrnoError(10);if(n!==t&&(f=ir.nodePermissions(t,"w")))throw new ir.ErrnoError(f);ir.hashRemoveNode(c);try{t.node_ops.rename(c,n,s)}catch(e){throw e}finally{ir.hashAddNode(c)}}},rmdir(e){var r=ir.lookupPath(e,{parent:!0}).node,t=Le.basename(e),n=ir.lookupNode(r,t),o=ir.mayDelete(r,t,!0);if(o)throw new ir.ErrnoError(o);if(!r.node_ops.rmdir)throw new ir.ErrnoError(63);if(ir.isMountpoint(n))throw new ir.ErrnoError(10);r.node_ops.rmdir(r,t),ir.destroyNode(n)},readdir(e){var r=ir.lookupPath(e,{follow:!0}).node;if(!r.node_ops.readdir)throw new ir.ErrnoError(54);return r.node_ops.readdir(r)},unlink(e){var r=ir.lookupPath(e,{parent:!0}).node;if(!r)throw new ir.ErrnoError(44);var t=Le.basename(e),n=ir.lookupNode(r,t),o=ir.mayDelete(r,t,!1);if(o)throw new ir.ErrnoError(o);if(!r.node_ops.unlink)throw new ir.ErrnoError(63);if(ir.isMountpoint(n))throw new ir.ErrnoError(10);r.node_ops.unlink(r,t),ir.destroyNode(n)},readlink(e){var r=ir.lookupPath(e).node;if(!r)throw new ir.ErrnoError(44);if(!r.node_ops.readlink)throw new ir.ErrnoError(28);return je.resolve(ir.getPath(r.parent),r.node_ops.readlink(r))},stat(e,r){var t=ir.lookupPath(e,{follow:!r}).node;if(!t)throw new ir.ErrnoError(44);if(!t.node_ops.getattr)throw new ir.ErrnoError(63);return t.node_ops.getattr(t)},lstat:e=>ir.stat(e,!0),chmod(e,r,t){var n;if(!(n="string"==typeof e?ir.lookupPath(e,{follow:!t}).node:e).node_ops.setattr)throw new ir.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&r|-4096&n.mode,timestamp:Date.now()})},lchmod(e,r){ir.chmod(e,r,!0)},fchmod(e,r){var t=ir.getStreamChecked(e);ir.chmod(t.node,r)},chown(e,r,t,n){var o;if(!(o="string"==typeof e?ir.lookupPath(e,{follow:!n}).node:e).node_ops.setattr)throw new ir.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown(e,r,t){ir.chown(e,r,t,!0)},fchown(e,r,t){var n=ir.getStreamChecked(e);ir.chown(n.node,r,t)},truncate(e,r){if(r<0)throw new ir.ErrnoError(28);var t;if(!(t="string"==typeof e?ir.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new ir.ErrnoError(63);if(ir.isDir(t.mode))throw new ir.ErrnoError(31);if(!ir.isFile(t.mode))throw new ir.ErrnoError(28);var n=ir.nodePermissions(t,"w");if(n)throw new ir.ErrnoError(n);t.node_ops.setattr(t,{size:r,timestamp:Date.now()})},ftruncate(e,r){var t=ir.getStreamChecked(e);if(0==(2097155&t.flags))throw new ir.ErrnoError(28);ir.truncate(t.node,r)},utime(e,r,t){var n=ir.lookupPath(e,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(r,t)})},open(e,r,t){if(""===e)throw new ir.ErrnoError(44);var n;if(t=void 0===t?438:t,t=64&(r="string"==typeof r?(e=>{var r={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[e];if(void 0===r)throw new Error(`Unknown file open mode: ${e}`);return r})(r):r)?4095&t|32768:0,"object"==typeof e)n=e;else{e=Le.normalize(e);try{n=ir.lookupPath(e,{follow:!(131072&r)}).node}catch(e){}}var o=!1;if(64&r)if(n){if(128&r)throw new ir.ErrnoError(20)}else n=ir.mknod(e,t,0),o=!0;if(!n)throw new ir.ErrnoError(44);if(ir.isChrdev(n.mode)&&(r&=-513),65536&r&&!ir.isDir(n.mode))throw new ir.ErrnoError(54);if(!o){var a=ir.mayOpen(n,r);if(a)throw new ir.ErrnoError(a)}512&r&&!o&&ir.truncate(n,0),r&=-131713;var i=ir.createStream({node:n,path:ir.getPath(n),flags:r,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return i.stream_ops.open&&i.stream_ops.open(i),!u.logReadFiles||1&r||(ir.readFiles||(ir.readFiles={}),e in ir.readFiles||(ir.readFiles[e]=1)),i},close(e){if(ir.isClosed(e))throw new ir.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{ir.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek(e,r,t){if(ir.isClosed(e))throw new ir.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new ir.ErrnoError(70);if(0!=t&&1!=t&&2!=t)throw new ir.ErrnoError(28);return e.position=e.stream_ops.llseek(e,r,t),e.ungotten=[],e.position},read(e,r,t,n,o){if(q(t>=0),n<0||o<0)throw new ir.ErrnoError(28);if(ir.isClosed(e))throw new ir.ErrnoError(8);if(1==(2097155&e.flags))throw new ir.ErrnoError(8);if(ir.isDir(e.node.mode))throw new ir.ErrnoError(31);if(!e.stream_ops.read)throw new ir.ErrnoError(28);var a=void 0!==o;if(a){if(!e.seekable)throw new ir.ErrnoError(70)}else o=e.position;var i=e.stream_ops.read(e,r,t,n,o);return a||(e.position+=i),i},write(e,r,t,n,o,a){if(q(t>=0),n<0||o<0)throw new ir.ErrnoError(28);if(ir.isClosed(e))throw new ir.ErrnoError(8);if(0==(2097155&e.flags))throw new ir.ErrnoError(8);if(ir.isDir(e.node.mode))throw new ir.ErrnoError(31);if(!e.stream_ops.write)throw new ir.ErrnoError(28);e.seekable&&1024&e.flags&&ir.llseek(e,0,2);var i=void 0!==o;if(i){if(!e.seekable)throw new ir.ErrnoError(70)}else o=e.position;var s=e.stream_ops.write(e,r,t,n,o,a);return i||(e.position+=s),s},allocate(e,r,t){if(ir.isClosed(e))throw new ir.ErrnoError(8);if(r<0||t<=0)throw new ir.ErrnoError(28);if(0==(2097155&e.flags))throw new ir.ErrnoError(8);if(!ir.isFile(e.node.mode)&&!ir.isDir(e.node.mode))throw new ir.ErrnoError(43);if(!e.stream_ops.allocate)throw new ir.ErrnoError(138);e.stream_ops.allocate(e,r,t)},mmap(e,r,t,n,o){if(0!=(2&n)&&0==(2&o)&&2!=(2097155&e.flags))throw new ir.ErrnoError(2);if(1==(2097155&e.flags))throw new ir.ErrnoError(2);if(!e.stream_ops.mmap)throw new ir.ErrnoError(43);return e.stream_ops.mmap(e,r,t,n,o)},msync:(e,r,t,n,o)=>(q(t>=0),e.stream_ops.msync?e.stream_ops.msync(e,r,t,n,o):0),munmap:e=>0,ioctl(e,r,t){if(!e.stream_ops.ioctl)throw new ir.ErrnoError(59);return e.stream_ops.ioctl(e,r,t)},readFile(e,r={}){if(r.flags=r.flags||0,r.encoding=r.encoding||"binary","utf8"!==r.encoding&&"binary"!==r.encoding)throw new Error(`Invalid encoding type "${r.encoding}"`);var t,n=ir.open(e,r.flags),o=ir.stat(e).size,a=new Uint8Array(o);return ir.read(n,a,0,o,0),"utf8"===r.encoding?t=Be(a,0):"binary"===r.encoding&&(t=a),ir.close(n),t},writeFile(e,r,t={}){t.flags=t.flags||577;var n=ir.open(e,t.flags,t.mode);if("string"==typeof r){var o=new Uint8Array(He(r)+1),a=Ge(r,o,0,o.length);ir.write(n,o,0,a,void 0,t.canOwn)}else{if(!ArrayBuffer.isView(r))throw new Error("Unsupported data type");ir.write(n,r,0,r.byteLength,void 0,t.canOwn)}ir.close(n)},cwd:()=>ir.currentPath,chdir(e){var r=ir.lookupPath(e,{follow:!0});if(null===r.node)throw new ir.ErrnoError(44);if(!ir.isDir(r.node.mode))throw new ir.ErrnoError(54);var t=ir.nodePermissions(r.node,"x");if(t)throw new ir.ErrnoError(t);ir.currentPath=r.path},createDefaultDirectories(){ir.mkdir("/tmp"),ir.mkdir("/home"),ir.mkdir("/home/web_user")},createDefaultDevices(){ir.mkdir("/dev"),ir.registerDevice(ir.makedev(1,3),{read:()=>0,write:(e,r,t,n,o)=>n}),ir.mkdev("/dev/null",ir.makedev(1,3)),Ve.register(ir.makedev(5,0),Ve.default_tty_ops),Ve.register(ir.makedev(6,0),Ve.default_tty1_ops),ir.mkdev("/dev/tty",ir.makedev(5,0)),ir.mkdev("/dev/tty1",ir.makedev(6,0));var e=new Uint8Array(1024),r=0,t=()=>(0===r&&(r=We(e).byteLength),e[--r]);ir.createDevice("/dev","random",t),ir.createDevice("/dev","urandom",t),ir.mkdir("/dev/shm"),ir.mkdir("/dev/shm/tmp")},createSpecialDirectories(){ir.mkdir("/proc");var e=ir.mkdir("/proc/self");ir.mkdir("/proc/self/fd"),ir.mount({mount(){var r=ir.createNode(e,"fd",16895,73);return r.node_ops={lookup(e,r){var t=+r,n=ir.getStreamChecked(t),o={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>n.path}};return o.parent=o,o}},r}},{},"/proc/self/fd")},createStandardStreams(){u.stdin?ir.createDevice("/dev","stdin",u.stdin):ir.symlink("/dev/tty","/dev/stdin"),u.stdout?ir.createDevice("/dev","stdout",null,u.stdout):ir.symlink("/dev/tty","/dev/stdout"),u.stderr?ir.createDevice("/dev","stderr",null,u.stderr):ir.symlink("/dev/tty1","/dev/stderr");var e=ir.open("/dev/stdin",0),r=ir.open("/dev/stdout",1),t=ir.open("/dev/stderr",1);q(0===e.fd,`invalid handle for stdin (${e.fd})`),q(1===r.fd,`invalid handle for stdout (${r.fd})`),q(2===t.fd,`invalid handle for stderr (${t.fd})`)},ensureErrnoError(){ir.ErrnoError||(ir.ErrnoError=function(e,r){this.name="ErrnoError",this.node=r,this.setErrno=function(e){for(var r in this.errno=e,Qe)if(Qe[r]===e){this.code=r;break}},this.setErrno(e),this.message=rr[e],this.stack&&(Object.defineProperty(this,"stack",{value:(new Error).stack,writable:!0}),this.stack=this.stack.replace(/\b_Z[\w\d_]+/g,(function(e){var r=ar(e);return e===r?e:r+" ["+e+"]"})))},ir.ErrnoError.prototype=new Error,ir.ErrnoError.prototype.constructor=ir.ErrnoError,[44].forEach((e=>{ir.genericErrors[e]=new ir.ErrnoError(e),ir.genericErrors[e].stack=""})))},staticInit(){ir.ensureErrnoError(),ir.nameTable=new Array(4096),ir.mount(Ke,{},"/"),ir.createDefaultDirectories(),ir.createDefaultDevices(),ir.createSpecialDirectories(),ir.filesystems={MEMFS:Ke,IDBFS:Ze,NODEFS:er}},init(e,r,t){q(!ir.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),ir.init.initialized=!0,ir.ensureErrnoError(),u.stdin=e||u.stdin,u.stdout=r||u.stdout,u.stderr=t||u.stderr,ir.createStandardStreams()},quit(){ir.init.initialized=!1,Tn(0);for(var e=0;ethis.length-1||e<0)){var r=e%this.chunkSize,t=e/this.chunkSize|0;return this.getter(t)[r]}},i.prototype.setDataGetter=function(e){this.getter=e},i.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",n,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+n+". Status: "+e.status);var r,t=Number(e.getResponseHeader("Content-length")),o=(r=e.getResponseHeader("Accept-Ranges"))&&"bytes"===r,a=(r=e.getResponseHeader("Content-Encoding"))&&"gzip"===r,i=1048576;o||(i=t);var s=this;s.setDataGetter((e=>{var r=e*i,o=(e+1)*i-1;if(o=Math.min(o,t-1),void 0===s.chunks[e]&&(s.chunks[e]=((e,r)=>{if(e>r)throw new Error("invalid range ("+e+", "+r+") or no bytes requested!");if(r>t-1)throw new Error("only "+t+" bytes available! programmer error!");var o=new XMLHttpRequest;if(o.open("GET",n,!1),t!==i&&o.setRequestHeader("Range","bytes="+e+"-"+r),o.responseType="arraybuffer",o.overrideMimeType&&o.overrideMimeType("text/plain; charset=x-user-defined"),o.send(null),!(o.status>=200&&o.status<300||304===o.status))throw new Error("Couldn't load "+n+". Status: "+o.status);return void 0!==o.response?new Uint8Array(o.response||[]):Ye(o.responseText||"",!0)})(r,o)),void 0===s.chunks[e])throw new Error("doXHR failed!");return s.chunks[e]})),!a&&t||(i=t=1,t=this.getter(0).length,i=t,N("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=t,this._chunkSize=i,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!v)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var s=new i;Object.defineProperties(s,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var l={isDevice:!1,contents:s}}else l={isDevice:!1,url:n};var c=ir.createFile(e,r,l,o,a);l.contents?c.contents=l.contents:l.url&&(c.contents=null,c.url=l.url),Object.defineProperties(c,{usedBytes:{get:function(){return this.contents.length}}});var d={};function u(e,r,t,n,o){var a=e.node.contents;if(o>=a.length)return 0;var i=Math.min(a.length-o,n);if(q(i>=0),a.slice)for(var s=0;s{var r=c.stream_ops[e];d[e]=function(){return ir.forceLoadFile(c),r.apply(null,arguments)}})),d.read=(e,r,t,n,o)=>(ir.forceLoadFile(c),u(e,r,t,n,o)),d.mmap=(e,r,n,o,a)=>{ir.forceLoadFile(c);var i=qe(r);if(!i)throw new ir.ErrnoError(48);return u(e,t(),i,r,n),{ptr:i,allocated:!0}},c.stream_ops=d,c},absolutePath(){pe("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder(){pe("FS.createFolder has been removed; use FS.mkdir instead")},createLink(){pe("FS.createLink has been removed; use FS.symlink instead")},joinPath(){pe("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc(){pe("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath(){pe("FS.standardizePath has been removed; use PATH.normalize instead")}},sr={DEFAULT_POLLMASK:5,calculateAt(e,r,t){if(Le.isAbs(r))return r;var n;if(n=-100===e?ir.cwd():sr.getStreamFromFD(e).path,0==r.length){if(!t)throw new ir.ErrnoError(44);return n}return Le.join2(n,r)},doStat(e,r,t){try{var n=e(r)}catch(e){if(e&&e.node&&Le.normalize(r)!==Le.normalize(ir.getPath(e.node)))return-54;throw e}i()[t>>2]=n.dev,Me(n.dev),i()[t+4>>2]=n.mode,Me(n.mode),s()[t+8>>2]=n.nlink,Me(n.nlink),i()[t+12>>2]=n.uid,Me(n.uid),i()[t+16>>2]=n.gid,Me(n.gid),i()[t+20>>2]=n.rdev,Me(n.rdev),ye=[n.size>>>0,(ve=n.size,+Math.abs(ve)>=1?ve>0?+Math.floor(ve/4294967296)>>>0:~~+Math.ceil((ve-+(~~ve>>>0))/4294967296)>>>0:0)],i()[t+24>>2]=ye[0],i()[t+28>>2]=ye[1],Ne(n.size),i()[t+32>>2]=4096,Me(4096),i()[t+36>>2]=n.blocks,Me(n.blocks);var o=n.atime.getTime(),a=n.mtime.getTime(),l=n.ctime.getTime();return ye=[Math.floor(o/1e3)>>>0,(ve=Math.floor(o/1e3),+Math.abs(ve)>=1?ve>0?+Math.floor(ve/4294967296)>>>0:~~+Math.ceil((ve-+(~~ve>>>0))/4294967296)>>>0:0)],i()[t+40>>2]=ye[0],i()[t+44>>2]=ye[1],Ne(Math.floor(o/1e3)),s()[t+48>>2]=o%1e3*1e3,Me(o%1e3*1e3),ye=[Math.floor(a/1e3)>>>0,(ve=Math.floor(a/1e3),+Math.abs(ve)>=1?ve>0?+Math.floor(ve/4294967296)>>>0:~~+Math.ceil((ve-+(~~ve>>>0))/4294967296)>>>0:0)],i()[t+56>>2]=ye[0],i()[t+60>>2]=ye[1],Ne(Math.floor(a/1e3)),s()[t+64>>2]=a%1e3*1e3,Me(a%1e3*1e3),ye=[Math.floor(l/1e3)>>>0,(ve=Math.floor(l/1e3),+Math.abs(ve)>=1?ve>0?+Math.floor(ve/4294967296)>>>0:~~+Math.ceil((ve-+(~~ve>>>0))/4294967296)>>>0:0)],i()[t+72>>2]=ye[0],i()[t+76>>2]=ye[1],Ne(Math.floor(l/1e3)),s()[t+80>>2]=l%1e3*1e3,Me(l%1e3*1e3),ye=[n.ino>>>0,(ve=n.ino,+Math.abs(ve)>=1?ve>0?+Math.floor(ve/4294967296)>>>0:~~+Math.ceil((ve-+(~~ve>>>0))/4294967296)>>>0:0)],i()[t+88>>2]=ye[0],i()[t+92>>2]=ye[1],Ne(n.ino),0},doMsync(e,r,t,o,a){if(!ir.isFile(r.node.mode))throw new ir.ErrnoError(43);if(2&o)return 0;var i=n().slice(e,e+t);ir.msync(r,i,a,t,o)},varargs:void 0,get(){q(null!=sr.varargs);var e=i()[+sr.varargs>>2];return sr.varargs+=4,e},getp:()=>sr.get(),getStr:e=>or(e),getStreamFromFD:e=>ir.getStreamChecked(e)};function lr(e){if(b)return Gt(0,1,e);L=e,oe()||(fr.terminateAllThreads(),u.onExit&&u.onExit(e),V=!0),p(e,new Ie(e))}var cr=(e,r)=>{if(L=e,function(){var e=N,r=$,t=!1;N=$=e=>{t=!0};try{Tn(0),["stdout","stderr"].forEach((function(e){var r=ir.analyzePath("/dev/"+e);if(r){var n=r.object.rdev,o=Ve.ttys[n];o&&o.output&&o.output.length&&(t=!0)}}))}catch(e){}N=e,$=r,t&&wr("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the Emscripten FAQ), or make sure to emit a newline when you printf etc.")}(),b)throw q(!r),pr(e),"unwind";if(oe()&&!r){var t=`program exited (with status: ${e}), but keepRuntimeAlive() is set (counter=${ne}) due to an async operation, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)`;d(t),$(t)}lr(e)},dr=e=>(q("number"==typeof e),"0x"+(e>>>=0).toString(16).padStart(8,"0")),ur=e=>{if(e instanceof Ie||"unwind"==e)return L;Z(),e instanceof WebAssembly.RuntimeError&&Un()<=0&&$("Stack overflow detected. You can try increasing -sSTACK_SIZE (currently set to 5242880)"),p(1,e)},fr={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},nextWorkerID:1,debugInit(){var e=$e;$e=r=>{return e((t=0,te&&void 0!==kn&&(t=kn()),"w:"+(u.workerID||0)+",t:"+dr(t)+": "+r));var t}},init(){fr.debugInit(),b?fr.initWorker():fr.initMainThread()},initMainThread(){ie((()=>{fe("loading-workers"),fr.loadWasmModuleToAllWorkers((()=>he("loading-workers")))}))},initWorker(){x=!1},setExitStatus:e=>{L=e},terminateAllThreads__deps:["$terminateWorker"],terminateAllThreads:()=>{for(var e of(q(!b,"Internal Error! terminateAllThreads() can only ever be called from main application thread!"),fr.runningWorkers))Re(e);for(var e of fr.unusedWorkers)Re(e);fr.unusedWorkers=[],fr.runningWorkers=[],fr.pthreads=[]},returnWorkerToPool:e=>{var r=e.pthread_ptr;delete fr.pthreads[r],fr.unusedWorkers.push(e),fr.runningWorkers.splice(fr.runningWorkers.indexOf(e),1),e.pthread_ptr=0,Dn(r)},receiveObjectTransfer(e){},threadInitTLS(){fr.tlsInitFunctions.forEach((e=>e()))},loadWasmModuleToWorker:r=>new Promise((t=>{r.onmessage=e=>{var n=e.data,o=n.cmd;if(n.targetThread&&n.targetThread!=kn()){var a=fr.pthreads[n.targetThread];a?a.postMessage(n,n.transferList):$(`Internal error! Worker sent a message "${o}" to target pthread ${n.targetThread}, but that thread no longer exists!`)}else{var i;"checkMailbox"===o?Ht():"spawnThread"===o?(e=>{q(!b,"Internal Error! spawnThread() can only ever be called from main application thread!"),q(e.pthread_ptr,"Internal error, no pthread ptr!");var r=fr.getNewWorker();if(!r)return 6;q(!r.pthread_ptr,"Internal error!"),fr.runningWorkers.push(r),fr.pthreads[e.pthread_ptr]=r,r.pthread_ptr=e.pthread_ptr;var t={cmd:"run",start_routine:e.startRoutine,arg:e.arg,pthread_ptr:e.pthread_ptr};y&&r.unref(),r.postMessage(t,e.transferList)})(n):"cleanupThread"===o?xe(n.thread):"killThread"===o?(e=>{q(!b,"Internal Error! killThread() can only ever be called from main application thread!"),q(e,"Internal Error! Null pthread_ptr in killThread!");var r=fr.pthreads[e];delete fr.pthreads[e],Re(r),Dn(e),fr.runningWorkers.splice(fr.runningWorkers.indexOf(r),1),r.pthread_ptr=0})(n.thread):"cancelThread"===o?(i=n.thread,q(!b,"Internal Error! cancelThread() can only ever be called from main application thread!"),q(i,"Internal Error! Null pthread_ptr in cancelThread!"),fr.pthreads[i].postMessage({cmd:"cancel"})):"loaded"===o?(r.loaded=!0,t(r)):"alert"===o?alert(`Thread ${n.threadId}: ${n.text}`):"setimmediate"===n.target?r.postMessage(n):"callHandler"===o?u[n.handler](...n.args):o&&$(`worker sent an unknown command ${o}`)}},r.onerror=e=>{var t="worker sent an error!";throw r.pthread_ptr&&(t=`Pthread ${dr(r.pthread_ptr)} sent an error!`),$(`${t} ${e.filename}:${e.lineno}: ${e.message}`),e},y&&(r.on("message",(e=>r.onmessage({data:e}))),r.on("error",(e=>r.onerror(e)))),q(I instanceof WebAssembly.Memory,"WebAssembly memory should have been loaded by now!"),q(R instanceof WebAssembly.Module,"WebAssembly Module should have been loaded by now!");var n=[];for(var o of["onExit","onAbort","print","printErr"])u.hasOwnProperty(o)&&n.push(o);r.workerID=fr.nextWorkerID++,r.postMessage({cmd:"load",handlers:n,urlOrBlob:u.mainScriptUrlOrBlob||e,wasmMemory:I,wasmModule:R,workerID:r.workerID})})),loadWasmModuleToAllWorkers(e){e()},allocateUnusedWorker(){var e,r=k("web_example.worker.js");e=new Worker(r),fr.unusedWorkers.push(e)},getNewWorker:()=>(0==fr.unusedWorkers.length&&(y||$("Tried to spawn a new thread, but the thread pool is exhausted.\nThis might result in a deadlock unless some threads eventually exit or the code explicitly breaks out to the event loop.\nIf you want to increase the pool size, use setting `-sPTHREAD_POOL_SIZE=...`.\nIf you want to throw an explicit error instead of the risk of deadlocking in those cases, use setting `-sPTHREAD_POOL_SIZE_STRICT=2`."),fr.allocateUnusedWorker(),fr.loadWasmModuleToWorker(fr.unusedWorkers[0])),fr.unusedWorkers.pop())};u.PThread=fr;var hr=e=>{for(;e.length>0;)e.shift()(u)};function pr(e){if(b)return Gt(1,0,e);cr(e)}u.establishStackSpace=()=>{var e=kn(),r=s()[e+52>>2],t=r-s()[e+56>>2];q(0!=r),q(0!=t),q(r>t,"stackHigh must be higher then stackLow"),xn(r,t),_r(),Wn(r),J()};var mr=e=>(e=>tr((()=>{var r=jn(4),t=jn(4);Gn(e,r,t);var n,o=s()[r>>2],a=s()[t>>2],i=or(o);return bn(o),a&&(n=or(a),bn(a)),[i,n]})))(e);u.getExceptionMessage=mr;var vr,yr=[],gr=e=>{var r=yr[e];return r||(e>=yr.length&&(yr.length=e+1),yr[e]=r=vr.get(e)),q(vr.get(e)==r,"JavaScript-side Wasm function table mirror is out of date!"),r};u.invokeEntryPoint=(e,r)=>{var t=gr(e)(r);Z(),function(e){oe()?fr.setExitStatus(e):Mn(e)}(t)};var _r=()=>{var e=An(),r=Fn();qn(e,r)},wr=e=>{wr.shown||(wr.shown={}),wr.shown[e]||(wr.shown[e]=1,y&&(e="warning: "+e),$(e))},Er=[],br=0,Tr=0;function kr(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(e){s()[this.ptr+4>>2]=e},this.get_type=function(){return s()[this.ptr+4>>2]},this.set_destructor=function(e){s()[this.ptr+8>>2]=e},this.get_destructor=function(){return s()[this.ptr+8>>2]},this.set_caught=function(e){e=e?1:0,t()[this.ptr+12>>0]=e,Oe(e)},this.get_caught=function(){return 0!=t()[this.ptr+12>>0]},this.set_rethrown=function(e){e=e?1:0,t()[this.ptr+13>>0]=e,Oe(e)},this.get_rethrown=function(){return 0!=t()[this.ptr+13>>0]},this.init=function(e,r){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(r)},this.set_adjusted_ptr=function(e){s()[this.ptr+16>>2]=e},this.get_adjusted_ptr=function(){return s()[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Vn(this.get_type()))return s()[this.excPtr>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}var Sr=e=>{var r=Tr&&Tr.excPtr;if(!r)return In(0),0;var t=new kr(r);t.set_adjusted_ptr(r);var n=t.get_type();if(!n)return In(0),r;for(var o in e){var a=e[o];if(0===a||a===n)break;var i=t.ptr+16;if(Yn(a,n,i))return In(a),r}return In(n),r};function Pr(e,r,t){if(b)return Gt(2,1,e,r,t);sr.varargs=t;try{var n=sr.getStreamFromFD(e);switch(r){case 0:if((a=sr.get())<0)return-28;for(;ir.streams[a];)a++;return ir.createStream(n,a).fd;case 1:case 2:case 6:case 7:return 0;case 3:return n.flags;case 4:var a=sr.get();return n.flags|=a,0;case 5:return a=sr.getp(),o()[a+0>>1]=2,De(2),0;case 16:case 8:default:return-28;case 9:return 28,i()[En()>>2]=28,Me(28),-1}}catch(e){if(void 0===ir||"ErrnoError"!==e.name)throw e;return-e.errno}}function Cr(e,r){if(b)return Gt(3,1,e,r);try{var t=sr.getStreamFromFD(e);return sr.doStat(ir.stat,t.path,r)}catch(e){if(void 0===ir||"ErrnoError"!==e.name)throw e;return-e.errno}}function Ar(e,r,n){if(b)return Gt(4,1,e,r,n);sr.varargs=n;try{var a=sr.getStreamFromFD(e);switch(r){case 21509:case 21510:case 21511:case 21512:case 21524:case 21515:return a.tty?0:-59;case 21505:if(!a.tty)return-59;if(a.tty.ops.ioctl_tcgets){var s=a.tty.ops.ioctl_tcgets(a),l=sr.getp();i()[l>>2]=s.c_iflag||0,Me(s.c_iflag||0),i()[l+4>>2]=s.c_oflag||0,Me(s.c_oflag||0),i()[l+8>>2]=s.c_cflag||0,Me(s.c_cflag||0),i()[l+12>>2]=s.c_lflag||0,Me(s.c_lflag||0);for(var c=0;c<32;c++)t()[l+c+17>>0]=s.c_cc[c]||0,Oe(s.c_cc[c]||0);return 0}return 0;case 21506:case 21507:case 21508:if(!a.tty)return-59;if(a.tty.ops.ioctl_tcsets){l=sr.getp();var d=i()[l>>2],u=i()[l+4>>2],f=i()[l+8>>2],h=i()[l+12>>2],p=[];for(c=0;c<32;c++)p.push(t()[l+c+17>>0]);return a.tty.ops.ioctl_tcsets(a.tty,r,{c_iflag:d,c_oflag:u,c_cflag:f,c_lflag:h,c_cc:p})}return 0;case 21519:return a.tty?(l=sr.getp(),i()[l>>2]=0,Me(0),0):-59;case 21520:return a.tty?-28:-59;case 21531:return l=sr.getp(),ir.ioctl(a,r,l);case 21523:if(!a.tty)return-59;if(a.tty.ops.ioctl_tiocgwinsz){var m=a.tty.ops.ioctl_tiocgwinsz(a.tty);l=sr.getp(),o()[l>>1]=m[0],De(m[0]),o()[l+2>>1]=m[1],De(m[1])}return 0;default:return-28}}catch(e){if(void 0===ir||"ErrnoError"!==e.name)throw e;return-e.errno}}function Fr(e,r){if(b)return Gt(5,1,e,r);try{return e=sr.getStr(e),sr.doStat(ir.lstat,e,r)}catch(e){if(void 0===ir||"ErrnoError"!==e.name)throw e;return-e.errno}}function Or(e,r,t,n){if(b)return Gt(6,1,e,r,t,n);try{r=sr.getStr(r);var o=256&n,a=4096&n;return q(!(n&=-6401),`unknown flags in __syscall_newfstatat: ${n}`),r=sr.calculateAt(e,r,a),sr.doStat(o?ir.lstat:ir.stat,r,t)}catch(e){if(void 0===ir||"ErrnoError"!==e.name)throw e;return-e.errno}}function Dr(e,r,t,n){if(b)return Gt(7,1,e,r,t,n);sr.varargs=n;try{r=sr.getStr(r),r=sr.calculateAt(e,r);var o=n?sr.get():0;return ir.open(r,t,o).fd}catch(e){if(void 0===ir||"ErrnoError"!==e.name)throw e;return-e.errno}}function Mr(e,r){if(b)return Gt(8,1,e,r);try{return e=sr.getStr(e),sr.doStat(ir.stat,e,r)}catch(e){if(void 0===ir||"ErrnoError"!==e.name)throw e;return-e.errno}}function Nr(e,r,t){if(b)return Gt(9,1,e,r,t);try{return r=sr.getStr(r),r=sr.calculateAt(e,r),0===t?ir.unlink(r):512===t?ir.rmdir(r):pe("Invalid flags passed to unlinkat"),0}catch(e){if(void 0===ir||"ErrnoError"!==e.name)throw e;return-e.errno}}var $r={},Ir=e=>{for(;e.length;){var r=e.pop();e.pop()(r)}};function Rr(e){return this.fromWireType(i()[e>>2])}var xr,Lr,Wr,jr={},Ur={},Br={},zr=e=>{throw new xr(e)},Hr=(e,r,t)=>{function n(r){var n=t(r);n.length!==e.length&&zr("Mismatched type converter count");for(var o=0;o{Ur.hasOwnProperty(e)?o[r]=Ur[e]:(a.push(e),jr.hasOwnProperty(e)||(jr[e]=[]),jr[e].push((()=>{o[r]=Ur[e],++i===a.length&&n(o)})))})),0===a.length&&n(o)},Gr=e=>{for(var r="",t=e;n()[t];)r+=Lr[n()[t++]];return r},Yr=e=>{throw new Wr(e)};function Vr(e,r,t={}){if(!("argPackAdvance"in r))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(e,r,t={}){var n=r.name;if(e||Yr(`type "${n}" must have a positive integer typeid pointer`),Ur.hasOwnProperty(e)){if(t.ignoreDuplicateRegistrations)return;Yr(`Cannot register type '${n}' twice`)}if(Ur[e]=r,delete Br[e],jr.hasOwnProperty(e)){var o=jr[e];delete jr[e],o.forEach((e=>e()))}}(e,r,t)}var qr,Kr=e=>{Yr(e.$$.ptrType.registeredClass.name+" instance already deleted")},Xr=!1,Jr=e=>{},Zr=e=>{e.count.value-=1,0===e.count.value&&(e=>{e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)})(e)},Qr=(e,r,t)=>{if(r===t)return e;if(void 0===t.baseClass)return null;var n=Qr(e,r,t.baseClass);return null===n?null:t.downcast(n)},et={},rt=[],tt=()=>{for(;rt.length;){var e=rt.pop();e.$$.deleteScheduled=!1,e.delete()}},nt={},ot=(e,r)=>(r.ptrType&&r.ptr||zr("makeClassHandle requires ptr and ptrType"),!!r.smartPtrType!=!!r.smartPtr&&zr("Both smartPtrType and smartPtr must be specified"),r.count={value:1},it(Object.create(e,{$$:{value:r}})));function at(e){var r=this.getPointee(e);if(!r)return this.destructor(e),null;var t=((e,r)=>(r=((e,r)=>{for(void 0===r&&Yr("ptr should not be undefined");e.baseClass;)r=e.upcast(r),e=e.baseClass;return r})(e,r),nt[r]))(this.registeredClass,r);if(void 0!==t){if(0===t.$$.count.value)return t.$$.ptr=r,t.$$.smartPtr=e,t.clone();var n=t.clone();return this.destructor(e),n}function o(){return this.isSmartPointer?ot(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:r,smartPtrType:this,smartPtr:e}):ot(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var a,i=this.registeredClass.getActualType(r),s=et[i];if(!s)return o.call(this);a=this.isConst?s.constPointerType:s.pointerType;var l=Qr(r,this.registeredClass,a.registeredClass);return null===l?o.call(this):this.isSmartPointer?ot(a.registeredClass.instancePrototype,{ptrType:a,ptr:l,smartPtrType:this,smartPtr:e}):ot(a.registeredClass.instancePrototype,{ptrType:a,ptr:l})}var it=e=>"undefined"==typeof FinalizationRegistry?(it=e=>e,e):(Xr=new FinalizationRegistry((e=>{console.warn(e.leakWarning.stack.replace(/^Error: /,"")),Zr(e.$$)})),it=e=>{var r=e.$$;if(r.smartPtr){var t={$$:r},n=r.ptrType.registeredClass;t.leakWarning=new Error(`Embind found a leaked C++ instance ${n.name} <${dr(r.ptr)}>.\nWe'll free it automatically in this case, but this functionality is not reliable across various environments.\nMake sure to invoke .delete() manually once you're done with the instance instead.\nOriginally allocated`),"captureStackTrace"in Error&&Error.captureStackTrace(t.leakWarning,at),Xr.register(e,t,e)}return e},Jr=e=>Xr.unregister(e),it(e));function st(){}var lt=e=>{if(void 0===e)return"_unknown";var r=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return r>=48&&r<=57?`_${e}`:e};function ct(e,r){return{[e=lt(e)]:function(){return r.apply(this,arguments)}}[e]}var dt=(e,r,t)=>{if(void 0===e[r].overloadTable){var n=e[r];e[r]=function(){return e[r].overloadTable.hasOwnProperty(arguments.length)||Yr(`Function '${t}' called with an invalid number of arguments (${arguments.length}) - expects one of (${e[r].overloadTable})!`),e[r].overloadTable[arguments.length].apply(this,arguments)},e[r].overloadTable=[],e[r].overloadTable[n.argCount]=n}},ut=(e,r,t)=>{u.hasOwnProperty(e)?((void 0===t||void 0!==u[e].overloadTable&&void 0!==u[e].overloadTable[t])&&Yr(`Cannot register public name '${e}' twice`),dt(u,e,e),u.hasOwnProperty(t)&&Yr(`Cannot register multiple overloads of a function with the same number of arguments (${t})!`),u[e].overloadTable[t]=r):(u[e]=r,void 0!==t&&(u[e].numArguments=t))};function ft(e,r,t,n,o,a,i,s){this.name=e,this.constructor=r,this.instancePrototype=t,this.rawDestructor=n,this.baseClass=o,this.getActualType=a,this.upcast=i,this.downcast=s,this.pureVirtualFunctions=[]}var ht=(e,r,t)=>{for(;r!==t;)r.upcast||Yr(`Expected null or instance of ${t.name}, got an instance of ${r.name}`),e=r.upcast(e),r=r.baseClass;return e};function pt(e,r){if(null===r)return this.isReference&&Yr(`null is not a valid ${this.name}`),0;r.$$||Yr(`Cannot pass "${Nt(r)}" as a ${this.name}`),r.$$.ptr||Yr(`Cannot pass deleted object as a pointer of type ${this.name}`);var t=r.$$.ptrType.registeredClass;return ht(r.$$.ptr,t,this.registeredClass)}function mt(e,r){var t;if(null===r)return this.isReference&&Yr(`null is not a valid ${this.name}`),this.isSmartPointer?(t=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,t),t):0;r.$$||Yr(`Cannot pass "${Nt(r)}" as a ${this.name}`),r.$$.ptr||Yr(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&r.$$.ptrType.isConst&&Yr(`Cannot convert argument of type ${r.$$.smartPtrType?r.$$.smartPtrType.name:r.$$.ptrType.name} to parameter type ${this.name}`);var n=r.$$.ptrType.registeredClass;if(t=ht(r.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===r.$$.smartPtr&&Yr("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:r.$$.smartPtrType===this?t=r.$$.smartPtr:Yr(`Cannot convert argument of type ${r.$$.smartPtrType?r.$$.smartPtrType.name:r.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:t=r.$$.smartPtr;break;case 2:if(r.$$.smartPtrType===this)t=r.$$.smartPtr;else{var o=r.clone();t=this.rawShare(t,Ot.toHandle((()=>o.delete()))),null!==e&&e.push(this.rawDestructor,t)}break;default:Yr("Unsupporting sharing policy")}return t}function vt(e,r){if(null===r)return this.isReference&&Yr(`null is not a valid ${this.name}`),0;r.$$||Yr(`Cannot pass "${Nt(r)}" as a ${this.name}`),r.$$.ptr||Yr(`Cannot pass deleted object as a pointer of type ${this.name}`),r.$$.ptrType.isConst&&Yr(`Cannot convert argument of type ${r.$$.ptrType.name} to parameter type ${this.name}`);var t=r.$$.ptrType.registeredClass;return ht(r.$$.ptr,t,this.registeredClass)}function yt(e){return this.fromWireType(s()[e>>2])}function gt(e,r,t,n,o,a,i,s,l,c,d){this.name=e,this.registeredClass=r,this.isReference=t,this.isConst=n,this.isSmartPointer=o,this.pointeeType=a,this.sharingPolicy=i,this.rawGetPointee=s,this.rawConstructor=l,this.rawShare=c,this.rawDestructor=d,o||void 0!==r.baseClass?this.toWireType=mt:n?(this.toWireType=pt,this.destructorFunction=null):(this.toWireType=vt,this.destructorFunction=null)}var _t,wt=(e,r,t)=>{u.hasOwnProperty(e)||zr("Replacing nonexistant public symbol"),void 0!==u[e].overloadTable&&void 0!==t?u[e].overloadTable[t]=r:(u[e]=r,u[e].argCount=t)},Et=(e,r)=>{var t=(e=Gr(e)).includes("j")?((e,r)=>{q(e.includes("j")||e.includes("p"),"getDynCaller should only be called with i64 sigs");var t=[];return function(){return t.length=0,Object.assign(t,arguments),((e,r,t)=>e.includes("j")?((e,r,t)=>{q("dynCall_"+e in u,`bad function pointer type - dynCall function not found for sig '${e}'`),t&&t.length?q(t.length===e.substring(1).replace(/j/g,"--").length):q(1==e.length);var n=u["dynCall_"+e];return t&&t.length?n.apply(null,[r].concat(t)):n.call(null,r)})(e,r,t):(q(gr(r),`missing table entry in dynCall: ${r}`),gr(r).apply(null,t)))(e,r,t)}})(e,r):gr(r);return"function"!=typeof t&&Yr(`unknown function pointer with signature ${e}: ${r}`),t},bt=e=>{var r=Pn(e),t=Gr(r);return bn(r),t},Tt=(e,r)=>{var t=[],n={};throw r.forEach((function e(r){n[r]||Ur[r]||(Br[r]?Br[r].forEach(e):(t.push(r),n[r]=!0))})),new _t(`${e}: `+t.map(bt).join([", "]))},kt=(e,r)=>{for(var t=[],n=0;n>2]);return t};function St(e,r,t,n,o,a){var i=r.length;i<2&&Yr("argTypes array size mismatch! Must at least get return value and 'this' types!"),q(!a,"Async bindings are only supported with JSPI.");for(var s=null!==r[1]&&null!==t,l=!1,c=1;c0?", ":"")+f),h+=(d||a?"var rv = ":"")+"invoker(fn"+(f.length>0?", ":"")+f+");\n",l)h+="runDestructors(destructors);\n";else for(c=s?1:2;c(e instanceof Object||Yr(`${t} with invalid "this": ${e}`),e instanceof r.registeredClass.constructor||Yr(`${t} incompatible with "this" of type ${e.constructor.name}`),e.$$.ptr||Yr(`cannot call emscripten binding method ${t} on deleted object`),ht(e.$$.ptr,e.$$.ptrType.registeredClass,r.registeredClass));function Ct(){this.allocated=[void 0],this.freelist=[]}var At=new Ct,Ft=e=>{e>=At.reserved&&0==--At.get(e).refcount&&At.free(e)},Ot={toValue:e=>(e||Yr("Cannot use deleted val. handle = "+e),At.get(e).value),toHandle:e=>{switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return At.allocate({refcount:1,value:e})}}},Dt=(e,r,l)=>{switch(r){case 1:return l?function(e){return this.fromWireType(t()[e>>0])}:function(e){return this.fromWireType(n()[e>>0])};case 2:return l?function(e){return this.fromWireType(o()[e>>1])}:function(e){return this.fromWireType(a()[e>>1])};case 4:return l?function(e){return this.fromWireType(i()[e>>2])}:function(e){return this.fromWireType(s()[e>>2])};default:throw new TypeError(`invalid integer width (${r}): ${e}`)}},Mt=(e,r)=>{var t=Ur[e];return void 0===t&&Yr(r+" has unknown type "+bt(e)),t},Nt=e=>{if(null===e)return"null";var r=typeof e;return"object"===r||"array"===r||"function"===r?e.toString():""+e},$t=(e,r)=>{switch(r){case 4:return function(e){return this.fromWireType((I.buffer!=W.buffer&&K(),G)[e>>2])};case 8:return function(e){return this.fromWireType(l()[e>>3])};default:throw new TypeError(`invalid float width (${r}): ${e}`)}},It=(e,r,l)=>{switch(r){case 1:return l?e=>t()[e>>0]:e=>n()[e>>0];case 2:return l?e=>o()[e>>1]:e=>a()[e>>1];case 4:return l?e=>i()[e>>2]:e=>s()[e>>2];default:throw new TypeError(`invalid integer width (${r}): ${e}`)}},Rt="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,xt=(e,r)=>{q(e%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");for(var t=e,i=t>>1,s=i+r/2;!(i>=s)&&a()[i];)++i;if((t=i<<1)-e>32&&Rt)return Rt.decode(n().slice(e,t));for(var l="",c=0;!(c>=r/2);++c){var d=o()[e+2*c>>1];if(0==d)break;l+=String.fromCharCode(d)}return l},Lt=(e,r,t)=>{if(q(r%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),q("number"==typeof t,"stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),void 0===t&&(t=2147483647),t<2)return 0;for(var n=r,a=(t-=2)<2*e.length?t/2:e.length,i=0;i>1]=s,De(s),r+=2}return o()[r>>1]=0,De(0),r-n},Wt=e=>2*e.length,jt=(e,r)=>{q(e%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");for(var t=0,n="";!(t>=r/4);){var o=i()[e+4*t>>2];if(0==o)break;if(++t,o>=65536){var a=o-65536;n+=String.fromCharCode(55296|a>>10,56320|1023&a)}else n+=String.fromCharCode(o)}return n},Ut=(e,r,t)=>{if(q(r%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),q("number"==typeof t,"stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),void 0===t&&(t=2147483647),t<4)return 0;for(var n=r,o=n+t-4,a=0;a=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&e.charCodeAt(++a)),i()[r>>2]=s,Me(s),(r+=4)+4>o)break}return i()[r>>2]=0,Me(0),r-n},Bt=e=>{for(var r=0,t=0;t=55296&&n<=57343&&++t,r+=4}return r},zt=e=>{if("function"==typeof Atomics.waitAsync){var r=Atomics.waitAsync(i(),e>>2,e);q(r.async),r.value.then(Ht);var t=e+128;Atomics.store(i(),t>>2,1)}};u.__emscripten_thread_mailbox_await=zt;var Ht=()=>{var e=kn();e&&(zt(e),(e=>{if(V)$("user callback triggered after runtime exited or application aborted. Ignoring.");else try{e(),(()=>{if(!oe())try{b?Mn(L):cr(L)}catch(e){ur(e)}})()}catch(e){ur(e)}})((()=>Nn())))};u.checkMailbox=Ht;var Gt=function(e,r){var t=arguments.length-2,n=arguments;return tr((()=>{for(var o=t,a=jn(8*o),i=a>>3,s=0;se%4==0&&(e%100!=0||e%400==0),qt=[0,31,60,91,121,152,182,213,244,274,305,335],Kt=[0,31,59,90,120,151,181,212,243,273,304,334],Xt=(e,r)=>(q(e==e>>>0||e==(0|e)),q(r===(0|r)),r+2097152>>>0<4194305-!!e?(e>>>0)+4294967296*r:NaN);function Jt(e,r,t,n,o,a,l,c){if(b)return Gt(10,1,e,r,t,n,o,a,l,c);var d=Xt(o,a);try{if(isNaN(d))return 61;var u=sr.getStreamFromFD(n),f=ir.mmap(u,e,d,r,t),h=f.ptr;return i()[l>>2]=f.allocated,Me(f.allocated),s()[c>>2]=h,0}catch(e){if(void 0===ir||"ErrnoError"!==e.name)throw e;return-e.errno}}function Zt(e,r,t,n,o,a,i){if(b)return Gt(11,1,e,r,t,n,o,a,i);var s=Xt(a,i);try{if(isNaN(s))return 61;var l=sr.getStreamFromFD(o);2&t&&sr.doMsync(e,l,r,n,s),ir.munmap(l)}catch(e){if(void 0===ir||"ErrnoError"!==e.name)throw e;return-e.errno}}var Qt,en=e=>{var r=He(e)+1,t=wn(r);return t&&nr(e,t,r),t};Qt=()=>performance.timeOrigin+performance.now();var rn=e=>{var r=I.buffer,t=(e-r.byteLength+65535)/65536;try{return I.grow(t),K(),1}catch(t){$(`growMemory: Attempted to grow heap from ${r.byteLength} bytes to ${e} bytes, but got error: ${t}`)}},tn={},nn=()=>{if(!nn.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:h||"./this.program"};for(var r in tn)void 0===tn[r]?delete e[r]:e[r]=tn[r];var t=[];for(var r in e)t.push(`${r}=${e[r]}`);nn.strings=t}return nn.strings},on=function(e,r){if(b)return Gt(12,1,e,r);var n=0;return nn().forEach(((o,a)=>{var i=r+n;s()[e+4*a>>2]=i,Me(i),((e,r)=>{for(var n=0;n>0]=e.charCodeAt(n),Oe(e.charCodeAt(n));t()[r>>0]=0,Oe(0)})(o,i),n+=o.length+1})),0},an=function(e,r){if(b)return Gt(13,1,e,r);var t=nn();s()[e>>2]=t.length,Me(t.length);var n=0;return t.forEach((e=>n+=e.length+1)),s()[r>>2]=n,Me(n),0};function sn(e){if(b)return Gt(14,1,e);try{var r=sr.getStreamFromFD(e);return ir.close(r),0}catch(e){if(void 0===ir||"ErrnoError"!==e.name)throw e;return e.errno}}function ln(e,r,n,o){if(b)return Gt(15,1,e,r,n,o);try{var a=((e,r,n,o)=>{for(var a=0,i=0;i>2],c=s()[r+4>>2];r+=8;var d=ir.read(e,t(),l,c,o);if(d<0)return-1;if(a+=d,d>2]=a,Me(a),0}catch(e){if(void 0===ir||"ErrnoError"!==e.name)throw e;return e.errno}}function cn(e,r,t,n,o){if(b)return Gt(16,1,e,r,t,n,o);var a=Xt(r,t);try{if(isNaN(a))return 61;var s=sr.getStreamFromFD(e);return ir.llseek(s,a,n),ye=[s.position>>>0,(ve=s.position,+Math.abs(ve)>=1?ve>0?+Math.floor(ve/4294967296)>>>0:~~+Math.ceil((ve-+(~~ve>>>0))/4294967296)>>>0:0)],i()[o>>2]=ye[0],i()[o+4>>2]=ye[1],Ne(s.position),s.getdents&&0===a&&0===n&&(s.getdents=null),0}catch(e){if(void 0===ir||"ErrnoError"!==e.name)throw e;return e.errno}}function dn(e,r,n,o){if(b)return Gt(17,1,e,r,n,o);try{var a=((e,r,n,o)=>{for(var a=0,i=0;i>2],c=s()[r+4>>2];r+=8;var d=ir.write(e,t(),l,c,o);if(d<0)return-1;a+=d,void 0!==o&&(o+=d)}return a})(sr.getStreamFromFD(e),r,n);return s()[o>>2]=a,Me(a),0}catch(e){if(void 0===ir||"ErrnoError"!==e.name)throw e;return e.errno}}var un=[31,29,31,30,31,30,31,31,30,31,30,31],fn=[31,28,31,30,31,30,31,31,30,31,30,31];fr.init();var hn,pn,mn=function(e,r,t,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=ir.nextInode++,this.name=r,this.mode=t,this.node_ops={},this.stream_ops={},this.rdev=n};Object.defineProperties(mn.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return ir.isDir(this.mode)}},isDevice:{get:function(){return ir.isChrdev(this.mode)}}}),ir.FSNode=mn,ir.createPreloadedFile=(e,r,t,n,o,a,i,s,l,c)=>{var d=r?je.resolve(Le.join2(e,r)):e,u=ue(`cp ${d}`);function f(t){function f(t){c&&c(),s||((e,r,t,n,o,a)=>{ir.createDataFile(e,r,t,n,o,a)})(e,r,t,n,o,l),a&&a(),he(u)}((e,r,t,n)=>{"undefined"!=typeof Browser&&Browser.init();var o=!1;return Xe.forEach((a=>{o||a.canHandle(r)&&(a.handle(e,r,t,n),o=!0)})),o})(t,d,f,(()=>{i&&i(),he(u)}))||f(t)}fe(u),"string"==typeof t?((e,r,t,n)=>{var o=ue(`al ${e}`);w(e,(r=>{q(r,`Loading data file "${e}" failed (no arrayBuffer).`),f(new Uint8Array(r)),o&&he(o)}),(r=>{if(!t)throw`Loading data file "${e}" failed.`;t()})),o&&fe(o)})(t,0,i):f(t)},ir.staticInit(),u.FS_createPath=ir.createPath,u.FS_createDataFile=ir.createDataFile,u.FS_createPreloadedFile=ir.createPreloadedFile,u.FS_unlink=ir.unlink,u.FS_createLazyFile=ir.createLazyFile,u.FS_createDevice=ir.createDevice,y&&er.staticInit(),Qe={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},xr=u.InternalError=class extends Error{constructor(e){super(e),this.name="InternalError"}},(()=>{for(var e=new Array(256),r=0;r<256;++r)e[r]=String.fromCharCode(r);Lr=e})(),Wr=u.BindingError=class extends Error{constructor(e){super(e),this.name="BindingError"}},Object.assign(st.prototype,{isAliasOf(e){if(!(this instanceof st))return!1;if(!(e instanceof st))return!1;var r=this.$$.ptrType.registeredClass,t=this.$$.ptr;e.$$=e.$$;for(var n=e.$$.ptrType.registeredClass,o=e.$$.ptr;r.baseClass;)t=r.upcast(t),r=r.baseClass;for(;n.baseClass;)o=n.upcast(o),n=n.baseClass;return r===n&&t===o},clone(){if(this.$$.ptr||Kr(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e,r=it(Object.create(Object.getPrototypeOf(this),{$$:{value:(e=this.$$,{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType})}}));return r.$$.count.value+=1,r.$$.deleteScheduled=!1,r},delete(){this.$$.ptr||Kr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Yr("Object already scheduled for deletion"),Jr(this),Zr(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||Kr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Yr("Object already scheduled for deletion"),rt.push(this),1===rt.length&&qr&&qr(tt),this.$$.deleteScheduled=!0,this}}),u.getInheritedInstanceCount=()=>Object.keys(nt).length,u.getLiveInheritedInstances=()=>{var e=[];for(var r in nt)nt.hasOwnProperty(r)&&e.push(nt[r]);return e},u.flushPendingDeletes=tt,u.setDelayFunction=e=>{qr=e,rt.length&&qr&&qr(tt)},Object.assign(gt.prototype,{getPointee(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},destructor(e){this.rawDestructor&&this.rawDestructor(e)},argPackAdvance:8,readValueFromPointer:yt,deleteObject(e){null!==e&&e.delete()},fromWireType:at}),_t=u.UnboundTypeError=(hn=Error,(pn=ct("UnboundTypeError",(function(e){this.name="UnboundTypeError",this.message=e;var r=new Error(e).stack;void 0!==r&&(this.stack=this.toString()+"\n"+r.replace(/^Error(:[^\n]*)?\n/,""))}))).prototype=Object.create(hn.prototype),pn.prototype.constructor=pn,pn.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`},pn),Object.assign(Ct.prototype,{get(e){return q(void 0!==this.allocated[e],`invalid handle: ${e}`),this.allocated[e]},has(e){return void 0!==this.allocated[e]},allocate(e){var r=this.freelist.pop()||this.allocated.length;return this.allocated[r]=e,r},free(e){q(void 0!==this.allocated[e]),this.allocated[e]=void 0,this.freelist.push(e)}}),At.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),At.reserved=At.allocated.length,u.count_emval_handles=()=>{for(var e=0,r=At.reserved;r{pe(`Assertion failed: ${or(e)}, at: `+[r?or(r):"unknown filename",t,n?or(n):"unknown function"])},__cxa_begin_catch:e=>{var r=new kr(e);return r.get_caught()||(r.set_caught(!0),br--),r.set_rethrown(!1),Er.push(r),zn(r.excPtr),r.get_exception_ptr()},__cxa_end_catch:()=>{$n(0,0),q(Er.length>0);var e=Er.pop();Bn(e.excPtr),Tr=0},__cxa_find_matching_catch_2:()=>Sr([]),__cxa_find_matching_catch_3:e=>Sr([e]),__cxa_rethrow:()=>{var e=Er.pop();e||pe("no exception to throw");var r=e.excPtr;throw e.get_rethrown()||(Er.push(e),e.set_rethrown(!0),e.set_caught(!1),br++),Tr=new be(r)},__cxa_throw:(e,r,t)=>{throw new kr(e).init(r,t),Tr=new be(e),br++,Tr},__cxa_uncaught_exceptions:()=>br,__emscripten_init_main_thread_js:e=>{Cn(e,!v,1,!m,2097152,!1),fr.threadInitTLS()},__emscripten_thread_cleanup:e=>{b?postMessage({cmd:"cleanupThread",thread:e}):xe(e)},__handle_stack_overflow:e=>{var r=An(),t=Fn();pe(`stack overflow (Attempt to set SP to ${dr(e)}, with stack limits [${dr(t)} - ${dr(r)}]). If you require more stack space build with -sSTACK_SIZE=`)},__resumeException:e=>{throw Tr||(Tr=new be(e)),Tr},__syscall_fcntl64:Pr,__syscall_fstat64:Cr,__syscall_ioctl:Ar,__syscall_lstat64:Fr,__syscall_newfstatat:Or,__syscall_openat:Dr,__syscall_stat64:Mr,__syscall_unlinkat:Nr,_embind_finalize_value_object:e=>{var r=$r[e];delete $r[e];var t=r.rawConstructor,n=r.rawDestructor,o=r.fields,a=o.map((e=>e.getterReturnType)).concat(o.map((e=>e.setterArgumentType)));Hr([e],a,(e=>{var a={};return o.forEach(((r,t)=>{var n=r.fieldName,i=e[t],s=r.getter,l=r.getterContext,c=e[t+o.length],d=r.setter,u=r.setterContext;a[n]={read:e=>i.fromWireType(s(l,e)),write:(e,r)=>{var t=[];d(u,e,c.toWireType(t,r)),Ir(t)}}})),[{name:r.name,fromWireType:e=>{var r={};for(var t in a)r[t]=a[t].read(e);return n(e),r},toWireType:(e,r)=>{for(var o in a)if(!(o in r))throw new TypeError(`Missing field: "${o}"`);var i=t();for(o in a)a[o].write(i,r[o]);return null!==e&&e.push(n,i),i},argPackAdvance:8,readValueFromPointer:Rr,destructorFunction:n}]}))},_embind_register_bigint:(e,r,t,n,o)=>{},_embind_register_bool:(e,r,t,o)=>{Vr(e,{name:r=Gr(r),fromWireType:function(e){return!!e},toWireType:function(e,r){return r?t:o},argPackAdvance:8,readValueFromPointer:function(e){return this.fromWireType(n()[e])},destructorFunction:null})},_embind_register_class:(e,r,t,n,o,a,i,s,l,c,d,u,f)=>{d=Gr(d),a=Et(o,a),s&&(s=Et(i,s)),c&&(c=Et(l,c)),f=Et(u,f);var h=lt(d);ut(h,(function(){Tt(`Cannot construct ${d} due to unbound types`,[n])})),Hr([e,r,t],n?[n]:[],(function(r){var t,o;r=r[0],o=n?(t=r.registeredClass).instancePrototype:st.prototype;var i=ct(h,(function(){if(Object.getPrototypeOf(this)!==l)throw new Wr("Use 'new' to construct "+d);if(void 0===u.constructor_body)throw new Wr(d+" has no accessible constructor");var e=u.constructor_body[arguments.length];if(void 0===e)throw new Wr(`Tried to invoke ctor of ${d} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(u.constructor_body).toString()}) parameters instead!`);return e.apply(this,arguments)})),l=Object.create(o,{constructor:{value:i}});i.prototype=l;var u=new ft(d,i,l,f,t,a,s,c);u.baseClass&&(void 0===u.baseClass.__derivedClasses&&(u.baseClass.__derivedClasses=[]),u.baseClass.__derivedClasses.push(u));var p=new gt(d,u,!0,!1,!1),m=new gt(d+"*",u,!1,!1,!1),v=new gt(d+" const*",u,!1,!0,!1);return et[e]={pointerType:m,constPointerType:v},wt(h,i),[p,m,v]}))},_embind_register_class_constructor:(e,r,t,n,o,a)=>{q(r>0);var i=kt(r,t);o=Et(n,o),Hr([],[e],(function(e){var t=`constructor ${(e=e[0]).name}`;if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[r-1])throw new Wr(`Cannot register multiple constructors with identical number of parameters (${r-1}) for class '${e.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return e.registeredClass.constructor_body[r-1]=()=>{Tt(`Cannot construct ${e.name} due to unbound types`,i)},Hr([],i,(n=>(n.splice(1,0,null),e.registeredClass.constructor_body[r-1]=St(t,n,null,o,a),[]))),[]}))},_embind_register_class_function:(e,r,t,n,o,a,i,s,l)=>{var c=kt(t,n);r=Gr(r),a=Et(o,a),Hr([],[e],(function(e){var n=`${(e=e[0]).name}.${r}`;function o(){Tt(`Cannot call ${n} due to unbound types`,c)}r.startsWith("@@")&&(r=Symbol[r.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(r);var d=e.registeredClass.instancePrototype,u=d[r];return void 0===u||void 0===u.overloadTable&&u.className!==e.name&&u.argCount===t-2?(o.argCount=t-2,o.className=e.name,d[r]=o):(dt(d,r,n),d[r].overloadTable[t-2]=o),Hr([],c,(function(o){var s=St(n,o,e,a,i,l);return void 0===d[r].overloadTable?(s.argCount=t-2,d[r]=s):d[r].overloadTable[t-2]=s,[]})),[]}))},_embind_register_class_property:(e,r,t,n,o,a,i,s,l,c)=>{r=Gr(r),o=Et(n,o),Hr([],[e],(function(e){var n=`${(e=e[0]).name}.${r}`,d={get(){Tt(`Cannot access ${n} due to unbound types`,[t,i])},enumerable:!0,configurable:!0};return d.set=l?()=>Tt(`Cannot access ${n} due to unbound types`,[t,i]):e=>Yr(n+" is a read-only property"),Object.defineProperty(e.registeredClass.instancePrototype,r,d),Hr([],l?[t,i]:[t],(function(t){var i=t[0],d={get(){var r=Pt(this,e,n+" getter");return i.fromWireType(o(a,r))},enumerable:!0};if(l){l=Et(s,l);var u=t[1];d.set=function(r){var t=Pt(this,e,n+" setter"),o=[];l(c,t,u.toWireType(o,r)),Ir(o)}}return Object.defineProperty(e.registeredClass.instancePrototype,r,d),[]})),[]}))},_embind_register_emval:(e,r)=>{Vr(e,{name:r=Gr(r),fromWireType:e=>{var r=Ot.toValue(e);return Ft(e),r},toWireType:(e,r)=>Ot.toHandle(r),argPackAdvance:8,readValueFromPointer:Rr,destructorFunction:null})},_embind_register_enum:(e,r,t,n)=>{function o(){}r=Gr(r),o.values={},Vr(e,{name:r,constructor:o,fromWireType:function(e){return this.constructor.values[e]},toWireType:(e,r)=>r.value,argPackAdvance:8,readValueFromPointer:Dt(r,t,n),destructorFunction:null}),ut(r,o)},_embind_register_enum_value:(e,r,t)=>{var n=Mt(e,"enum");r=Gr(r);var o=n.constructor,a=Object.create(n.constructor.prototype,{value:{value:t},constructor:{value:ct(`${n.name}_${r}`,(function(){}))}});o.values[t]=a,o[r]=a},_embind_register_float:(e,r,t)=>{Vr(e,{name:r=Gr(r),fromWireType:e=>e,toWireType:(e,r)=>{if("number"!=typeof r&&"boolean"!=typeof r)throw new TypeError(`Cannot convert ${Nt(r)} to ${this.name}`);return r},argPackAdvance:8,readValueFromPointer:$t(r,t),destructorFunction:null})},_embind_register_function:(e,r,t,n,o,a,i)=>{var s=kt(r,t);e=Gr(e),o=Et(n,o),ut(e,(function(){Tt(`Cannot call ${e} due to unbound types`,s)}),r-1),Hr([],s,(function(t){var n=[t[0],null].concat(t.slice(1));return wt(e,St(e,n,null,o,a,i),r-1),[]}))},_embind_register_integer:(e,r,t,n,o)=>{r=Gr(r),-1===o&&(o=4294967295);var a=e=>e;if(0===n){var i=32-8*t;a=e=>e<>>i}var s=r.includes("unsigned"),l=(e,t)=>{if("number"!=typeof e&&"boolean"!=typeof e)throw new TypeError(`Cannot convert "${Nt(e)}" to ${t}`);if(eo)throw new TypeError(`Passing a number "${Nt(e)}" from JS side to C/C++ side to an argument of type "${r}", which is outside the valid range [${n}, ${o}]!`)};Vr(e,{name:r,fromWireType:a,toWireType:s?function(e,r){return l(r,this.name),r>>>0}:function(e,r){return l(r,this.name),r},argPackAdvance:8,readValueFromPointer:It(r,t,0!==n),destructorFunction:null})},_embind_register_memory_view:(e,r,n)=>{var o=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][r];function a(e){var r=s()[e>>2],n=s()[e+4>>2];return new o(t().buffer,n,r)}Vr(e,{name:n=Gr(n),fromWireType:a,argPackAdvance:8,readValueFromPointer:a},{ignoreDuplicateRegistrations:!0})},_embind_register_std_string:(e,r)=>{var t="std::string"===(r=Gr(r));Vr(e,{name:r,fromWireType(e){var r,o=s()[e>>2],a=e+4;if(t)for(var i=a,l=0;l<=o;++l){var c=a+l;if(l==o||0==n()[c]){var d=or(i,c-i);void 0===r?r=d:(r+=String.fromCharCode(0),r+=d),i=c+1}}else{var u=new Array(o);for(l=0;l>2]=o,Me(o),t&&a)nr(r,l,o+1);else if(a)for(var c=0;c255&&(bn(l),Yr("String has UTF-16 code units that do not fit in 8 bits")),n()[l+c]=d}else for(c=0;c{var n,o,i,l,c;t=Gr(t),2===r?(n=xt,o=Lt,l=Wt,i=()=>a(),c=1):4===r&&(n=jt,o=Ut,l=Bt,i=()=>s(),c=2),Vr(e,{name:t,fromWireType:e=>{for(var t,o=s()[e>>2],a=i(),l=e+4,d=0;d<=o;++d){var u=e+4+d*r;if(d==o||0==a[u>>c]){var f=n(l,u-l);void 0===t?t=f:(t+=String.fromCharCode(0),t+=f),l=u+r}}return bn(e),t},toWireType:(e,n)=>{"string"!=typeof n&&Yr(`Cannot pass non-string to C++ string type ${t}`);var a=l(n),i=wn(4+a+r);return s()[i>>2]=a>>c,o(n,i+4,a+r),null!==e&&e.push(bn,i),i},argPackAdvance:8,readValueFromPointer:Rr,destructorFunction(e){bn(e)}})},_embind_register_value_object:(e,r,t,n,o,a)=>{$r[e]={name:Gr(r),rawConstructor:Et(t,n),rawDestructor:Et(o,a),fields:[]}},_embind_register_value_object_field:(e,r,t,n,o,a,i,s,l,c)=>{$r[e].fields.push({fieldName:Gr(r),getterReturnType:t,getter:Et(n,o),getterContext:a,setterArgumentType:i,setter:Et(s,l),setterContext:c})},_embind_register_void:(e,r)=>{Vr(e,{isVoid:!0,name:r=Gr(r),argPackAdvance:0,fromWireType:()=>{},toWireType:(e,r)=>{}})},_emscripten_get_now_is_monotonic:()=>!0,_emscripten_notify_mailbox_postmessage:(e,r,t)=>{if(e==r)setTimeout((()=>Ht()));else if(b)postMessage({targetThread:e,cmd:"checkMailbox"});else{var n=fr.pthreads[e];if(!n)return void $(`Cannot send message to thread with ID ${e}, unknown thread ID!`);n.postMessage({cmd:"checkMailbox"})}},_emscripten_receive_on_main_thread_js:(e,r,t,n)=>{Yt.length=t;for(var o=n>>3,a=0;a{y&&fr.pthreads[e].ref()},_emval_decref:Ft,_emval_incref:e=>{e>4&&(At.get(e).refcount+=1)},_emval_take_value:(e,r)=>{var t=(e=Mt(e,"_emval_take_value")).readValueFromPointer(r);return Ot.toHandle(t)},_localtime_js:function(e,r,t){var n=Xt(e,r),o=new Date(1e3*n);i()[t>>2]=o.getSeconds(),Me(o.getSeconds()),i()[t+4>>2]=o.getMinutes(),Me(o.getMinutes()),i()[t+8>>2]=o.getHours(),Me(o.getHours()),i()[t+12>>2]=o.getDate(),Me(o.getDate()),i()[t+16>>2]=o.getMonth(),Me(o.getMonth()),i()[t+20>>2]=o.getFullYear()-1900,Me(o.getFullYear()-1900),i()[t+24>>2]=o.getDay(),Me(o.getDay());var a=0|(e=>(Vt(e.getFullYear())?qt:Kt)[e.getMonth()]+e.getDate()-1)(o);i()[t+28>>2]=a,Me(a),i()[t+36>>2]=-60*o.getTimezoneOffset(),Me(-60*o.getTimezoneOffset());var s=new Date(o.getFullYear(),0,1),l=new Date(o.getFullYear(),6,1).getTimezoneOffset(),c=s.getTimezoneOffset(),d=0|(l!=c&&o.getTimezoneOffset()==Math.min(c,l));i()[t+32>>2]=d,Me(d)},_mmap_js:Jt,_munmap_js:Zt,_tzset_js:(e,r,t)=>{var n=(new Date).getFullYear(),o=new Date(n,0,1),a=new Date(n,6,1),l=o.getTimezoneOffset(),c=a.getTimezoneOffset(),d=Math.max(l,c);function u(e){var r=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return r?r[1]:"GMT"}s()[e>>2]=60*d,Me(60*d),i()[r>>2]=Number(l!=c),Me(Number(l!=c));var f=u(o),h=u(a),p=en(f),m=en(h);c>2]=p,Me(p),s()[t+4>>2]=m,Me(m)):(s()[t>>2]=m,Me(m),s()[t+4>>2]=p,Me(p))},abort:()=>{pe("native code called abort()")},emscripten_check_blocking_allowed:()=>{y||v||wr("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")},emscripten_date_now:()=>Date.now(),emscripten_exit_with_live_runtime:()=>{throw ne+=1,"unwind"},emscripten_get_now:Qt,emscripten_resize_heap:e=>{var r=n().length;if((e>>>=0)<=r)return!1;var t=2147483648;if(e>t)return $(`Cannot enlarge memory, requested ${e} bytes, but the limit is 2147483648 bytes!`),!1;for(var o,a=1;a<=4;a*=2){var i=r*(1+.2/a);i=Math.min(i,e+100663296);var s=Math.min(t,(o=Math.max(e,i))+(65536-o%65536)%65536),l=Qt(),c=rn(s);if($e(`Heap resize call from ${r} to ${s} took ${Qt()-l} msecs. Success: ${!!c}`),c)return!0}return $(`Failed to grow the heap from ${r} bytes to ${s} bytes, not enough memory!`),!1},environ_get:on,environ_sizes_get:an,exit:cr,fd_close:sn,fd_read:ln,fd_seek:cn,fd_write:dn,invoke_dd:function(e,r){var t=Ln();try{return gr(e)(r)}catch(e){if(Wn(t),!(e instanceof Ee))throw e;$n(1,0)}},invoke_dii:function(e,r,t){var n=Ln();try{return gr(e)(r,t)}catch(e){if(Wn(n),!(e instanceof Ee))throw e;$n(1,0)}},invoke_diii:function(e,r,t,n){var o=Ln();try{return gr(e)(r,t,n)}catch(e){if(Wn(o),!(e instanceof Ee))throw e;$n(1,0)}},invoke_fi:function(e,r){var t=Ln();try{return gr(e)(r)}catch(e){if(Wn(t),!(e instanceof Ee))throw e;$n(1,0)}},invoke_fii:function(e,r,t){var n=Ln();try{return gr(e)(r,t)}catch(e){if(Wn(n),!(e instanceof Ee))throw e;$n(1,0)}},invoke_fiii:function(e,r,t,n){var o=Ln();try{return gr(e)(r,t,n)}catch(e){if(Wn(o),!(e instanceof Ee))throw e;$n(1,0)}},invoke_i:function(e){var r=Ln();try{return gr(e)()}catch(e){if(Wn(r),!(e instanceof Ee))throw e;$n(1,0)}},invoke_idi:function(e,r,t){var n=Ln();try{return gr(e)(r,t)}catch(e){if(Wn(n),!(e instanceof Ee))throw e;$n(1,0)}},invoke_ii:function(e,r){var t=Ln();try{return gr(e)(r)}catch(e){if(Wn(t),!(e instanceof Ee))throw e;$n(1,0)}},invoke_iid:function(e,r,t){var n=Ln();try{return gr(e)(r,t)}catch(e){if(Wn(n),!(e instanceof Ee))throw e;$n(1,0)}},invoke_iidddd:function(e,r,t,n,o,a){var i=Ln();try{return gr(e)(r,t,n,o,a)}catch(e){if(Wn(i),!(e instanceof Ee))throw e;$n(1,0)}},invoke_iii:function(e,r,t){var n=Ln();try{return gr(e)(r,t)}catch(e){if(Wn(n),!(e instanceof Ee))throw e;$n(1,0)}},invoke_iiid:function(e,r,t,n){var o=Ln();try{return gr(e)(r,t,n)}catch(e){if(Wn(o),!(e instanceof Ee))throw e;$n(1,0)}},invoke_iiii:function(e,r,t,n){var o=Ln();try{return gr(e)(r,t,n)}catch(e){if(Wn(o),!(e instanceof Ee))throw e;$n(1,0)}},invoke_iiiid:function(e,r,t,n,o){var a=Ln();try{return gr(e)(r,t,n,o)}catch(e){if(Wn(a),!(e instanceof Ee))throw e;$n(1,0)}},invoke_iiiii:function(e,r,t,n,o){var a=Ln();try{return gr(e)(r,t,n,o)}catch(e){if(Wn(a),!(e instanceof Ee))throw e;$n(1,0)}},invoke_iiiiid:function(e,r,t,n,o,a){var i=Ln();try{return gr(e)(r,t,n,o,a)}catch(e){if(Wn(i),!(e instanceof Ee))throw e;$n(1,0)}},invoke_iiiiii:function(e,r,t,n,o,a){var i=Ln();try{return gr(e)(r,t,n,o,a)}catch(e){if(Wn(i),!(e instanceof Ee))throw e;$n(1,0)}},invoke_iiiiiii:function(e,r,t,n,o,a,i){var s=Ln();try{return gr(e)(r,t,n,o,a,i)}catch(e){if(Wn(s),!(e instanceof Ee))throw e;$n(1,0)}},invoke_iiiiiiii:function(e,r,t,n,o,a,i,s){var l=Ln();try{return gr(e)(r,t,n,o,a,i,s)}catch(e){if(Wn(l),!(e instanceof Ee))throw e;$n(1,0)}},invoke_iiiiiiiii:function(e,r,t,n,o,a,i,s,l){var c=Ln();try{return gr(e)(r,t,n,o,a,i,s,l)}catch(e){if(Wn(c),!(e instanceof Ee))throw e;$n(1,0)}},invoke_iiiiiiiiiii:function(e,r,t,n,o,a,i,s,l,c,d){var u=Ln();try{return gr(e)(r,t,n,o,a,i,s,l,c,d)}catch(e){if(Wn(u),!(e instanceof Ee))throw e;$n(1,0)}},invoke_iiiiiiiiiiii:function(e,r,t,n,o,a,i,s,l,c,d,u){var f=Ln();try{return gr(e)(r,t,n,o,a,i,s,l,c,d,u)}catch(e){if(Wn(f),!(e instanceof Ee))throw e;$n(1,0)}},invoke_iiiiiiiiiiiii:function(e,r,t,n,o,a,i,s,l,c,d,u,f){var h=Ln();try{return gr(e)(r,t,n,o,a,i,s,l,c,d,u,f)}catch(e){if(Wn(h),!(e instanceof Ee))throw e;$n(1,0)}},invoke_jiiii:function(e,r,t,n,o){var a=Ln();try{return Kn(e,r,t,n,o)}catch(e){if(Wn(a),!(e instanceof Ee))throw e;$n(1,0)}},invoke_v:function(e){var r=Ln();try{gr(e)()}catch(e){if(Wn(r),!(e instanceof Ee))throw e;$n(1,0)}},invoke_vi:function(e,r){var t=Ln();try{gr(e)(r)}catch(e){if(Wn(t),!(e instanceof Ee))throw e;$n(1,0)}},invoke_vid:function(e,r,t){var n=Ln();try{gr(e)(r,t)}catch(e){if(Wn(n),!(e instanceof Ee))throw e;$n(1,0)}},invoke_vidddddd:function(e,r,t,n,o,a,i,s){var l=Ln();try{gr(e)(r,t,n,o,a,i,s)}catch(e){if(Wn(l),!(e instanceof Ee))throw e;$n(1,0)}},invoke_vii:function(e,r,t){var n=Ln();try{gr(e)(r,t)}catch(e){if(Wn(n),!(e instanceof Ee))throw e;$n(1,0)}},invoke_viif:function(e,r,t,n){var o=Ln();try{gr(e)(r,t,n)}catch(e){if(Wn(o),!(e instanceof Ee))throw e;$n(1,0)}},invoke_viii:function(e,r,t,n){var o=Ln();try{gr(e)(r,t,n)}catch(e){if(Wn(o),!(e instanceof Ee))throw e;$n(1,0)}},invoke_viiid:function(e,r,t,n,o){var a=Ln();try{gr(e)(r,t,n,o)}catch(e){if(Wn(a),!(e instanceof Ee))throw e;$n(1,0)}},invoke_viiii:function(e,r,t,n,o){var a=Ln();try{gr(e)(r,t,n,o)}catch(e){if(Wn(a),!(e instanceof Ee))throw e;$n(1,0)}},invoke_viiiif:function(e,r,t,n,o,a){var i=Ln();try{gr(e)(r,t,n,o,a)}catch(e){if(Wn(i),!(e instanceof Ee))throw e;$n(1,0)}},invoke_viiiii:function(e,r,t,n,o,a){var i=Ln();try{gr(e)(r,t,n,o,a)}catch(e){if(Wn(i),!(e instanceof Ee))throw e;$n(1,0)}},invoke_viiiiii:function(e,r,t,n,o,a,i){var s=Ln();try{gr(e)(r,t,n,o,a,i)}catch(e){if(Wn(s),!(e instanceof Ee))throw e;$n(1,0)}},invoke_viiiiiii:function(e,r,t,n,o,a,i,s){var l=Ln();try{gr(e)(r,t,n,o,a,i,s)}catch(e){if(Wn(l),!(e instanceof Ee))throw e;$n(1,0)}},invoke_viiiiiiii:function(e,r,t,n,o,a,i,s,l){var c=Ln();try{gr(e)(r,t,n,o,a,i,s,l)}catch(e){if(Wn(c),!(e instanceof Ee))throw e;$n(1,0)}},invoke_viiiiiiiiii:function(e,r,t,n,o,a,i,s,l,c,d){var u=Ln();try{gr(e)(r,t,n,o,a,i,s,l,c,d)}catch(e){if(Wn(u),!(e instanceof Ee))throw e;$n(1,0)}},invoke_viiiiiiiiiiiii:function(e,r,t,n,o,a,i,s,l,c,d,u,f,h){var p=Ln();try{gr(e)(r,t,n,o,a,i,s,l,c,d,u,f,h)}catch(e){if(Wn(p),!(e instanceof Ee))throw e;$n(1,0)}},invoke_viiiiiiiiiiiiiii:function(e,r,t,n,o,a,i,s,l,c,d,u,f,h,p,m){var v=Ln();try{gr(e)(r,t,n,o,a,i,s,l,c,d,u,f,h,p,m)}catch(e){if(Wn(v),!(e instanceof Ee))throw e;$n(1,0)}},llvm_eh_typeid_for:e=>e,memory:I||u.wasmMemory,strftime_l:(e,r,n,o,a)=>((e,r,n,o)=>{var a=s()[o+40>>2],l={tm_sec:i()[o>>2],tm_min:i()[o+4>>2],tm_hour:i()[o+8>>2],tm_mday:i()[o+12>>2],tm_mon:i()[o+16>>2],tm_year:i()[o+20>>2],tm_wday:i()[o+24>>2],tm_yday:i()[o+28>>2],tm_isdst:i()[o+32>>2],tm_gmtoff:i()[o+36>>2],tm_zone:a?or(a):""},c=or(n),d={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var u in d)c=c.replace(new RegExp(u,"g"),d[u]);var f=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],h=["January","February","March","April","May","June","July","August","September","October","November","December"];function p(e,r,t){for(var n="number"==typeof e?e.toString():e||"";n.length0?1:0}var n;return 0===(n=t(e.getFullYear()-r.getFullYear()))&&0===(n=t(e.getMonth()-r.getMonth()))&&(n=t(e.getDate()-r.getDate())),n}function y(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function g(e){var r=((e,r)=>{for(var t=new Date(e.getTime());r>0;){var n=Vt(t.getFullYear()),o=t.getMonth(),a=(n?un:fn)[o];if(!(r>a-t.getDate()))return t.setDate(t.getDate()+r),t;r-=a-t.getDate()+1,t.setDate(1),o<11?t.setMonth(o+1):(t.setMonth(0),t.setFullYear(t.getFullYear()+1))}return t})(new Date(e.tm_year+1900,0,1),e.tm_yday),t=new Date(r.getFullYear(),0,4),n=new Date(r.getFullYear()+1,0,4),o=y(t),a=y(n);return v(o,r)<=0?v(a,r)<=0?r.getFullYear()+1:r.getFullYear():r.getFullYear()-1}var _={"%a":e=>f[e.tm_wday].substring(0,3),"%A":e=>f[e.tm_wday],"%b":e=>h[e.tm_mon].substring(0,3),"%B":e=>h[e.tm_mon],"%C":e=>m((e.tm_year+1900)/100|0,2),"%d":e=>m(e.tm_mday,2),"%e":e=>p(e.tm_mday,2," "),"%g":e=>g(e).toString().substring(2),"%G":e=>g(e),"%H":e=>m(e.tm_hour,2),"%I":e=>{var r=e.tm_hour;return 0==r?r=12:r>12&&(r-=12),m(r,2)},"%j":e=>m(e.tm_mday+((e,r)=>{for(var t=0,n=0;n<=r;t+=e[n++]);return t})(Vt(e.tm_year+1900)?un:fn,e.tm_mon-1),3),"%m":e=>m(e.tm_mon+1,2),"%M":e=>m(e.tm_min,2),"%n":()=>"\n","%p":e=>e.tm_hour>=0&&e.tm_hour<12?"AM":"PM","%S":e=>m(e.tm_sec,2),"%t":()=>"\t","%u":e=>e.tm_wday||7,"%U":e=>{var r=e.tm_yday+7-e.tm_wday;return m(Math.floor(r/7),2)},"%V":e=>{var r=Math.floor((e.tm_yday+7-(e.tm_wday+6)%7)/7);if((e.tm_wday+371-e.tm_yday-2)%7<=2&&r++,r){if(53==r){var t=(e.tm_wday+371-e.tm_yday)%7;4==t||3==t&&Vt(e.tm_year)||(r=1)}}else{r=52;var n=(e.tm_wday+7-e.tm_yday-1)%7;(4==n||5==n&&Vt(e.tm_year%400-1))&&r++}return m(r,2)},"%w":e=>e.tm_wday,"%W":e=>{var r=e.tm_yday+7-(e.tm_wday+6)%7;return m(Math.floor(r/7),2)},"%y":e=>(e.tm_year+1900).toString().substring(2),"%Y":e=>e.tm_year+1900,"%z":e=>{var r=e.tm_gmtoff,t=r>=0;return r=(r=Math.abs(r)/60)/60*100+r%60,(t?"+":"-")+String("0000"+r).slice(-4)},"%Z":e=>e.tm_zone,"%%":()=>"%"};for(var u in c=c.replace(/%%/g,"\0\0"),_)c.includes(u)&&(c=c.replace(new RegExp(u,"g"),_[u](l)));var w,E,b=Ye(c=c.replace(/\0\0/g,"%"),!1);return b.length>r?0:(E=e,q((w=b).length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),t().set(w,E),b.length-1)})(e,r,n,o)},_n=function(){var e={env:gn,wasi_snapshot_preview1:gn};function r(e,r){var t,n;return _n=e.exports,n=_n._emscripten_tls_init,fr.tlsInitFunctions.push(n),q(vr=_n.__indirect_function_table,"table not found in wasm exports"),t=_n.__wasm_call_ctors,ee.unshift(t),R=r,he("wasm-instantiate"),_n}fe("wasm-instantiate");var t,n,o,a,i=u;if(u.instantiateWasm)try{return u.instantiateWasm(e,r)}catch(e){$(`Module.instantiateWasm callback failed with error: ${e}`),d(e)}return(t=M,n=me,o=e,a=function(e){q(u===i,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),i=null,r(e.instance,e.module)},t||"function"!=typeof WebAssembly.instantiateStreaming||ge(n)||_e(n)||y||"function"!=typeof fetch?ke(n,o,a):fetch(n,{credentials:"same-origin"}).then((e=>WebAssembly.instantiateStreaming(e,o).then(a,(function(e){return $(`wasm streaming compile failed: ${e}`),$("falling back to ArrayBuffer instantiation"),ke(n,o,a)}))))).catch(d),{}}(),wn=(we("__wasm_call_ctors"),we("__cxa_free_exception"),we("malloc")),En=we("__errno_location"),bn=u._free=we("free"),Tn=u._fflush=we("fflush"),kn=(u.__emscripten_tls_init=we("_emscripten_tls_init"),u._pthread_self=()=>(kn=u._pthread_self=_n.pthread_self)()),Sn=we("emscripten_builtin_memalign"),Pn=we("__getTypeName"),Cn=(u.__embind_initialize_bindings=we("_embind_initialize_bindings"),u.__emscripten_thread_init=we("_emscripten_thread_init")),An=(u.__emscripten_thread_crashed=we("_emscripten_thread_crashed"),we("emscripten_main_thread_process_queued_calls"),we("emscripten_main_runtime_thread_id"),()=>(An=_n.emscripten_stack_get_base)()),Fn=()=>(Fn=_n.emscripten_stack_get_end)(),On=we("_emscripten_run_on_main_thread_js"),Dn=we("_emscripten_thread_free_data"),Mn=u.__emscripten_thread_exit=we("_emscripten_thread_exit"),Nn=u.__emscripten_check_mailbox=we("_emscripten_check_mailbox"),$n=we("setThrew"),In=we("setTempRet0"),Rn=()=>(Rn=_n.emscripten_stack_init)(),xn=(e,r)=>(xn=_n.emscripten_stack_set_limits)(e,r),Ln=we("stackSave"),Wn=we("stackRestore"),jn=we("stackAlloc"),Un=()=>(Un=_n.emscripten_stack_get_current)(),Bn=we("__cxa_decrement_exception_refcount"),zn=we("__cxa_increment_exception_refcount"),Hn=we("__cxa_demangle"),Gn=u.___get_exception_message=we("__get_exception_message"),Yn=we("__cxa_can_catch"),Vn=we("__cxa_is_pointer_type"),qn=u.___set_stack_limits=we("__set_stack_limits"),Kn=(u.dynCall_jii=we("dynCall_jii"),u.dynCall_viij=we("dynCall_viij"),u.dynCall_jiji=we("dynCall_jiji"),u.dynCall_viijii=we("dynCall_viijii"),u.dynCall_jiiii=we("dynCall_jiiii"));function Xn(){if(!(se>0)){if(b||(q(!b),Rn(),J()),b)return c(u),ae(),void startWorker(u);!function(){if(q(!b),u.preRun)for("function"==typeof u.preRun&&(u.preRun=[u.preRun]);u.preRun.length;)ie(u.preRun.shift());hr(Q)}(),se>0||(u.setStatus?(u.setStatus("Running..."),setTimeout((function(){setTimeout((function(){u.setStatus("")}),1),e()}),1)):e(),Z())}function e(){vn||(vn=!0,u.calledRun=!0,V||(ae(),c(u),u.onRuntimeInitialized&&u.onRuntimeInitialized(),q(!u._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),function(){if(Z(),!b){if(u.postRun)for("function"==typeof u.postRun&&(u.postRun=[u.postRun]);u.postRun.length;)e=u.postRun.shift(),re.unshift(e);var e;hr(re)}}()))}}if(u.dynCall_iiiiij=we("dynCall_iiiiij"),u.dynCall_iiiiijj=we("dynCall_iiiiijj"),u.dynCall_iiiiiijj=we("dynCall_iiiiiijj"),u.addRunDependency=fe,u.removeRunDependency=he,u.FS_createPath=ir.createPath,u.FS_createLazyFile=ir.createLazyFile,u.FS_createDevice=ir.createDevice,u.keepRuntimeAlive=oe,u.wasmMemory=I,u.ExitStatus=Ie,u.FS_createPreloadedFile=ir.createPreloadedFile,u.FS=ir,u.FS_createDataFile=ir.createDataFile,u.FS_unlink=ir.unlink,u.PThread=fr,["writeI53ToI64","writeI53ToI64Clamped","writeI53ToI64Signaling","writeI53ToU64Clamped","writeI53ToU64Signaling","readI53FromI64","readI53FromU64","convertI32PairToI53","convertU32PairToI53","inetPton4","inetNtop4","inetPton6","inetNtop6","readSockaddr","writeSockaddr","getHostByName","getCallstack","emscriptenLog","convertPCtoSourceLocation","readEmAsmArgs","jstoi_q","jstoi_s","listenOnce","autoResumeAudioContext","runtimeKeepalivePop","safeSetTimeout","asmjsMangle","getNativeTypeSize","STACK_SIZE","STACK_ALIGN","POINTER_SIZE","ASSERTIONS","getCFunc","ccall","cwrap","uleb128Encode","sigToWasmTypes","generateFuncType","convertJsFunctionToWasm","getEmptyTableSlot","updateTableMap","getFunctionAddress","addFunction","removeFunction","reallyNegative","unSign","strLen","reSign","formatString","intArrayToString","AsciiToString","registerKeyEventCallback","maybeCStringToJsString","findEventTarget","findCanvasEventTarget","getBoundingClientRect","fillMouseEventData","registerMouseEventCallback","registerWheelEventCallback","registerUiEventCallback","registerFocusEventCallback","fillDeviceOrientationEventData","registerDeviceOrientationEventCallback","fillDeviceMotionEventData","registerDeviceMotionEventCallback","screenOrientation","fillOrientationChangeEventData","registerOrientationChangeEventCallback","fillFullscreenChangeEventData","registerFullscreenChangeEventCallback","JSEvents_requestFullscreen","JSEvents_resizeCanvasForFullscreen","registerRestoreOldStyle","hideEverythingExceptGivenElement","restoreHiddenElements","setLetterbox","softFullscreenResizeWebGLRenderTarget","doRequestFullscreen","fillPointerlockChangeEventData","registerPointerlockChangeEventCallback","registerPointerlockErrorEventCallback","requestPointerLock","fillVisibilityChangeEventData","registerVisibilityChangeEventCallback","registerTouchEventCallback","fillGamepadEventData","registerGamepadEventCallback","registerBeforeUnloadEventCallback","fillBatteryEventData","battery","registerBatteryEventCallback","setCanvasElementSizeCallingThread","setCanvasElementSizeMainThread","setCanvasElementSize","getCanvasSizeCallingThread","getCanvasSizeMainThread","getCanvasElementSize","checkWasiClock","wasiRightsToMuslOFlags","wasiOFlagsToMuslOFlags","createDyncallWrapper","setImmediateWrapped","clearImmediateWrapped","polyfillSetImmediate","getPromise","makePromise","idsToPromises","makePromiseCallback","setMainLoop","getSocketFromFD","getSocketAddress","FS_mkdirTree","_setNetworkCallback","heapObjectForWebGLType","heapAccessShiftForWebGLHeap","webgl_enable_ANGLE_instanced_arrays","webgl_enable_OES_vertex_array_object","webgl_enable_WEBGL_draw_buffers","webgl_enable_WEBGL_multi_draw","emscriptenWebGLGet","computeUnpackAlignedImageSize","colorChannelsInGlTextureFormat","emscriptenWebGLGetTexPixelData","__glGenObject","emscriptenWebGLGetUniform","webglGetUniformLocation","webglPrepareUniformLocationsBeforeFirstUse","webglGetLeftBracePos","emscriptenWebGLGetVertexAttrib","__glGetActiveAttribOrUniform","writeGLArray","emscripten_webgl_destroy_context_before_on_calling_thread","registerWebGlEventCallback","runAndAbortIfError","SDL_unicode","SDL_ttfContext","SDL_audio","ALLOC_NORMAL","ALLOC_STACK","allocate","writeStringToMemory","writeAsciiToMemory","registerInheritedInstance","unregisterInheritedInstance","getStringOrSymbol","craftEmvalAllocator","emval_get_global","emval_lookupTypes","emval_allocateDestructors","emval_addMethodCaller"].forEach((function(e){"undefined"==typeof globalThis||Object.getOwnPropertyDescriptor(globalThis,e)||Object.defineProperty(globalThis,e,{configurable:!0,get(){var r="`"+e+"` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line",t=e;t.startsWith("_")||(t="$"+e),r+=" (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE='"+t+"')",Pe(e)&&(r+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"),wr(r)}}),Ae(e)})),["run","addOnPreRun","addOnInit","addOnPreMain","addOnExit","addOnPostRun","FS_createFolder","FS_createLink","FS_readFile","out","err","callMain","abort","wasmExports","stackAlloc","stackSave","stackRestore","getTempRet0","setTempRet0","GROWABLE_HEAP_I8","GROWABLE_HEAP_U8","GROWABLE_HEAP_I16","GROWABLE_HEAP_U16","GROWABLE_HEAP_I32","GROWABLE_HEAP_U32","GROWABLE_HEAP_F32","GROWABLE_HEAP_F64","writeStackCookie","checkStackCookie","convertI32PairToI53Checked","ptrToString","zeroMemory","exitJS","getHeapMax","growMemory","ENV","setStackLimits","MONTH_DAYS_REGULAR","MONTH_DAYS_LEAP","MONTH_DAYS_REGULAR_CUMULATIVE","MONTH_DAYS_LEAP_CUMULATIVE","isLeapYear","ydayFromDate","arraySum","addDays","ERRNO_CODES","ERRNO_MESSAGES","setErrNo","DNS","Protocols","Sockets","initRandomFill","randomFill","timers","warnOnce","UNWIND_CACHE","readEmAsmArgsArray","getExecutableName","dynCallLegacy","getDynCaller","dynCall","handleException","runtimeKeepalivePush","callUserCallback","maybeExit","asyncLoad","alignMemory","mmapAlloc","handleAllocatorInit","HandleAllocator","wasmTable","freeTableIndexes","functionsInTableMap","setValue","getValue","PATH","PATH_FS","UTF8Decoder","UTF8ArrayToString","UTF8ToString","stringToUTF8Array","stringToUTF8","lengthBytesUTF8","intArrayFromString","stringToAscii","UTF16Decoder","UTF16ToString","stringToUTF16","lengthBytesUTF16","UTF32ToString","stringToUTF32","lengthBytesUTF32","stringToNewUTF8","stringToUTF8OnStack","writeArrayToMemory","JSEvents","specialHTMLTargets","currentFullscreenStrategy","restoreOldWindowedStyle","demangle","demangleAll","jsStackTrace","stackTrace","getEnvStrings","doReadv","doWritev","promiseMap","uncaughtExceptionCount","exceptionLast","exceptionCaught","ExceptionInfo","findMatchingCatch","getExceptionMessageCommon","incrementExceptionRefcount","decrementExceptionRefcount","getExceptionMessage","Browser","wget","SYSCALLS","preloadPlugins","FS_modeStringToFlags","FS_getMode","FS_stdin_getChar_buffer","FS_stdin_getChar","MEMFS","TTY","PIPEFS","SOCKFS","tempFixedLengthArray","miniTempWebGLFloatBuffers","miniTempWebGLIntBuffers","GL","emscripten_webgl_power_preferences","AL","GLUT","EGL","GLEW","IDBStore","SDL","SDL_gfx","allocateUTF8","allocateUTF8OnStack","terminateWorker","killThread","cleanupThread","registerTLSInit","cancelThread","spawnThread","exitOnMainThread","proxyToMainThread","proxiedJSCallArgs","invokeEntryPoint","checkMailbox","InternalError","BindingError","throwInternalError","throwBindingError","registeredTypes","awaitingDependencies","typeDependencies","tupleRegistrations","structRegistrations","sharedRegisterType","whenDependentTypesAreResolved","embind_charCodes","embind_init_charCodes","readLatin1String","getTypeName","heap32VectorToArray","requireRegisteredType","UnboundTypeError","PureVirtualError","GenericWireTypeSize","init_embind","throwUnboundTypeError","ensureOverloadTable","exposePublicSymbol","replacePublicSymbol","extendError","createNamedFunction","embindRepr","registeredInstances","getBasestPointer","getInheritedInstance","getInheritedInstanceCount","getLiveInheritedInstances","registeredPointers","registerType","integerReadValueFromPointer","enumReadValueFromPointer","floatReadValueFromPointer","simpleReadValueFromPointer","readPointer","runDestructors","newFunc","craftInvokerFunction","embind__requireFunction","genericPointerToWireType","constNoSmartPtrRawPointerToWireType","nonConstNoSmartPtrRawPointerToWireType","init_RegisteredPointer","RegisteredPointer","RegisteredPointer_fromWireType","runDestructor","releaseClassHandle","finalizationRegistry","detachFinalizer_deps","detachFinalizer","attachFinalizer","makeClassHandle","init_ClassHandle","ClassHandle","throwInstanceAlreadyDeleted","deletionQueue","flushPendingDeletes","delayFunction","setDelayFunction","RegisteredClass","shallowCopyInternalPointer","downcastPointer","upcastPointer","validateThis","char_0","char_9","makeLegalFunctionName","emval_handles","emval_symbols","init_emval","count_emval_handles","Emval","emval_newers","emval_methodCallers","emval_registeredMethods","IDBFS","NODEFS"].forEach(Ae),ce=function e(){vn||Xn(),vn||(ce=e)},u.preInit)for("function"==typeof u.preInit&&(u.preInit=[u.preInit]);u.preInit.length>0;)u.preInit.pop()();return Xn(),r.ready}})();"object"==typeof exports&&"object"==typeof module?module.exports=createCCP4Module:"function"==typeof define&&define.amd&&define([],(()=>createCCP4Module)); \ No newline at end of file diff --git a/webapp/public/baby-gru/wasm/web_example.wasm b/webapp/public/baby-gru/wasm/web_example.wasm new file mode 100644 index 000000000..7be44b04c Binary files /dev/null and b/webapp/public/baby-gru/wasm/web_example.wasm differ diff --git a/webserver/public/bbsrc_logo.png b/webapp/public/bbsrc_logo.png similarity index 100% rename from webserver/public/bbsrc_logo.png rename to webapp/public/bbsrc_logo.png diff --git a/webserver/public/ccp4_logo.png b/webapp/public/ccp4_logo.png similarity index 100% rename from webserver/public/ccp4_logo.png rename to webapp/public/ccp4_logo.png diff --git a/webserver/public/github-mark-white.png b/webapp/public/github-mark-white.png similarity index 100% rename from webserver/public/github-mark-white.png rename to webapp/public/github-mark-white.png diff --git a/webserver/public/github-mark.png b/webapp/public/github-mark.png similarity index 100% rename from webserver/public/github-mark.png rename to webapp/public/github-mark.png diff --git a/webserver/public/glycomics.png b/webapp/public/glycomics.png similarity index 100% rename from webserver/public/glycomics.png rename to webapp/public/glycomics.png diff --git a/webserver/public/index.html b/webapp/public/index.html similarity index 100% rename from webserver/public/index.html rename to webapp/public/index.html diff --git a/webserver/public/manifest.json b/webapp/public/manifest.json similarity index 100% rename from webserver/public/manifest.json rename to webapp/public/manifest.json diff --git a/webapp/public/moorhen_logo.png b/webapp/public/moorhen_logo.png new file mode 100644 index 000000000..0bd17bdfa Binary files /dev/null and b/webapp/public/moorhen_logo.png differ diff --git a/webserver/public/privateer.data b/webapp/public/privateer.data similarity index 100% rename from webserver/public/privateer.data rename to webapp/public/privateer.data diff --git a/webapp/public/privateer_glycomics_database_slim.json.gzip b/webapp/public/privateer_glycomics_database_slim.json.gzip new file mode 100644 index 000000000..25d24bdbc Binary files /dev/null and b/webapp/public/privateer_glycomics_database_slim.json.gzip differ diff --git a/webserver/public/refmac_figure.png b/webapp/public/refmac_figure.png similarity index 100% rename from webserver/public/refmac_figure.png rename to webapp/public/refmac_figure.png diff --git a/webserver/public/royal_society_logo.png b/webapp/public/royal_society_logo.png similarity index 100% rename from webserver/public/royal_society_logo.png rename to webapp/public/royal_society_logo.png diff --git a/webserver/public/torsion_figure.png b/webapp/public/torsion_figure.png similarity index 100% rename from webserver/public/torsion_figure.png rename to webapp/public/torsion_figure.png diff --git a/webserver/public/uoy_logo.png b/webapp/public/uoy_logo.png similarity index 100% rename from webserver/public/uoy_logo.png rename to webapp/public/uoy_logo.png diff --git a/webserver/public/vite.svg b/webapp/public/vite.svg similarity index 100% rename from webserver/public/vite.svg rename to webapp/public/vite.svg diff --git a/webserver/public/ysbl_logo.png b/webapp/public/ysbl_logo.png similarity index 100% rename from webserver/public/ysbl_logo.png rename to webapp/public/ysbl_logo.png diff --git a/webapp/src/App.css b/webapp/src/App.css new file mode 100644 index 000000000..32a2320d5 --- /dev/null +++ b/webapp/src/App.css @@ -0,0 +1,114 @@ +.react-grid-layout { + position: relative; + transition: height 200ms ease; +} +.react-grid-item { + transition: all 200ms ease; + transition-property: left, top; +} +.react-grid-item.cssTransforms { + transition-property: transform; +} +.react-grid-item.resizing { + z-index: 1; + will-change: width, height; +} + +.react-grid-item.react-draggable-dragging { + transition: none; + z-index: 3; + will-change: transform; +} + +.react-grid-item.react-grid-placeholder { + background: #4a5568; + opacity: 0.05; + transition-duration: 100ms; + z-index: 2; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; +} + +.react-grid-item > .react-resizable-handle { + position: absolute; + width: 20px; + height: 20px; + bottom: 0; + right: 0; + background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg08IS0tIEdlbmVyYXRvcjogQWRvYmUgRmlyZXdvcmtzIENTNiwgRXhwb3J0IFNWRyBFeHRlbnNpb24gYnkgQWFyb24gQmVhbGwgKGh0dHA6Ly9maXJld29ya3MuYWJlYWxsLmNvbSkgLiBWZXJzaW9uOiAwLjYuMSAgLS0+DTwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DTxzdmcgaWQ9IlVudGl0bGVkLVBhZ2UlMjAxIiB2aWV3Qm94PSIwIDAgNiA2IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmMDAiIHZlcnNpb249IjEuMSINCXhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiDQl4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjZweCIgaGVpZ2h0PSI2cHgiDT4NCTxnIG9wYWNpdHk9IjAuMzAyIj4NCQk8cGF0aCBkPSJNIDYgNiBMIDAgNiBMIDAgNC4yIEwgNCA0LjIgTCA0LjIgNC4yIEwgNC4yIDAgTCA2IDAgTCA2IDYgTCA2IDYgWiIgZmlsbD0iIzAwMDAwMCIvPg0JPC9nPg08L3N2Zz4='); + background-position: bottom right; + padding: 0 3px 3px 0; + background-repeat: no-repeat; + background-origin: content-box; + box-sizing: border-box; + cursor: se-resize; +} + +.react-resizable { + position: relative; +} +.react-resizable-handle { + position: absolute; + width: 20px; + height: 20px; + background-repeat: no-repeat; + background-origin: content-box; + box-sizing: border-box; + background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+'); + background-position: bottom right; + padding: 0 3px 3px 0; +} +.react-resizable-handle-sw { + bottom: 0; + left: 0; + cursor: sw-resize; + transform: rotate(90deg); +} +.react-resizable-handle-se { + bottom: 0; + right: 0; + cursor: se-resize; +} +.react-resizable-handle-nw { + top: 0; + left: 0; + cursor: nw-resize; + transform: rotate(180deg); +} +.react-resizable-handle-ne { + top: 0; + right: 0; + cursor: ne-resize; + transform: rotate(270deg); +} +.react-resizable-handle-w, +.react-resizable-handle-e { + top: 50%; + margin-top: -10px; + cursor: ew-resize; +} +.react-resizable-handle-w { + left: 0; + transform: rotate(135deg); +} +.react-resizable-handle-e { + right: 0; + transform: rotate(315deg); +} +.react-resizable-handle-n, +.react-resizable-handle-s { + left: 50%; + margin-left: -10px; + cursor: ns-resize; +} +.react-resizable-handle-n { + top: 0; + transform: rotate(225deg); +} +.react-resizable-handle-s { + bottom: 0; + transform: rotate(45deg); +} diff --git a/webapp/src/App.tsx b/webapp/src/App.tsx new file mode 100644 index 000000000..149b88baa --- /dev/null +++ b/webapp/src/App.tsx @@ -0,0 +1,41 @@ +import React, { useMemo, Suspense } from 'react'; +import './App.css'; +import HomeSection from './pages/Home/HomeSection'; +import DatabaseSection from './pages/DatabaseSection/DatabaseSection'; + +import PageLoad from './shared/Loading/PageLoad'; +import { Routes, Route, useSearchParams, useLocation } from 'react-router-dom'; +// import APIForwarding from "./components/APIComponent/APIForwarding"; + +function useQuery() { + const { search } = useLocation(); + return useMemo(() => new URLSearchParams(search), [search]); +} + +function App() { + const query = useQuery(); + const [_, setSearchParams] = useSearchParams(); + + return ( + }> +
+ + {/* @ts-expect-error */} + } /> + + } + /> + {/* } /> */} + +
+
+ ); +} + +export default App; diff --git a/webapp/src/assets/LeftClick.tsx b/webapp/src/assets/LeftClick.tsx new file mode 100644 index 000000000..7f87aa03a --- /dev/null +++ b/webapp/src/assets/LeftClick.tsx @@ -0,0 +1,30 @@ +import React from 'react'; + +export default function LeftMouseClick() { + return ( +
+ + + + + +
+ ); +} diff --git a/webapp/src/assets/Molecule.jsx b/webapp/src/assets/Molecule.jsx new file mode 100644 index 000000000..7109cf6c4 --- /dev/null +++ b/webapp/src/assets/Molecule.jsx @@ -0,0 +1,78 @@ +export default function Molecule() { + return ( + + + + + + + + + + + + + + + ); +} diff --git a/webapp/src/assets/Reflections.tsx b/webapp/src/assets/Reflections.tsx new file mode 100644 index 000000000..df411c3a6 --- /dev/null +++ b/webapp/src/assets/Reflections.tsx @@ -0,0 +1,22 @@ +import React from 'react'; +export default function Reflections() { + return ( + + + + ); +} diff --git a/webserver/src/assets/favicon.ico b/webapp/src/assets/favicon.ico similarity index 100% rename from webserver/src/assets/favicon.ico rename to webapp/src/assets/favicon.ico diff --git a/webserver/src/assets/github-mark-white.png b/webapp/src/assets/github-mark-white.png similarity index 100% rename from webserver/src/assets/github-mark-white.png rename to webapp/src/assets/github-mark-white.png diff --git a/webserver/src/assets/github-mark.png b/webapp/src/assets/github-mark.png similarity index 100% rename from webserver/src/assets/github-mark.png rename to webapp/src/assets/github-mark.png diff --git a/webserver/src/assets/molecule.svg b/webapp/src/assets/molecule.svg similarity index 100% rename from webserver/src/assets/molecule.svg rename to webapp/src/assets/molecule.svg diff --git a/webserver/src/assets/react.svg b/webapp/src/assets/react.svg similarity index 100% rename from webserver/src/assets/react.svg rename to webapp/src/assets/react.svg diff --git a/webapp/src/data/Constants.tsx b/webapp/src/data/Constants.tsx new file mode 100644 index 000000000..0396f80a6 --- /dev/null +++ b/webapp/src/data/Constants.tsx @@ -0,0 +1,225 @@ +import React from 'react'; + +export const GITHUB_REPO = 'https://github.com/glycojones/privateer'; +export const GENERAL_CITATION = 'https://doi.org/10.1038/nsmb.3115'; +export const TORSIONS_CITATION = 'http://dx.doi.org/10.1107/S2059798323003510'; +export const GLYCOMICS_CITATION = 'https://doi.org/10.3762/bjoc.16.204'; + +export const GlycanDetailLayout = { + xl: [ + { i: 'info', x: 0, y: 0, w: 1, h: 0.5, isResizable: false }, + { i: 'snfg', x: 1, y: 0, w: 1, h: 1, isResizable: false }, + { i: 'moorhen', x: 2, y: 0, w: 1, h: 2, isResizable: false }, + { i: 'torsions', x: 3, y: 0, w: 1, h: 1.75, isResizable: false }, + ], + lg: [ + { i: 'info', x: 0, y: 0, w: 1, h: 1, isResizable: false }, + { i: 'snfg', x: 1, y: 2, w: 1, h: 1, isResizable: false }, + { i: 'moorhen', x: 0, y: 2, w: 1, h: 2, isResizable: false }, + { i: 'torsions', x: 1, y: 2, w: 1, h: 2, isResizable: false }, + ], + md: [ + { i: 'info', x: 0, y: 0, w: 1, h: 1, isResizable: false }, + { i: 'snfg', x: 1, y: 0, w: 1, h: 1, isResizable: false }, + { i: 'moorhen', x: 0, y: 2, w: 1, h: 2, isResizable: false }, + { i: 'torsions', x: 1, y: 1, w: 1, h: 2, isResizable: false }, + ], + sm: [ + { i: 'info', x: 0, y: 0, w: 1, h: 0.75, isResizable: false }, + { i: 'snfg', x: 0, y: 2, w: 1, h: 1, isResizable: false }, + { i: 'moorhen', x: 0, y: 4, w: 1, h: 2, isResizable: false }, + { i: 'torsions', x: 0, y: 6, w: 1, h: 1.75, isResizable: false }, + ], +}; + +export const COLUMNS = [ + { + Header: 'Chain', + accessor: 'chain', + }, + { + Header: 'ID', + accessor: 'id', + }, + { + Header: 'SNFG', + accessor: 'svg', + Cell: (tableProps) => { + return ( +
+ ); + // return + }, + }, + { + Header: 'Glytoucan ID', + accessor: 'glytoucan_id', + }, + { + Header: 'GlyConnect ID', + accessor: 'glyconnect_id', + }, + // { + // Header: "Explore", + // Cell: tableProps => { + // return + // } + // } + // { + // Header: 'GlyConnect ID', + // accessor: 'glyconnect_id', + // }, + // { + // Header: 'WURCS', + // accessor: 'wurcs', + // }, +]; + +export const DatabaseColumns = [ + { + Header: 'Chain', + accessor: 'chain', + }, + { + Header: 'SNFG', + accessor: 'SNFG', + Cell: (tableProps) => { + // console.log("SNFG", tableProps.row.original.SNFG) + + return ( +
+ ); + }, + }, + { + Header: 'WURCS', + accessor: 'WURCS', + Cell: (tableProps) => { + return ( + + ); + }, + }, +]; + +export const SugarListColumns = [ + { + Header: 'Sugar ID', + accessor: 'Sugar ID', + }, + { + Header: 'Q', + accessor: 'Q', + }, + { + Header: 'Phi', + accessor: 'Phi', + }, + { + Header: 'Theta', + accessor: 'Theta', + }, + { + Header: 'RSCC', + accessor: 'RSCC', + }, + { + Header: 'B Factor', + accessor: 'BFactor', + }, + { + Header: 'Detected Type', + accessor: 'Detected Type', + }, + { + Header: 'mFo', + accessor: 'mFo', + }, + { + Header: 'Type', + accessor: 'type', + }, + { + Header: 'Diagnostic', + accessor: 'Diagnostic', + }, +]; + +export const linkageDB: Record = { + 'GAL-1,4-NAG': + 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/GAL-1,4-NAG.json', + 'NAG-1,2-MAN': + 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/NAG-1,2-MAN.json', + 'MAN-1,6-MAN': + 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/MAN-1,6-MAN.json', + 'FUC-1,3-NAG': + 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/FUC-1,3-NAG.json', + 'MAN-1,3-BMA': + 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/MAN-1,3-BMA.json', + 'NAG-1,4-NAG': + 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/NAG-1,4-NAG.json', + 'ASN-1,2-NAG': + 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/ASN-1,2-NAG.json', + 'MAN-1,6-BMA': + 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/MAN-1,6-BMA.json', + 'BMA-1,4-NAG': + 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/BMA-1,4-NAG.json', + 'FUC-1,6-NAG': + 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/FUC-1,6-NAG.json', + 'MAN-1,3-MAN': + 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/MAN-1,3-MAN.json', + 'MAN-1,2-MAN': + 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/MAN-1,2-MAN.json', +}; + +export const binDB = { + 'ASN-1,2-NAG': { start: 0, end: 360, size: 4 }, + 'NAG-1,2-MAN': { start: -180, end: 180, size: 4 }, + 'MAN-1,6-MAN': { start: -180, end: 180, size: 4 }, + 'FUC-1,3-NAG': { start: -180, end: 180, size: 4 }, + 'MAN-1,3-BMA': { start: -180, end: 180, size: 4 }, + 'NAG-1,4-NAG': { start: -180, end: 180, size: 4 }, + 'GAL-1,4-NAG': { start: -180, end: 180, size: 4 }, + 'MAN-1,6-BMA': { start: -180, end: 180, size: 4 }, + 'BMA-1,4-NAG': { start: -180, end: 180, size: 4 }, + 'FUC-1,6-NAG': { start: -180, end: 180, size: 4 }, + 'MAN-1,3-MAN': { start: -180, end: 180, size: 4 }, + 'MAN-1,2-MAN': { start: -180, end: 180, size: 4 }, +}; diff --git a/webapp/src/database/DatabaseComponents/BFactorVsRSCC.tsx b/webapp/src/database/DatabaseComponents/BFactorVsRSCC.tsx new file mode 100644 index 000000000..d039aeeed --- /dev/null +++ b/webapp/src/database/DatabaseComponents/BFactorVsRSCC.tsx @@ -0,0 +1,103 @@ +import React, { useEffect, useState, lazy } from 'react'; + +const Plot = lazy(async () => await import('react-plotly.js')); + +function calculatePoints(data): [number[], number[], string[]] { + const glycans = data.data.glycans; + + const xAxis: number[] = []; + const yAxis: number[] = []; + const text: string[] = []; + + for (const key in glycans) { + const glycanType = glycans[key]; + for (let i = 0; i < glycanType.length; i++) { + const sugars = glycanType[i].Sugars; + for (let j = 0; j < sugars.length; j++) { + xAxis.push(sugars[j].BFactor as number); + yAxis.push(sugars[j].RSCC as number); + text.push(sugars[j]['Sugar ID'] as string); + } + } + } + + return [xAxis, yAxis, text]; +} + +export default function BFactorVsRSCC(props) { + const [trace, setTrace] = useState({}); + const [corrTrace, setCorrTrace] = useState({}); + + useEffect(() => { + const [xAxis, yAxis, text] = calculatePoints(props); + + const maxX = Math.max(...xAxis) + 5; + + setCorrTrace({ + x: [0, maxX], + y: [0.7, 0.7], + fill: 'tozeroy', + fillcolor: 'rgba(173,181,189,0.3)', + fillopacity: 0.1, + marker: { + size: 1, + color: 'rgba(173,181,189,0.5)', + symbol: ['o'], + }, + }); + + setTrace({ + x: xAxis, + y: yAxis, + text, + hoverinfo: 'text', + mode: 'markers', + type: 'scatter', + marker: { + size: 8, + color: 'green', + symbol: ['o'], + }, + }); + }, []); + + return ( +
+ BFactor vs RSCC + +
+ ); +} diff --git a/webapp/src/database/DatabaseComponents/CremerPopleGraph.tsx b/webapp/src/database/DatabaseComponents/CremerPopleGraph.tsx new file mode 100644 index 000000000..094ff9ceb --- /dev/null +++ b/webapp/src/database/DatabaseComponents/CremerPopleGraph.tsx @@ -0,0 +1,119 @@ +import React, { useEffect, useState, lazy } from 'react'; + +const Plot = lazy(async () => await import('react-plotly.js')); + +function calculatePoints(data) { + const glycans = data.data.glycans; + + const xAxis: number[] = []; + const yAxis: number[] = []; + const text: string[] = []; + + const errorXAxis: number[] = []; + const errorYAxis: number[] = []; + const errorText: string[] = []; + + for (const key in glycans) { + const glycanType = glycans[key]; + for (let i = 0; i < glycanType.length; i++) { + const sugars = glycanType[i].Sugars; + for (let j = 0; j < sugars.length; j++) { + if (sugars[j].Diagnostic !== 'yes') { + errorXAxis.push(sugars[j].Phi as number); + errorYAxis.push(sugars[j].Theta as number); + errorText.push(sugars[j]['Sugar ID'] as string); + } else { + xAxis.push(sugars[j].Phi as number); + yAxis.push(sugars[j].Theta as number); + text.push(sugars[j]['Sugar ID'] as string); + } + // console.log(sugars[j]) + } + } + } + + return [xAxis, yAxis, text, errorXAxis, errorYAxis, errorText]; +} + +export default function CremerPopleGraph(props) { + const [trace, setTrace] = useState({}); + const [badTrace, setBadTrace] = useState({}); + + useEffect(() => { + const [xAxis, yAxis, text, errorXAxis, errorYAxis, errorText] = + calculatePoints(props); + + setTrace({ + x: xAxis, + y: yAxis, + text, + hoverinfo: 'text', + mode: 'markers', + type: 'scatter', + marker: { + size: 8, + color: 'green', + symbol: ['o'], + }, + name: 'No Issues', + }); + setBadTrace({ + x: errorXAxis, + y: errorYAxis, + text: errorText, + hoverinfo: 'text', + mode: 'markers', + type: 'scatter', + marker: { + size: 8, + color: 'red', + symbol: ['o'], + }, + name: 'Issues', + }); + }, []); + + return ( +
+ + Conformational landscape for pyranoses + + + +
+ ); +} diff --git a/webapp/src/database/DatabaseComponents/SNFGList.tsx b/webapp/src/database/DatabaseComponents/SNFGList.tsx new file mode 100644 index 000000000..698049da7 --- /dev/null +++ b/webapp/src/database/DatabaseComponents/SNFGList.tsx @@ -0,0 +1,165 @@ +import React, { useMemo, useEffect, useState } from 'react'; +import { useTable } from 'react-table'; +import { DatabaseColumns } from '../../data/Constants.tsx'; +import styled from 'styled-components'; + +function customSort(a, b): number { + a = a.chain; + b = b.chain; + if (a < b) return -1; + if (a > b) return 1; + return 0; +} + +function parseResults(data) { + const glycans = data.data.glycans; + + const tableData: any[] = []; + + for (const key in glycans) { + const glycanType = glycans[key]; + for (let i = 0; i < glycanType.length; i++) { + const chain = glycanType[i].RootSugarChainID; + + const SNFG = glycanType[i].SNFG; + const WURCS = glycanType[i].WURCS; + + tableData.push({ + chain, + SNFG, + WURCS, + }); + } + } + + tableData.sort(customSort); + return tableData; +} + +const Styles = styled.div` + table { + border-collapse: collapse; + border-spacing: 0; + width: 100%; + // border: 0px solid #ddd; + } + + table th { + text-align: left; + padding: 16px; + // border: 1px solid #ddd; + } + + table td { + text-align: center; + padding: 16px; + border: 1px solid #ddd; + border-style: solid none; + } + + table td { + border-style: none none; + } + + table tr:nth-child(even) { + background-color: #f6f6f6; + } + + table tr:nth-child(even) { + background-color: #f4f9ff; + // color: #000000 + } + + table th { + padding-top: 12px; + padding-bottom: 12px; + text-align: center; + background-color: #f4f9ff; + color: black; + } + + table th:first-of-type { + border-top-left-radius: 30px; + } + + table th:last-of-type { + border-top-right-radius: 30px; + } + + table tr:last-of-type td:first-of-type { + border-bottom-left-radius: 30px; + } + + table tr:last-of-type td:last-of-type { + border-bottom-right-radius: 30px; + } +`; + +export default function SNFGList(props) { + const [data, setData] = useState([]); + const columns = useMemo(() => DatabaseColumns, []); + const { + _getTableProps, + getTableBodyProps, + headerGroups, + rows, + prepareRow, + } = useTable({ columns, data }); + + useEffect(() => { + const results = parseResults(props); + setData(results); + }, []); + + return ( +
+ 2D Glycan Descriptions + + + + + {headerGroups.map((headerGroup) => ( + + {headerGroup.headers.map((column) => ( + + ))} + + ))} + + + {rows.map((row) => { + prepareRow(row); + return ( + + {row.cells.map((cell) => { + return ( + + ); + })} + + ); + })} + +
+ {column.render('Header')} +
+ {cell.render('Cell')} +
+
+
+ ); +} diff --git a/webapp/src/database/DatabaseComponents/SNFGSection.tsx b/webapp/src/database/DatabaseComponents/SNFGSection.tsx new file mode 100644 index 000000000..a053a469e --- /dev/null +++ b/webapp/src/database/DatabaseComponents/SNFGSection.tsx @@ -0,0 +1,102 @@ +// import React, { useEffect, useState } from 'react'; +// +// export default function SNFGSection (props) { +// const [showSection, setShowSection] = useState(false); +// +// // useEffect(() => { +// // console.log(props); +// // }, []); +// +// return ( +//
+// +// Chain: {props.id} +// +// +// +// {showSection +// ? ( +// props.item.map((array_item, array_index) => { +// return ; +// }) +// ) +// : ( +// <> +// )} +//
+// ); +// } +// +// export function SNFGItem (props) { +// const [showWURCS, setShowWURCS] = useState(false); +// +// return ( +//
+//
+// WURCS: +// +// {showWURCS ? props.item.WURCS : <>} +//
+//
+//
+// ); +// } diff --git a/webapp/src/database/DatabaseComponents/SugarList.tsx b/webapp/src/database/DatabaseComponents/SugarList.tsx new file mode 100644 index 000000000..6fa063637 --- /dev/null +++ b/webapp/src/database/DatabaseComponents/SugarList.tsx @@ -0,0 +1,191 @@ +import React, { useMemo, useEffect, useState } from 'react'; +import { useTable } from 'react-table'; +import { SugarListColumns } from '../../data/Constants.tsx'; +import styled from 'styled-components'; + +function customSort( + a: Record, + b: Record +): number { + const splitA = a['Sugar ID'].split('-'); + const splitB = b['Sugar ID'].split('-'); + + if (splitA[1] < splitB[1]) { + return -1; + } + if (splitB[1] < splitA[1]) { + return 1; + } + + if (Number(splitA[2]) < Number(splitB[2])) { + return -1; + } + + if (Number(splitB[2]) < Number(splitA[2])) { + return 1; + } + + return 0; +} + +function parseResults(data) { + const glycans = data.data.glycans; + + const tableData = []; + + for (const key in glycans) { + const glycanType = glycans[key]; + for (let i = 0; i < glycanType.length; i++) { + const sugars: Array> = glycanType[i].Sugars; + for (let j = 0; j < sugars.length; j++) { + const keys = Object.keys(sugars[j]); + const entry = {}; + + for (let k = 0; k < keys.length; k++) { + const typeKey = typeof sugars[j][keys[k]]; + + if (typeKey === 'number') { + entry[keys[k]] = sugars[j][keys[k]].toFixed(2); + } else { + entry[keys[k]] = sugars[j][keys[k]]; + } + } + entry.type = key; + tableData.push(entry); + } + } + } + + tableData.sort(customSort); + return tableData; +} + +const Styles = styled.div` + table { + border-collapse: collapse; + border-spacing: 0; + width: 100%; + // border: 0px solid #ddd; + } + + table th { + text-align: left; + padding: 16px; + // border: 1px solid #ddd; + } + + table td { + text-align: center; + padding: 16px; + border: 1px solid #ddd; + border-style: solid none; + } + + table td { + border-style: none none; + } + + table tr:nth-child(even) { + background-color: #f6f6f6; + } + + table tr:nth-child(even) { + background-color: #f4f9ff; + // color: #000000 + } + + table th { + padding-top: 12px; + padding-bottom: 12px; + text-align: center; + background-color: #f4f9ff; + color: black; + } + + table th:first-of-type { + border-top-left-radius: 30px; + } + + table th:last-of-type { + border-top-right-radius: 30px; + } + + table tr:last-of-type td:first-of-type { + border-bottom-left-radius: 30px; + } + + table tr:last-of-type td:last-of-type { + border-bottom-right-radius: 30px; + } +`; + +export default function SugarList(props) { + const [data, setData] = useState([]); + const columns = useMemo(() => SugarListColumns, []); + const { + _getTableProps, + getTableBodyProps, + headerGroups, + rows, + prepareRow, + } = useTable({ columns, data }); + + useEffect(() => { + const results = parseResults(props); + setData(results); + }, []); + + return ( +
+ + Detailed monosaccharide validation data + + + + + + {headerGroups.map((headerGroup) => ( + + {headerGroup.headers.map((column) => ( + + ))} + + ))} + + + {rows.map((row) => { + prepareRow(row); + return ( + + {row.cells.map((cell) => { + return ( + + ); + })} + + ); + })} + +
+ {column.render('Header')} +
+ {cell.render('Cell')} +
+
+
+ ); +} diff --git a/webapp/src/database/DatabaseFetch/DatabaseFetch.jsx b/webapp/src/database/DatabaseFetch/DatabaseFetch.jsx new file mode 100644 index 000000000..5e66b43de --- /dev/null +++ b/webapp/src/database/DatabaseFetch/DatabaseFetch.jsx @@ -0,0 +1,75 @@ +import { useEffect, useState } from 'react'; + +export default function DatabaseFetch({ PDBCode, setPDBCode, submitPressed }) { + const [pdb, setPDB] = useState(''); + + useEffect(() => { + if (pdb.length != 4) { + return; + } + if (!pdb.match(/^[a-z0-9]+$/i)) { + return; + } + + setPDBCode(pdb); + submitPressed(true); + }, [pdb]); + + return ( + <> + {PDBCode != true ? ( +
+ +
+ ) : ( + <> + )} + + ); +} diff --git a/webapp/src/database/DatabaseResult/DatabaseResult.tsx b/webapp/src/database/DatabaseResult/DatabaseResult.tsx new file mode 100644 index 000000000..2b955e259 --- /dev/null +++ b/webapp/src/database/DatabaseResult/DatabaseResult.tsx @@ -0,0 +1,35 @@ +import React, { useEffect, useState } from 'react'; +import { type DatabaseResultProps } from '../../interfaces/types.ts'; +import CremerPopleGraph from '../DatabaseComponents/CremerPopleGraph.tsx'; +import BFactorVsRSCC from '../DatabaseComponents/BFactorVsRSCC.tsx'; +import SNFGList from '../DatabaseComponents/SNFGList.tsx'; +import SugarList from '../DatabaseComponents/SugarList.tsx'; + +export default function DatabaseResult(props: DatabaseResultProps) { + const [data, setData] = useState(); + useEffect(() => { + if (props.results === null) return; + + setData(props.results as undefined); + }, []); + + return ( + <> + {data !== undefined ? ( +
+

+ Validation Report - {props.PDBCode} +

+
+ + +
+ + +
+ ) : ( + <> + )} + + ); +} diff --git a/webserver/src/index.css b/webapp/src/index.css similarity index 91% rename from webserver/src/index.css rename to webapp/src/index.css index d8dc56d58..8afa79a2d 100644 --- a/webserver/src/index.css +++ b/webapp/src/index.css @@ -11,7 +11,7 @@ font-weight: 400; /* color-scheme: light dark; */ - background-color: #D6D9E5; + background-color: #d6d9e5; color: rgb(255, 255, 255); @@ -24,8 +24,7 @@ body { /* background-color: rgb(51 65 85 1); */ - background-color: #D6D9E5; - + background-color: #d6d9e5; } a { @@ -69,20 +68,18 @@ h2 { } */ #title:focus { - outline: 0 !important + outline: 0 !important; } - /* button:hover { border-color: #d7d8e4; } */ button:focus, button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; + outline: 4px auto; } - /* @media (prefers-color-scheme: light) { :root { color: #213547; @@ -96,4 +93,4 @@ button:focus-visible { button { background-color: #f9f9f9; } -} */ \ No newline at end of file +} */ diff --git a/webapp/src/interfaces/types.ts b/webapp/src/interfaces/types.ts new file mode 100644 index 000000000..a5f5c2884 --- /dev/null +++ b/webapp/src/interfaces/types.ts @@ -0,0 +1,94 @@ +import { type Dispatch, type SetStateAction } from 'react'; + +export interface TorsionEntry { + sugar_1: string; + sugar_2: string; + atom_number_1: string; + atom_number_2: string; + phi: number; + psi: number; +} + +export interface TableDataEntry { + svg: string; + wurcs: string; + chain: string; + glyconnect_id: string; + glytoucan_id: string; + id: string; + torsion_err: number; + conformation_err: number; + anomer_err: number; + puckering_err: number; + chirality_err: number; + torsions: TorsionEntry[]; +} + +export interface HeaderProps { + resetApp: boolean; + setResetApp: Dispatch>; + PDBCode: string; + setPDBCode: Dispatch>; + coordinateFile: File | null; + setCoordinateFile: Dispatch>; + reflectionFile: File | null; + setReflectionFile: Dispatch>; + submit: boolean; + setSubmit: Dispatch>; + tableData: TableDataEntry[] | null; + loadingText: string; + fileContent: string | ArrayBuffer; + fallback: boolean; + mtzData: Uint8Array | null; + failureText: string; +} + +export interface DatabaseHeaderProps { + resetApp: boolean; + setResetApp: Dispatch>; + PDBCode: string; + setPDBCode: Dispatch>; + submit: boolean; + setSubmit: Dispatch>; + loadingText: string; + fallback: boolean; + failureText: string; + results: any; +} + +export interface DatabaseResultProps { + results: any; + PDBCode: string; +} + +export interface SNFGProps extends HeaderProps { + filename: string; +} + +export interface UploadButtonProps { + setCoordinateFile: Dispatch>; + setReflectionFile: Dispatch>; +} + +export interface GlycanDetailProps { + tableData: TableDataEntry[]; + hideMoorhen: boolean; + setHideMoorhen: Dispatch>; + rowID: number; + controls: any; + map: any; + moorhenProps: any; +} + +export interface NoGlycansProps { + setResetApp: Dispatch>; + text: string; +} + +export interface SVGTableProps { + tableData: TableDataEntry[]; + allowRowClick: boolean; + rowClick: boolean; + setRowClicked: Dispatch>; + setRowID: Dispatch>; +} diff --git a/webapp/src/layouts/BorderElement.tsx b/webapp/src/layouts/BorderElement.tsx new file mode 100644 index 000000000..9f96d0a57 --- /dev/null +++ b/webapp/src/layouts/BorderElement.tsx @@ -0,0 +1,22 @@ +import { type ReactElement } from 'react'; +import React from 'react'; +export default function BorderElement({ + topColor, + bottomColor, + reverse, +}: { + topColor: string; + bottomColor: string; + reverse: boolean; +}): ReactElement { + const divStyle = { + height: '90px', + backgroundImage: `linear-gradient(to bottom right, ${topColor}, ${topColor} 50%, ${bottomColor} 50%, ${bottomColor})`, + }; + + if (reverse) { + divStyle.backgroundImage = `linear-gradient(to top right, ${bottomColor}, ${bottomColor} 50%, ${topColor} 50%, ${topColor})`; + } + + return
; +} diff --git a/webapp/src/layouts/DatabaseHeader.tsx b/webapp/src/layouts/DatabaseHeader.tsx new file mode 100644 index 000000000..3bf854e06 --- /dev/null +++ b/webapp/src/layouts/DatabaseHeader.tsx @@ -0,0 +1,49 @@ +import React, { lazy, type ReactElement, Suspense } from 'react'; +import { type DatabaseHeaderProps } from '../interfaces/types'; + +const Loading = lazy(async () => await import('../shared/Loading/Loading.tsx')); +const NavBar = lazy(async () => await import('./NavBar.tsx')); +const NoGlycans = lazy( + async () => await import('../shared/NoGlycans/NoGlycans.tsx') +); +const DatabaseFetch = lazy( + async () => await import('../database/DatabaseFetch/DatabaseFetch.jsx') +); +const DatabaseResult = lazy( + async () => await import('../database/DatabaseResult/DatabaseResult.jsx') +); + +export function DatabaseHeader(props: DatabaseHeaderProps): ReactElement { + return ( +
+ +
+ {!props.fallback ? ( + + } + > + {props.results === '' ? ( + + ) : ( + + )} + + ) : ( + + )}{' '} +
+
+ ); +} diff --git a/webapp/src/layouts/Footer.tsx b/webapp/src/layouts/Footer.tsx new file mode 100644 index 000000000..d871316a0 --- /dev/null +++ b/webapp/src/layouts/Footer.tsx @@ -0,0 +1,42 @@ +import React, { type ReactElement } from 'react'; +export default function Footer(): ReactElement { + return ( +
+ ); +} diff --git a/webapp/src/layouts/Header.tsx b/webapp/src/layouts/Header.tsx new file mode 100644 index 000000000..3955e57ef --- /dev/null +++ b/webapp/src/layouts/Header.tsx @@ -0,0 +1,48 @@ +import React, { lazy, type ReactElement, Suspense } from 'react'; +import SNFG from '../main/PrivateerDisplay/SNFG.tsx'; + +import { type HeaderProps } from '../interfaces/types'; +import { MoorhenReduxProvider } from 'moorhen'; + +const Upload = lazy(async () => await import('../shared/Upload/Upload.tsx')); +const Loading = lazy(async () => await import('../shared/Loading/Loading.tsx')); +const NavBar = lazy(async () => await import('./NavBar.tsx')); +const NoGlycans = lazy( + async () => await import('../shared/NoGlycans/NoGlycans.tsx') +); + +export function Header(props: HeaderProps): ReactElement { + let filename = ''; + if (props.PDBCode !== '') { + filename = props.PDBCode; + } else if (props.coordinateFile !== null) { + filename = props.coordinateFile.name; + } + + return ( +
+ + + {!props.fallback ? ( + } + > + {!props.submit ? ( + + ) : props.tableData === null ? ( + + ) : ( + + + + )} + + ) : ( + + )} +
+ ); +} diff --git a/webapp/src/layouts/NavBar.tsx b/webapp/src/layouts/NavBar.tsx new file mode 100644 index 000000000..b55deea6f --- /dev/null +++ b/webapp/src/layouts/NavBar.tsx @@ -0,0 +1,96 @@ +import { type Dispatch, type ReactElement, type SetStateAction } from 'react'; +import { GENERAL_CITATION, GITHUB_REPO } from '../data/Constants.tsx'; +import React from 'react'; +export default function NavBar({ + setResetApp, +}: { + setResetApp: Dispatch>; +}): ReactElement { + return ( + + ); +} diff --git a/webapp/src/layouts/tests/Header.test.ts b/webapp/src/layouts/tests/Header.test.ts new file mode 100644 index 000000000..e61eb6357 --- /dev/null +++ b/webapp/src/layouts/tests/Header.test.ts @@ -0,0 +1,64 @@ +const puppeteer = require('puppeteer'); +describe('Header Tests', () => { + let browser; + let page; + + beforeAll(async () => { + jest.setTimeout(35000); + browser = await puppeteer.launch({ headless: 'new' }); + page = await browser.newPage(); + page.on('console', (msg) => { + console.log('PAGE LOG:', msg.text()); + }); + }); + + it('File Upload Present?', async () => { + await page.goto('http://localhost:5173/'); + await page.waitForSelector('#upload'); + const text = await page.$eval('#upload', (e) => { + return e.textContent; + }); + expect(text).toContain('Choose a file'); + expect(text).toContain('PDB, mmCIF or MTZ'); + expect(text).toContain('Files will never be sent externally'); + }); + + it('PDB Fetch Present?', async () => { + await page.goto('http://localhost:5173/'); + await page.waitForSelector('#PDBFetch'); + const text = await page.$eval('#PDBFetch', (e) => { + return e.textContent; + }); + expect(text).toContain('Fetch from PDB'); + expect(text).toContain('Fetch'); + + const searchBar = await page.$('#PDBFetch input'); + expect(searchBar).toBeTruthy(); + + const fetchButton = await page.$('#PDBFetch button'); + expect(fetchButton).toBeTruthy(); + }); + + it('PDB Fetch Works?', async () => { + await page.setRequestInterception(true); + page.on('request', (interceptedRequest) => { + if (interceptedRequest.url().endsWith('.pdb')) { + interceptedRequest.abort(); + } else interceptedRequest.continue(); + }); + await page.goto('http://localhost:5173/'); + await page.waitForSelector('#PDBFetch'); + await page.type('#PDBFetch #code', '2h6o'); + await page.click('#PDBFetch #fetch'); + + // after PDBFetch click, upload and PDB should disappear + // and be replaced with loading + const uploadBox = await page.$('#upload'); + expect(uploadBox).toBeFalsy(); + + const PDBFetch = await page.$('#PDBFetch'); + expect(PDBFetch).toBeFalsy(); + }); + + afterAll(() => browser.close()); +}); diff --git a/webapp/src/layouts/tests/Navbar.test.ts b/webapp/src/layouts/tests/Navbar.test.ts new file mode 100644 index 000000000..831d8ea80 --- /dev/null +++ b/webapp/src/layouts/tests/Navbar.test.ts @@ -0,0 +1,41 @@ +const puppeteer = require('puppeteer'); +describe('NavBar Tests', () => { + let browser; + let page; + + beforeAll(async () => { + jest.setTimeout(35000); + browser = await puppeteer.launch({ headless: 'new' }); + page = await browser.newPage(); + page.on('console', (msg) => { + console.log('PAGE LOG:', msg.text()); + }); + }); + + it('NavBar Text Loading', async () => { + await page.goto('http://localhost:5173/'); + await page.waitForSelector('#navbar'); + const text = await page.$eval('#navbar', (e) => { + return e.textContent; + }); + expect(text).toContain('Validate your carbohydrates online with'); + expect(text).toContain('Privateer'); + expect(text).toContain( + 'The Swiss Army knife for carbohydrate structure validation, refinement and analysis' + ); + }); + + it('Buttons Present', async () => { + await page.goto('http://localhost:5173/'); + await page.waitForSelector('#navbar'); + const ids = await page.$$eval('#navbar a', (e) => { + return e.map((a) => a.id); + }); + expect(ids).toContain('database'); + expect(ids).toContain('mainpage'); + expect(ids).toContain('citation'); + expect(ids).toContain('github'); + }); + + afterAll(() => browser.close()); +}); diff --git a/webapp/src/main.tsx b/webapp/src/main.tsx new file mode 100644 index 000000000..08568ceb9 --- /dev/null +++ b/webapp/src/main.tsx @@ -0,0 +1,14 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import App from './App'; +import './index.css'; +import { BrowserRouter } from 'react-router-dom'; + +ReactDOM.createRoot(document.getElementById('root')).render( + // + + + + + // , +); diff --git a/webapp/src/main/GlycanDetail/GlycanDetail.tsx b/webapp/src/main/GlycanDetail/GlycanDetail.tsx new file mode 100644 index 000000000..39fc8532b --- /dev/null +++ b/webapp/src/main/GlycanDetail/GlycanDetail.tsx @@ -0,0 +1,203 @@ +import React, { lazy, useRef, useState } from 'react'; +import { type GlycanDetailProps } from '../../interfaces/types.ts'; +import { useSelector } from 'react-redux'; +import { Responsive, WidthProvider } from 'react-grid-layout'; +import { GlycanDetailSNFGBox } from './GlycanDetailSNFGBox.tsx'; +import { GlycanDetailMoorhenView } from './GlycanDetailMoorhenView.tsx'; +import { GlycanDetailTorsionPlot } from './GlycanDetailTorsionPlot.tsx'; +import { GlycanDetailLayout } from '../../data/Constants.tsx'; +import { Tooltip, type TooltipRefProps } from 'react-tooltip'; + +const GlycanDetailInfoBox = lazy( + async () => await import('./GlycanDetailInfoBox.tsx') +); + +const ResponsiveGridLayout = WidthProvider(Responsive); + +export default function GlycanDetail(props: GlycanDetailProps) { + const molecules = useSelector((state: any) => state.molecules); + const [mapContour, setMapContour] = useState(0.3); + + async function handleContourChange(e) { + props.map.contourLevel = Number(e.target.value); + setMapContour(Number(e.target.value)); + await props.map.doCootContour( + ...props.map.glRef.current.origin.map((coord) => -coord), + props.map.mapRadius, + props.map.contourLevel + ); + } + + async function handleToggleSymmetry() { + const currentMolecule = molecules.find( + (molecule) => molecule.name === 'mol-1' + ); + if (currentMolecule !== null) { + await currentMolecule.toggleSymmetry(); + } + } + + function saveSNFG() { + if (props.tableData[props.rowID] === null) return; + + const svgBlob = new Blob([props.tableData[props.rowID].svg], { + type: 'image/svg+xml;charset=utf-8', + }); + const svgUrl = URL.createObjectURL(svgBlob); + const downloadLink = document.createElement('a'); + downloadLink.href = svgUrl; + downloadLink.download = `${props.tableData[props.rowID].id}.svg`; + document.body.appendChild(downloadLink); + downloadLink.click(); + document.body.removeChild(downloadLink); + } + + const [glycoblocksOn, setGlycoblocksOn] = useState(false); + const [drawnGlycoblocksBefore, setDrawnGlycoblocksBefore] = useState(false); + async function toggleGlycoBlocks() { + const currentMolecule = molecules.find( + (molecule) => molecule.name === 'mol-1' + ); + if (glycoblocksOn) { + currentMolecule.hide('glycoBlocks'); + setGlycoblocksOn((glycoblocksOn) => !glycoblocksOn); + } else { + if (drawnGlycoblocksBefore) { + currentMolecule.show('glycoBlocks'); + } else { + setDrawnGlycoblocksBefore(true); + } + if (currentMolecule !== null) { + await currentMolecule.fetchIfDirtyAndDraw('glycoBlocks'); + } + setGlycoblocksOn((glycoblocksOn) => !glycoblocksOn); + } + } + + const width = 800; + const height = 500; + const [torsionTab, setTorsionTab] = useState(0); + + const getLayouts = () => { + const savedLayouts = localStorage.getItem('grid-layout'); + // return GlycanDetailLayout; + return savedLayouts !== null + ? JSON.parse(savedLayouts) + : GlycanDetailLayout; + }; + const handleLayoutChange = (layout, layouts) => { + localStorage.setItem('grid-layout', JSON.stringify(layouts)); + }; + + const tooltipRef = useRef(null); + const tooltipContent: string = + 'You can drag around each report component to your desired position'; + + // useEffect(() => { + // tooltipRef.current?.open( + // { + // content: tooltipContent, + // delay: 10000 + // } + // ) + // + // setTimeout(() => { + // tooltipRef.current?.close() + // }, 1000) + // }, []); + + return ( + <> + + +
+
+ +
+

+ Glycan Details + + + +

+
+
+ + +
+ +
+
+ +
+
+ { + return [width, height]; + }} + toggleGlycoblocks={toggleGlycoBlocks} + /> +
+
+ +
+
+ + ); +} diff --git a/webapp/src/main/GlycanDetail/GlycanDetailInfoBox.tsx b/webapp/src/main/GlycanDetail/GlycanDetailInfoBox.tsx new file mode 100644 index 000000000..58472a409 --- /dev/null +++ b/webapp/src/main/GlycanDetail/GlycanDetailInfoBox.tsx @@ -0,0 +1,72 @@ +import React from 'react'; + +interface GlycanDetailInfoBoxProps { + key: string; + row: any; +} +export default function GlycanDetailInfoBox({ + key, + row, +}: GlycanDetailInfoBoxProps) { + return ( +
+

+ Validation Report +

+
+

+ Glycan ID: {row.id} +

+

+ GlyTouCan ID:{' '} + { + e.stopPropagation(); + }} + onTouchStart={(e) => { + e.stopPropagation(); + }} + > + {row.glytoucan_id} + +

+

+ GlyConnect ID:{' '} + {row.glyconnect_id !== 'Not Found' ? ( + { + e.stopPropagation(); + }} + onTouchStart={(e) => { + e.stopPropagation(); + }} + > + {row.glyconnect_id} + + ) : ( + {row.glyconnect_id} + )} +

+
+
+

+ Number of conformation issues: {row.conformation_err} +

+

+ Number of anomer issues: {row.anomer_err} +

+

+ Number of torsion issues: {row.torsion_err} +

+

+ Number of pucker issues: {row.puckering_err} +

+

+ Number of chirality issues: {row.chirality_err} +

+
+
+ ); +} diff --git a/webapp/src/main/GlycanDetail/GlycanDetailMoorhenView.tsx b/webapp/src/main/GlycanDetail/GlycanDetailMoorhenView.tsx new file mode 100644 index 000000000..39cff7a26 --- /dev/null +++ b/webapp/src/main/GlycanDetail/GlycanDetailMoorhenView.tsx @@ -0,0 +1,153 @@ +import React, { useEffect, useRef, useState } from 'react'; +import { MoorhenContainer } from 'moorhen'; +// import LeftMouseClick from '../../assets/LeftClick'; + +export function GlycanDetailMoorhenView(props: { + key: string; + onChange: (e) => Promise; + onSymmetryChange: (e) => any; + moorhenProps: any; + moorhenDimensions: () => [number, number]; + mapContour: number; + toggleGlycoblocks: () => any; +}) { + const size = Math.min(800, 0.9 * window.innerWidth); + const [dimensions, setDimensions] = useState>( + size >= 800 + ? { width: size, height: size * (3 / 4) } + : { width: size, height: size } + ); + + const dimensionRef = useRef(); + + // @ts-expect-error + dimensionRef.current = dimensions; + useEffect(() => { + function handleResize() { + const size = Math.min(800, 0.9 * window.innerWidth); + if (size >= 800) { + setDimensions({ width: size, height: size * (3 / 4) }); + } else { + setDimensions({ width: size, height: size }); + } + } + + window.addEventListener('resize', handleResize); + }, []); + + const moorhenDimensionCallback = (): [number, number] => { + // @ts-expect-error + return [dimensionRef.current.width, dimensionRef.current.height]; + }; + + return ( +
+

+ Visualise with Moorhen{' '} + + + +

+ +
+ +
+ +
+
+ + { + e.stopPropagation(); + }} + onTouchStart={(e) => { + e.stopPropagation(); + }} + /> +
+ +
+ +
+ +
+ +
+
+ {/*
Rotate Molecule
*/} +
+ ); +} diff --git a/webapp/src/main/GlycanDetail/GlycanDetailSNFGBox.tsx b/webapp/src/main/GlycanDetail/GlycanDetailSNFGBox.tsx new file mode 100644 index 000000000..3019f412a --- /dev/null +++ b/webapp/src/main/GlycanDetail/GlycanDetailSNFGBox.tsx @@ -0,0 +1,119 @@ +import { type TableDataEntry } from '../../interfaces/types.ts'; +import { useSelector } from 'react-redux'; +import React, { useCallback, useRef } from 'react'; +import { Tooltip, type TooltipRefProps } from 'react-tooltip'; + +export function GlycanDetailSNFGBox(props: { + key: string; + tableDataEntries: TableDataEntry[]; + rowID: number; + saveSNFG: () => void; +}) { + const molecules = useSelector((state: any) => state.molecules); + + async function handleClick(e) { + const newCenterString = + e.target.dataset.chainid + + '/' + + e.target.dataset.seqnum + + '(' + + e.target.dataset.resname + + ')'; + const selectedMolecule = molecules.find( + (molecule) => molecule.name === 'mol-1' + ); + const _center = await selectedMolecule.centreOn(newCenterString); + } + + const ref = useCallback( + (node: HTMLElement | null) => { + if (node !== null) { + // console.log(node) + node.querySelector('svg').style.display = 'block'; + node.querySelector('svg').style.margin = 'auto'; + + const useList = node.querySelectorAll('use'); + + for (let i = 0; i < useList.length; i++) { + useList[i].addEventListener('click', handleClick); + useList[i].addEventListener('mousedown', (e) => { + e.stopPropagation(); + }); + useList[i].addEventListener('touchstart', (e) => { + e.stopPropagation(); + }); + } + } + + document.querySelectorAll('svg')[0].setAttribute('width', '50vw'); + document.querySelectorAll('svg')[0].setAttribute('height', '100%'); + }, + [props.rowID] + ); + + // const [svg, setSVG] = useState(props.tableDataEntries[props.rowID].svg) + // setSVG(svg.replace(' meet"', '"style="display:block"')) + const tooltipRef = useRef(null); + + const tooltipContent: string = + 'Standard Nomenclature For Glycans
Click on a sugar to see it in Moorhen'; + + return ( +
+ + +
+

+ SNFG + + + + {/* */} +

+ + +
+ +
+
+ Hover over a linkage to see a summary +
+
+ ); +} diff --git a/webapp/src/main/GlycanDetail/GlycanDetailTable.jsx b/webapp/src/main/GlycanDetail/GlycanDetailTable.jsx new file mode 100644 index 000000000..056c8b6d2 --- /dev/null +++ b/webapp/src/main/GlycanDetail/GlycanDetailTable.jsx @@ -0,0 +1,124 @@ +import { useMemo, useState } from 'react'; +import { useTable } from 'react-table'; +import styled from 'styled-components'; + +const Styles = styled.div` + table { + border-spacing: 0; + width: 100%; + border: 0px solid #ddd; + border-collapse: seperate; + } + + table th { + text-align: left; + padding: 16px; + // border: 1px solid #ddd; + } + table td { + text-align: center; + padding: 16px; + border: 1px solid #ddd; + border-style: solid none; + } + + table tbody tr { + border: 1px solid #000000; + border-style: solid none; + } + + table td { + border-style: none none; + } + + table tr:nth-child(even) { + background-color: #f6f6f6; + } + + table tr:nth-child(even) { + background-color: #f4f9ff; + } + + table th { + padding-top: 12px; + padding-bottom: 12px; + text-align: center; + background-color: #f4f9ff; + color: black; + } + + table th:first-of-type { + border-top-left-radius: 30px; + } + table th:last-of-type { + border-top-right-radius: 30px; + } + table tr:last-of-type td:first-of-type { + border-bottom-left-radius: 30px; + } + table tr:last-of-type td:last-of-type { + border-bottom-right-radius: 30px; + } +`; +export default function GlycanDetailTable({ row }) { + const DATA = {}; + + console.log(DATA); + + const [data, setData] = useState(); + + const COLUMNS = [ + { + Header: 'Chain', + accessor: 'chain', + }, + { + Header: 'ID', + accessor: 'id', + }, + { + Header: 'GlytoucanID', + accessor: 'glytoucan_id', + }, + ]; + + const columns = useMemo(() => COLUMNS, []); + const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } = + useTable({ columns, data }); + + return ( + +
+ + + {headerGroups.map((headerGroup) => ( + + {headerGroup.headers.map((column) => ( + + ))} + + ))} + + + {rows.map((row) => { + prepareRow(row); + return ( + + {row.cells.map((cell) => { + return ( + + ); + })} + + ); + })} + +
+ {column.render('Header')} +
+ {cell.render('Cell')} +
+
+
+ ); +} diff --git a/webapp/src/main/GlycanDetail/GlycanDetailTorsionPlot.tsx b/webapp/src/main/GlycanDetail/GlycanDetailTorsionPlot.tsx new file mode 100644 index 000000000..1e2b25db0 --- /dev/null +++ b/webapp/src/main/GlycanDetail/GlycanDetailTorsionPlot.tsx @@ -0,0 +1,39 @@ +import { type TableDataEntry } from '../../interfaces/types.ts'; +import React, { lazy, useEffect, useState } from 'react'; +const TorsionMultiPlot = lazy( + async () => await import('./TorsionPlot/TorsionMultiPlot.tsx') +); + +export function GlycanDetailTorsionPlot(props: { + key: string; + tableDataEntries: TableDataEntry[]; + rowID: number; + tab: number; + tab1: (value: ((prevState: number) => number) | number) => void; +}) { + const [dimension, setDimension] = useState(500); + + useEffect(() => { + function handleResize() { + const size = Math.min(500, window.innerWidth); + setDimension(size); + } + + window.addEventListener('resize', handleResize); + }); + + return ( +
+

+ Torsion Plots +

+ + +
+ ); +} diff --git a/webapp/src/main/GlycanDetail/TorsionPlot/TorsionMultiPlot.tsx b/webapp/src/main/GlycanDetail/TorsionPlot/TorsionMultiPlot.tsx new file mode 100644 index 000000000..2679f180a --- /dev/null +++ b/webapp/src/main/GlycanDetail/TorsionPlot/TorsionMultiPlot.tsx @@ -0,0 +1,144 @@ +import React, { useEffect, lazy, type ReactElement } from 'react'; + +const TorsionPlot = lazy(async () => await import('./TorsionPlot.tsx')); + +function sortTorsions(torsions) { + const linkageSet = new Set(); + + torsions.forEach( + (torsion: { + sugar_1: string; + atom_number_2: string; + atom_number_1: string; + sugar_2: string; + }): void => { + let linkageString = ''; + if (torsion.sugar_1 === 'ASN') { + linkageString = + torsion.sugar_1 + + '-' + + torsion.atom_number_2 + + ',' + + torsion.atom_number_1 + + '-' + + torsion.sugar_2; + } else { + linkageString = + torsion.sugar_2 + + '-' + + torsion.atom_number_2 + + ',' + + torsion.atom_number_1 + + '-' + + torsion.sugar_1; + } + linkageSet.add(linkageString); + } + ); + + const linkgeArray: string[] = Array.from(linkageSet); + + const sortedLinkageMap = {}; + + linkgeArray.forEach((item): void => { + sortedLinkageMap[item] = []; + }); + + torsions.forEach( + (torsion: { + sugar_1: string; + atom_number_2: string; + atom_number_1: string; + sugar_2: string; + phi: any; + psi: any; + }): void => { + let linkageString = ''; + if (torsion.sugar_1 === 'ASN') { + linkageString = + torsion.sugar_1 + + '-' + + torsion.atom_number_2 + + ',' + + torsion.atom_number_1 + + '-' + + torsion.sugar_2; + } else { + linkageString = + torsion.sugar_2 + + '-' + + torsion.atom_number_2 + + ',' + + torsion.atom_number_1 + + '-' + + torsion.sugar_1; + } + + sortedLinkageMap[linkageString].push({ + phi: torsion.phi, + psi: torsion.psi, + }); + } + ); + + return [linkgeArray, sortedLinkageMap]; +} + +function TorsionMultiPlotTabs({ torsions, setTab }): ReactElement { + const [linkageArray, _] = sortTorsions(torsions); + + return linkageArray.map((item, index) => { + return ( +
  • + +
  • + ); + }); +} + +export default function TorsionMultiPlot({ + torsions, + tab, + setTab, + size, +}: { + torsions: any; + tab: string; + setTab: any; + size: any; +}): ReactElement { + const [linkageArray, sortedLinkageArray] = sortTorsions(torsions); + + useEffect(() => { + setTab(0); + }, []); + + return ( +
    +
    +
      + +
    +
    + + +
    + ); +} diff --git a/webapp/src/main/GlycanDetail/TorsionPlot/TorsionPlot.tsx b/webapp/src/main/GlycanDetail/TorsionPlot/TorsionPlot.tsx new file mode 100644 index 000000000..3e1433558 --- /dev/null +++ b/webapp/src/main/GlycanDetail/TorsionPlot/TorsionPlot.tsx @@ -0,0 +1,127 @@ +import React, { useEffect, useState, lazy, type ReactElement } from 'react'; + +import { linkageDB, binDB } from '../../../data/Constants.tsx'; +const Plot = lazy(async () => await import('react-plotly.js')); + +export default function TorsionPlot({ + linkageType, + sortedTorsionList, + size, +}: { + linkageType: string; + sortedTorsionList: any; + size: any; +}): ReactElement { + const [trace, setTrace] = useState({}); + const [overlay, setOverlay] = useState({}); + const [linkageFound, setLinkageFound] = useState(false); + + useEffect(() => { + fetch(linkageDB[linkageType]) + .then(async (response) => await response.json()) + .then((responseJson) => { + const xData: number[] = []; + const yData: number[] = []; + + for (let i = 0; i < responseJson.length; i++) { + xData.push(parseFloat(responseJson[i].phi as string)); + yData.push(parseFloat(responseJson[i].psi as string)); + } + + setTrace({ + x: xData, + y: yData, + name: 'density', + ncontours: 100, + colorscale: 'Hot', + reversescale: true, + showscale: true, + type: 'histogram2d', + dragmode: false, + colorbar: { + title: 'Frequency', + side: 'bottom', + }, + xbins: { + start: -180, + end: 180, + size: 4, + }, + autobiny: false, + ybins: binDB[linkageType], + }); + setLinkageFound(true); + }) + .catch((error) => { + console.error(error); + console.log(linkageType, ' is not in the DB most likely '); + setLinkageFound(false); + }); + + const overlayPhi: number[] = []; + const overlayPsi: number[] = []; + + for (let i = 0; i < sortedTorsionList[linkageType].length; i++) { + overlayPhi.push(sortedTorsionList[linkageType][i].phi as number); + overlayPsi.push(sortedTorsionList[linkageType][i].psi as number); + } + + setOverlay({ + x: overlayPhi, + y: overlayPsi, + mode: 'markers', + type: 'scatter', + marker: { + size: 8, + color: 'blue', + symbol: ['x'], + }, + }); + }, [linkageType]); + + return !linkageFound ? ( +

    + {linkageType} does not have enough datapoints to generate a torsion + plot. +

    + ) : ( + + ); +} diff --git a/webapp/src/main/PrivateerDisplay/SNFG.tsx b/webapp/src/main/PrivateerDisplay/SNFG.tsx new file mode 100644 index 000000000..ac4d68b47 --- /dev/null +++ b/webapp/src/main/PrivateerDisplay/SNFG.tsx @@ -0,0 +1,277 @@ +import React, { + lazy, + type ReactElement, + useEffect, + useRef, + useState, +} from 'react'; +import { + addMolecule, + addMap, + setEnableAtomHovering, + MoorhenMolecule, + MoorhenMap, +} from 'moorhen'; +import { type SNFGProps } from '../../interfaces/types.ts'; +import { useSelector, useDispatch } from 'react-redux'; +import Loading from '../../shared/Loading/Loading.tsx'; +import GlycanDetail from '../GlycanDetail/GlycanDetail.tsx'; + +const SVGTable = lazy(async () => await import('../SVGTable/SVGTable.tsx')); + +export default function SNFG(props: SNFGProps): ReactElement { + const [rowClicked, setRowClicked] = useState(false); + const [rowID, setRowID] = useState(0); + const [hideMoorhen, setHideMoorhen] = useState(true); + const [allowRowClick, setAllowRowClick] = useState(true); + + const [dataLoaded, setDataLoaded] = useState(false); + + const cootInitialized = useSelector( + (state: any) => state.generalStates.cootInitialized + ); + const controls = useRef(); + + const [map, setMap] = useState(); + const molecules = useSelector((state: any) => state.molecules); + const glRef = useRef(null); + const timeCapsuleRef = useRef(null); + const commandCentre = useRef(null); + const moleculesRef = useRef(null); + const mapsRef = useRef(null); + const dispatch = useDispatch(); + + const collectedProps = { + glRef, + timeCapsuleRef, + commandCentre, + moleculesRef, + mapsRef, + }; + + // const defaultBondSmoothness = useSelector((state: any) => state.sceneSettings.defaultBondSmoothness) + // const backgroundColor = useSelector((state: any) => state.canvasStates.backgroundColor) + + // const [yScrollPosition, setYScrollPosition] = useState(0); + + function saveSNFGs() { + if (props.tableData === null) return; + + const data = props.tableData; + + for (let i = 0; i < data.length; i++) { + const svgBlob = new Blob([data[i].svg], { + type: 'image/svg+xml;charset=utf-8', + }); + const svgUrl = URL.createObjectURL(svgBlob); + const downloadLink = document.createElement('a'); + downloadLink.href = svgUrl; + downloadLink.download = `${data[i].id}.svg`; + document.body.appendChild(downloadLink); + downloadLink.click(); + document.body.removeChild(downloadLink); + } + } + + useEffect(() => { + async function loadMapAndModel() { + if (cootInitialized === true && !dataLoaded) { + setAllowRowClick(true); + + const newMolecule = new MoorhenMolecule( + commandCentre, + glRef, + './baby-gru/monomers' + ); + await newMolecule.loadToCootFromString( + props.fileContent, + 'mol-1' + ); + await newMolecule.fetchIfDirtyAndDraw('CBs'); + const id = props.tableData[rowID].id; + const sugarName = id.split('-')[0]; + const sugarId = id.split('-')[1].split('/')[0].split(':')[0]; + const sugarChain = id.split('/')[1].split('_')[0]; + + const centerString = + sugarChain + '/' + sugarId + '(' + sugarName + ')'; + await newMolecule.centreOn(centerString, true); + + dispatch(addMolecule(newMolecule)); + dispatch(setEnableAtomHovering(false)); + + if (props.mtzData !== null) { + const newMap = new MoorhenMap(commandCentre, glRef); + const mapMetadata = { + F: 'FWT', + PHI: 'PHWT', + Fobs: 'FP', + SigFobs: 'SIGFP', + FreeR: 'FREE', + isDifference: false, + useWeight: false, + calcStructFact: true, + }; + if (props.PDBCode === '') { + await newMap.loadToCootFromMtzData( + props.mtzData, + 'map-1', + mapMetadata + ); + } else { + await newMap.loadToCootFromMapData( + props.mtzData, + 'map-1', + false + ); + } + newMap.suggestedContourLevel = 0.3; + dispatch(addMap(newMap)); + + setMap(newMap); + } + + setDataLoaded(true); + + // let newMolecule = new MoorhenMolecule(controls.current.commandCentre, controls.current.glRef, controls.current.monomerLibrary) + // newMolecule.loadToCootFromString(props.fileContent, 'mol-1').then(() => { + // controls.current.changeMolecules({action: 'Add', item: newMolecule}); + // newMolecule.fetchIfDirtyAndDraw('CBs').then(() => { + // let id = props.tableData[rowID].id + + // let sugar_name = id.split("-")[0] + // let sugar_id = id.split("-")[1].split("/")[0].split(":")[0] + // let sugar_chain = id.split("/")[1].split("_")[0] + + // let center_string = sugar_chain + "/" + sugar_id + "(" + sugar_name + ")" + + // newMolecule.centreOn(center_string) + // setMolecule(newMolecule) + // } + // ) + // }) + + // const map = new MoorhenMap(controls.current.commandCentre, controls.current.glRef); + // const mapMetadata = { + // F: "FWT", + // PHI: "PHWT", + // Fobs: "FP", + // SigFobs: "SIGFP", + // FreeR: "FREE", + // isDifference: false, + // useWeight: false, + // calcStructFact: true, + // } + // if (props.PDBCode == "") { + // await map.loadToCootFromMtzData(props.mtzData, "map-1", mapMetadata) + // } + // else { + // await map.loadToCootFromMapData(props.mtzData, "map-1", false) + + // } + // map.suggestedContourLevel = 0.3 + // console.log("Suggested level", map.suggestedContourLevel, map) + // controls.current.changeMaps({ action: "Add", item: map }) + // controls.current.setActiveMap(map) + // setMap(map) + // setDataLoaded(true) + } + } + loadMapAndModel().then( + () => {}, + () => {} + ); + }, [cootInitialized]); + + useEffect(() => { + async function moveView() { + if (cootInitialized === false) { + console.log('coot not loaded'); + return; + } + // console.log(molecules) + + // setYScrollPosition(window.scrollY) + const id = props.tableData[rowID].id; + const sugarName = id.split('-')[0]; + const sugarId = id.split('-')[1].split('/')[0].split(':')[0]; + const sugarChain = id.split('/')[1].split('_')[0]; + + const centerString = + sugarChain + '/' + sugarId + '(' + sugarName + ')'; + const selectedMolecule = molecules.find( + (molecule) => molecule.name === 'mol-1' + ); + await selectedMolecule.centreOn(centerString); + // window.scrollTo(0, 0) + setHideMoorhen(false); + } + moveView().then( + () => {}, + () => {} + ); + }, [rowClicked]); + + const glycanDetailProps = { + tableData: props.tableData, + hideMoorhen, + setHideMoorhen, + rowID, + controls, + map, + moorhenProps: collectedProps, + }; + + const svgTableProps = { + tableData: props.tableData, + allowRowClick, + rowClick: rowClicked, + setRowClicked, + setRowID, + }; + + return ( +
    + {dataLoaded ? ( +
    +
    +

    + Detected {props.tableData.length} Glycans in{' '} + {props.filename} + +

    + + +
    +
    + ) : ( + + )} + +
    + +
    +
    + ); +} diff --git a/webapp/src/main/SVGTable/SVGTable.tsx b/webapp/src/main/SVGTable/SVGTable.tsx new file mode 100644 index 000000000..b90672e7e --- /dev/null +++ b/webapp/src/main/SVGTable/SVGTable.tsx @@ -0,0 +1,148 @@ +import React, { type ReactElement, useMemo } from 'react'; +import { useTable } from 'react-table'; +import { COLUMNS } from '../../data/Constants.tsx'; +import styled from 'styled-components'; +import { type SVGTableProps } from '../../interfaces/types.ts'; + +const Styles = styled.div` + table { + border-collapse: collapse; + border-spacing: 0; + width: 100%; + // border: 0px solid #ddd; + } + + table th { + text-align: left; + padding: 16px; + // border: 1px solid #ddd; + } + + table td { + text-align: center; + padding: 16px; + border: 1px solid #ddd; + border-style: solid none; + } + + table td { + border-style: none none; + } + + table tr:nth-child(even) { + background-color: #f6f6f6; + } + + table tr:nth-child(even) { + background-color: #f4f9ff; + // color: #000000 + } + + table th { + padding-top: 12px; + padding-bottom: 12px; + text-align: center; + background-color: #f4f9ff; + color: black; + } + + table th:first-of-type { + border-top-left-radius: 30px; + } + + table th:last-of-type { + border-top-right-radius: 30px; + } + + table tr:last-of-type td:first-of-type { + border-bottom-left-radius: 30px; + } + + table tr:last-of-type td:last-of-type { + border-bottom-right-radius: 30px; + } + + #row:hover { + scale: 101%; + cursor: grab; + } +`; + +export default function SVGTable(props: SVGTableProps): ReactElement { + // const [data, _setData] = useState(props.tableData); + // const controls = useRef(); + const data = props.tableData; + + const columns = useMemo(() => COLUMNS, []); + const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } = + useTable({ columns, data }); + + function handleRowClick(rowId: number): void { + if (props.allowRowClick) { + props.setRowClicked(!props.rowClick); + props.setRowID(rowId); + } + } + + return ( +
    + {/* @ts-expect-error */} + +
    + + + {headerGroups.map((headerGroup) => ( + + {headerGroup.headers.map((column) => ( + + ))} + + ))} + + + {rows.map((row) => { + prepareRow(row); + return ( + { + if (props.allowRowClick) { + handleRowClick( + row.id as number + ); + } + }} + title="Click to visualise." + id="row" + key={row.name} + > + {row.cells.map((cell) => { + return ( + + ); + })} + + ); + })} + +
    + {column.render('Header')} +
    + {cell.render('Cell')}{' '} +
    +
    +
    +
    + ); +} diff --git a/webapp/src/pages/DatabaseSection/DatabaseSection.tsx b/webapp/src/pages/DatabaseSection/DatabaseSection.tsx new file mode 100644 index 000000000..bffef47fc --- /dev/null +++ b/webapp/src/pages/DatabaseSection/DatabaseSection.tsx @@ -0,0 +1,107 @@ +import React, { lazy, type ReactElement, useEffect, useState } from 'react'; +import { Information } from '../../shared/Information/Information.tsx'; +import { type DatabaseHeaderProps } from '../../interfaces/types'; +import { DatabaseHeader } from '../../layouts/DatabaseHeader.tsx'; + +const Footer = lazy(async () => await import('../../layouts/Footer.tsx')); +const BorderElement = lazy( + async () => await import('../../layouts/BorderElement.tsx') +); + +export default function DatabaseSection(props: { + query: any; + setSearchParams: any; +}): ReactElement { + const [PDBCode, setPDBCode] = useState(''); + const [submit, setSubmit] = useState(false); + const [loadingText, setLoadingText] = useState( + 'Validating Glycans...' + ); + const [resetApp, setResetApp] = useState(false); + const [fallback, setFallBack] = useState(false); + const [failureText, setFailureText] = useState(''); + const [results, setResults] = useState(''); + // const [failure, setFailure] = useState(false); + + async function handleDatabaseLookup(PDBCode: string): Promise { + const pdbCode = PDBCode.toLowerCase(); + const middlefix = pdbCode.substring(1, 3); + + const url = `https://raw.githubusercontent.com/Dialpuri/PrivateerDatabase/master/${middlefix}/${pdbCode}.json`; + + try { + const response = await fetch(url); + const data: string = await response.json(); + setResults(data); + } catch { + console.log('not in db'); + setFallBack(true); + setFailureText('This PDB is not in the database'); + } + } + + useEffect(() => { + if (PDBCode !== '') { + setLoadingText( + `Fetching ${PDBCode.toUpperCase()} from the database` + ); + handleDatabaseLookup(PDBCode).then( + () => {}, + () => {} + ); + props.query.set('pdb', PDBCode); + props.setSearchParams({ pdb: PDBCode }); + } + }, [submit]); + + useEffect(() => { + setSubmit(false); + setFallBack(false); + setResetApp(false); + setPDBCode(''); + setResults(''); + props.setSearchParams({}); + }, [resetApp]); + + useEffect(() => { + if (props.query.get('pdb') != null) { + const pdb: string = props.query.get('pdb'); + handleDatabaseLookup(pdb).then( + () => {}, + () => {} + ); + setPDBCode(pdb); + } + }, []); + + const mainProps: DatabaseHeaderProps = { + resetApp, + setResetApp, + PDBCode, + setPDBCode, + submit, + setSubmit, + loadingText, + fallback, + failureText, + results, + }; + + return ( + <> + + + + +
    + + ); +} diff --git a/webapp/src/pages/Home/HomeSection.tsx b/webapp/src/pages/Home/HomeSection.tsx new file mode 100644 index 000000000..5b82131e7 --- /dev/null +++ b/webapp/src/pages/Home/HomeSection.tsx @@ -0,0 +1,230 @@ +import React, { lazy, useEffect, useState } from 'react'; +import { Header } from '../../layouts/Header'; +import { Information } from '../../shared/Information/Information.tsx'; + +// @ts-expect-error: Emscripten Generated JS does not conform to typescript conventions +import privateer_module from '../../wasm/privateer.js'; +import { loadGlytoucanFromFile } from '../../utils/loadGlytoucan.ts'; + +import { fetchMap, fetchPDB } from '../../utils/fetch_from_pdb.ts'; + +import { type HeaderProps, type TableDataEntry } from '../../interfaces/types'; + +const Footer = lazy(async () => await import('../../layouts/Footer.tsx')); +const BorderElement = lazy( + async () => await import('../../layouts/BorderElement.tsx') +); + +export default function HomeSection(): Element { + const [coordinateFile, setCoordinateFile] = useState(null); + const [reflectionFile, setReflectionFile] = useState(null); + const [PDBCode, setPDBCode] = useState(''); + const [fileContent, setFileContent] = useState(''); + const [mtzData, setMtzData] = useState(null); + const [submit, setSubmit] = useState(false); + const [tableData, setTableData] = useState(null); + const [loadingText, setLoadingText] = useState( + 'Validating Glycans...' + ); + const [resetApp, setResetApp] = useState(false); + const [fallback, setFallBack] = useState(false); + const [failureText, setFailureText] = useState(''); + + function sanitizeID(id: string): string { + const regex = /: *32/g; + return id.replace(regex, ''); + } + + async function runPrivateer( + Module: any, + fileContent: string | ArrayBuffer | null, + name: string | null + ): Promise { + if (fileContent === null || name === null) { + await Promise.resolve(); + return; + } + setFileContent(fileContent); + + const x = Module.read_structure_to_table(fileContent, name); + + const tableData: TableDataEntry[] = []; + for (let i = 0; i < x.size(); i++) { + const tableEntry = x.get(i); + + tableEntry.id = sanitizeID(tableEntry.id as string); + + const collectedTorsions: any[] = []; + for (let j = 0; j < tableEntry.torsions.size(); j++) { + collectedTorsions.push(tableEntry.torsions.get(j)); + } + tableEntry.torsions = collectedTorsions; + const regex = /: *32/g; + tableEntry.svg = tableEntry.svg.replace(regex, ''); + tableData.push(tableEntry as TableDataEntry); + } + + if (x.size() === 0) { + setFailureText('There were no detected glycans in this model.'); + setFallBack(true); + } + + // Get Glyconnect ID from WURCS + setLoadingText('Querying Glytoucan...'); + await loadGlytoucanFromFile(tableData); + + setTableData(tableData); + } + + useEffect(() => { + async function handleLoad(): Promise { + if (PDBCode !== '') { + setLoadingText( + `Fetching ${PDBCode.toUpperCase()} from the PDB` + ); + + try { + const mapResponse = await fetchMap(PDBCode); + const mapArray = new Uint8Array(mapResponse); + setMtzData(mapArray); + } catch (err) { + console.log('No map found, continuing...'); + } + + fetchPDB(PDBCode) + .then((response: ArrayBuffer) => { + setFileContent(response); + setLoadingText('Validating Glycans...'); + + privateer_module().then( + async (Module: any) => { + await runPrivateer(Module, response, PDBCode); + }, + () => {} + ); + }) + .catch(() => { + setFailureText('This PDB code could not be found'); + setLoadingText( + 'There were no detected glycans in this file.' + ); + setFallBack(true); + }); + } else { + privateer_module() + .then( + ( + Module: Record< + string, + ( + arg0: string, + arg1: string, + arg2: Uint8Array, + arg3: boolean, + arg4: boolean, + arg5: boolean + ) => void + > + ) => { + const coordinateReader = new FileReader(); + const reflectionReader = new FileReader(); + + coordinateReader.onload = () => { + runPrivateer( + Module, + coordinateReader.result, + coordinateFile.name + ).then( + () => {}, + () => {} + ); + }; + + if (coordinateFile !== null) { + coordinateReader.readAsText(coordinateFile); + console.log(coordinateFile); + } + + reflectionReader.onload = async () => { + const mapData = new Uint8Array( + reflectionReader.result + ); + setMtzData(mapData); + + Module.FS_createDataFile( + '/', + 'input.mtz', + mapData, + true, + true, + true + ); + }; + + if (reflectionFile !== null) { + reflectionReader.readAsArrayBuffer( + reflectionFile + ); + } + } + ) + .catch((e: any) => { + console.log(e); + }); + } + } + handleLoad() + .then( + () => {}, + () => {} + ) + .catch(() => {}); + }, [submit]); + + useEffect(() => { + setReflectionFile(null); + setCoordinateFile(null); + setSubmit(false); + setTableData(null); + setFallBack(false); + setResetApp(false); + setPDBCode(''); + }, [resetApp]); + + const mainProps: HeaderProps = { + resetApp, + setResetApp, + PDBCode, + setPDBCode, + coordinateFile, + setCoordinateFile, + reflectionFile, + setReflectionFile, + submit, + setSubmit, + tableData, + loadingText, + fileContent, + fallback, + mtzData, + failureText, + }; + + return ( + <> +
    + + + +
    + + ); +} diff --git a/webapp/src/reportWebVitals.js b/webapp/src/reportWebVitals.js new file mode 100644 index 000000000..88814bf39 --- /dev/null +++ b/webapp/src/reportWebVitals.js @@ -0,0 +1,15 @@ +const reportWebVitals = (onPerfEntry) => { + if (onPerfEntry && onPerfEntry instanceof Function) { + import('web-vitals').then( + ({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { + getCLS(onPerfEntry); + getFID(onPerfEntry); + getFCP(onPerfEntry); + getLCP(onPerfEntry); + getTTFB(onPerfEntry); + } + ); + } +}; + +export default reportWebVitals; diff --git a/webserver/src/setupTests.js b/webapp/src/setupTests.js similarity index 100% rename from webserver/src/setupTests.js rename to webapp/src/setupTests.js diff --git a/webapp/src/shared/Information/Information.tsx b/webapp/src/shared/Information/Information.tsx new file mode 100644 index 000000000..115a31126 --- /dev/null +++ b/webapp/src/shared/Information/Information.tsx @@ -0,0 +1,154 @@ +import { + TORSIONS_CITATION, + GLYCOMICS_CITATION, +} from '../../data/Constants.tsx'; +import React from 'react'; +export function Information() { + return ( +
    +
    +
    + + How does it work? + + + Carbohydrates, including O- and N-glycans attached to + protein and lipid structures, are increasingly important + in cellular biology. Crystallographic refinement of + sugars is, however, very poorly performed, with + thousands of incorrect structures polluting the Protein + Data Bank. Privateer is a software that aims to + detect and prevent conformational, regiochemical and + stereochemical anomalies in cyclic carbohydrate + structures. Multiple features can be used to assess the + validity of a glycan chain.{' '} + +
    + +
    +
    + +
    + + Stereochemical Validation + + + Cyclic carbohydrates usually have clear + conformational preferences in terms of energy. + Whilst enzymes can force sugars into + higher-energy conformations in order to achieve + catalysis, sugars tend to stay in their original + lowest-energy conformation, which for pyranoses + is either a 4C1 or a{' '} + 1C4 chair. Privateer + checks each glycan for the correct + stereochemistry and highlights any outliers. + +
    +
    + +
    +
    + + + Real Space Correlation Coefficient + Validation + + + + The real space correlation coefficient metric + quantitatively describes how well a modelled + residue fits its associated experimental + density. It is defined by calculating the + difference between observed (experimental) + structural factors and calculated structural + factors associated with the fitted model. For + monosaccharides that are modelled as components + of glycans, RSCC values of above 0.80 are + considered to signify a good model fit to its + associated experimental density. A real space + correlation coefficient against omit mFo-DFc + electron density is reported as a quality of fit + indicator. + +
    + +
    + +
    + +
    + + Glycomics-Powered Validation + + + + + + + + When modelling glycans, it is possible to + produce incorrect glycan compositions that do + nor conform with general glycan biosynthesis + knowledge. In Privateer, users can check their + glycan structure and composition against + glycomics databases. This allows the + identification of inconsistent linkages, and + following this, alternative compositions will be + suggested to provide a more accurate, complete + structure. + +
    +
    + +
    +
    + + Linkage Torsion Validation + + + + + + + + + Torsion angle analysis allows the validation of + the overall conformation of N-glycans. Using a + compiled set of glycosidic linkage torsional + preferences harvested from a curated set of + glycoprotein models, a Z score for each proposed + glycan linkage is calculated and displayed + within the Symbol Nomenclature For Glycan (SNFG) + image. + +
    + +
    +
    +
    +
    + ); +} diff --git a/webapp/src/shared/Loading/Loading.tsx b/webapp/src/shared/Loading/Loading.tsx new file mode 100644 index 000000000..065fd48b2 --- /dev/null +++ b/webapp/src/shared/Loading/Loading.tsx @@ -0,0 +1,15 @@ +import ClipLoader from 'react-spinners/ClipLoader'; +import React from 'react'; +export default function Loading(props: { loadingText: string }) { + return ( +
    +

    {props.loadingText}

    + +
    + ); +} diff --git a/webserver/src/components/Loading/PageLoad.jsx b/webapp/src/shared/Loading/PageLoad.jsx similarity index 88% rename from webserver/src/components/Loading/PageLoad.jsx rename to webapp/src/shared/Loading/PageLoad.jsx index 115d3a10d..473941059 100644 --- a/webserver/src/components/Loading/PageLoad.jsx +++ b/webapp/src/shared/Loading/PageLoad.jsx @@ -1,4 +1,4 @@ -import ClipLoader from "react-spinners/ClipLoader"; +import ClipLoader from 'react-spinners/ClipLoader'; export default function PageLoad() { return ( @@ -11,6 +11,5 @@ export default function PageLoad() { data-testid="loader" />
    - ) - -} \ No newline at end of file + ); +} diff --git a/webapp/src/shared/NoGlycans/NoGlycans.tsx b/webapp/src/shared/NoGlycans/NoGlycans.tsx new file mode 100644 index 000000000..701cbec1e --- /dev/null +++ b/webapp/src/shared/NoGlycans/NoGlycans.tsx @@ -0,0 +1,25 @@ +import { type NoGlycansProps } from '../../interfaces/types.tsx'; +import React from 'react'; +export default function NoGlycans(props: NoGlycansProps) { + return ( +
    +

    {props.text}

    + +
    + +
    +
    + ); +} diff --git a/webapp/src/shared/PDBFetch/PDBFetch.tsx b/webapp/src/shared/PDBFetch/PDBFetch.tsx new file mode 100644 index 000000000..024000dc4 --- /dev/null +++ b/webapp/src/shared/PDBFetch/PDBFetch.tsx @@ -0,0 +1,94 @@ +import React, { + type Dispatch, + type SetStateAction, + useEffect, + useState, +} from 'react'; + +export default function PDBFetch({ + PDBCode, + setPDBCode, + submitPressed, +}: { + PDBCode: string; + setPDBCode: Dispatch>; + submitPressed: Dispatch>; +}) { + const [pdb, setPDB] = useState(''); + + useEffect(() => { + if (pdb.length !== 4) { + return; + } + if (pdb.match(/^[a-z0-9]+$/i) === null) { + return; + } + + setPDBCode(pdb); + submitPressed(true); + }, [pdb]); + + return ( + <> + {PDBCode === '' ? ( +
    + +
    + ) : ( + <> + )} + + ); +} diff --git a/webapp/src/shared/Submit/Submit.tsx b/webapp/src/shared/Submit/Submit.tsx new file mode 100644 index 000000000..bf81e0a61 --- /dev/null +++ b/webapp/src/shared/Submit/Submit.tsx @@ -0,0 +1,98 @@ +import Molecule from '../../assets/Molecule'; +import Reflections from '../../assets/Reflections.tsx'; +import React, { + type Dispatch, + type ReactElement, + type SetStateAction, +} from 'react'; +interface FileLineProps { + icon: any; + name: string; +} +function FileLine(props: FileLineProps): ReactElement { + return ( +
    +
    {props.icon}
    +

    {props.name}

    +
    + ); +} + +interface SubmitProps { + coordinateFile: File; + reflectionFile: File; + submitPressed: boolean; + setResetApp: Dispatch>; + allowSubmit: boolean; +} +export default function Submit({ + coordinateFile, + reflectionFile, + submitPressed, + setResetApp, + allowSubmit, +}: SubmitProps): ReactElement { + function getFileList(): ReactElement[] { + const array: ReactElement[] = []; + if (coordinateFile !== null) { + array.push( + } + name={coordinateFile.name} + key={'c'} + /> + ); + } + if (reflectionFile !== null) { + array.push( + } + name={reflectionFile.name} + key={'r'} + /> + ); + } + return array; + } + + return ( +
    +

    File uploaded:

    + {getFileList()} + +
    + + + {allowSubmit ? ( + + ) : ( + + )} +
    +
    + ); +} diff --git a/webapp/src/shared/Upload/Upload.tsx b/webapp/src/shared/Upload/Upload.tsx new file mode 100644 index 000000000..4e8b1bf02 --- /dev/null +++ b/webapp/src/shared/Upload/Upload.tsx @@ -0,0 +1,91 @@ +import React, { type ReactElement, useEffect, useState } from 'react'; +import UploadButton from './UploadButton.tsx'; +import Submit from '../Submit/Submit.tsx'; +import PDBFetch from '../PDBFetch/PDBFetch'; +import { + type HeaderProps, + type UploadButtonProps, +} from '../../interfaces/types.ts'; + +export default function Upload(props: HeaderProps): ReactElement { + const [showUploadAgain, setShowUploadAgain] = useState(true); + const [showSubmit, setShowSubmit] = useState(false); + const [allowSubmit, setAllowSubmit] = useState(false); + const [showPDBFetch, setShowPDBFetch] = useState(true); + + useEffect(() => { + setShowPDBFetch(true); + }, [props.resetApp]); + + useEffect(() => { + if (props.coordinateFile !== null && props.reflectionFile != null) { + setShowSubmit(true); + setShowUploadAgain(false); + setAllowSubmit(true); + setShowPDBFetch(false); + } + + if (props.coordinateFile !== null && props.reflectionFile === null) { + setShowSubmit(true); + setShowUploadAgain(true); + setAllowSubmit(true); + setShowPDBFetch(false); + } + + if (props.coordinateFile === null && props.reflectionFile !== null) { + setShowSubmit(true); + setShowUploadAgain(true); + setAllowSubmit(false); + setShowPDBFetch(false); + } + + if (props.coordinateFile === null && props.reflectionFile === null) { + setShowSubmit(false); + setShowUploadAgain(true); + setAllowSubmit(false); + setShowPDBFetch(true); + } + }, [props.coordinateFile, props.reflectionFile]); + + const uploadButtonProps: UploadButtonProps = { + setCoordinateFile: props.setCoordinateFile, + setReflectionFile: props.setReflectionFile, + }; + + return ( +
    + {showUploadAgain ? : <>} + {showSubmit ? ( + + ) : ( + <> + )} + + {showPDBFetch ? ( +
    + OR +
    + ) : ( + <> + )} + {showPDBFetch ? ( + + ) : ( + <> + )} +
    + ); +} diff --git a/webapp/src/shared/Upload/UploadButton.tsx b/webapp/src/shared/Upload/UploadButton.tsx new file mode 100644 index 000000000..dd55b147a --- /dev/null +++ b/webapp/src/shared/Upload/UploadButton.tsx @@ -0,0 +1,124 @@ +import React, { type ReactElement, useState } from 'react'; +import { type UploadButtonProps } from '../../interfaces/types.ts'; +export default function UploadButton(props: UploadButtonProps): ReactElement { + const fileUpload: (e: any) => void = (e: any) => { + if (e.target.files !== null) { + for (let i = 0; i < e.target.files.length; i++) { + const splitname = e.target.files[i].name.split('.'); + const ext = splitname[splitname.length - 1]; + + if (ext === 'pdb' || ext === 'cif' || ext === 'mmcif') { + props.setCoordinateFile(e.target.files[i] as File); + } else if (ext === 'mtz') { + props.setReflectionFile(e.target.files[i] as File); + } else { + console.error('Unknown File Type.'); + } + } + } + }; + + const [dragActivate, setDragActive] = useState(false); + + const handleDragOver: (e: any) => void = (e: any) => { + e.preventDefault(); + e.stopPropagation(); + setDragActive(true); + }; + + const handleDrop: (e: any) => void = (e: any) => { + e.preventDefault(); + e.stopPropagation(); + if (e.dataTransfer.files[0] !== null) { + props.setCoordinateFile(e.dataTransfer.files[0] as File); + } + setDragActive(false); + }; + + return ( +
    + {!dragActivate ? ( + + ) : ( + + )} +
    + ); +} diff --git a/webapp/src/utils/fetch_from_pdb.ts b/webapp/src/utils/fetch_from_pdb.ts new file mode 100644 index 000000000..2a93dbc2e --- /dev/null +++ b/webapp/src/utils/fetch_from_pdb.ts @@ -0,0 +1,56 @@ +export async function fetchPDB(PDBCode: string): Promise { + if (PDBCode == null) { + return; + } + console.log('Fetching PDB ', PDBCode); + const pdbURL = `https://files.rcsb.org/download/${PDBCode.toUpperCase()}.pdb`; + + const file = fetch(pdbURL) + .then(async (response) => { + if (!response.ok) { + throw new Error('Network error'); + } + return await response.text(); + }) + .then(async (file) => { + return file; + }) + .catch(() => { + throw new Error('PDB Not Found'); + }); + return await file; +} + +export async function fetchMap(PDBCode: string): Promise { + if (PDBCode == null) { + await Promise.resolve(); + return; + } + console.log('Fetching MTZ ', PDBCode); + const mtzURL = `https://www.ebi.ac.uk/pdbe/entry-files/${PDBCode.toLowerCase()}.ccp4`; + + try { + const controller = new AbortController(); + const timeId = setTimeout(() => { + controller.abort(); + }, 60000); + + const file = fetch(mtzURL, { signal: controller.signal }) + .then(async (response) => { + clearTimeout(timeId); + + if (!response.ok) { + throw new Error('Network error'); + } + return await response.arrayBuffer(); + }) + .then(async (file) => { + return file; + }) + .catch(async () => { + // throw 'Map not found' + throw new Error('Map Not Found'); + }); + return await file; + } catch {} +} diff --git a/webapp/src/utils/loadGlyconnect.js b/webapp/src/utils/loadGlyconnect.js new file mode 100644 index 000000000..3b4d03623 --- /dev/null +++ b/webapp/src/utils/loadGlyconnect.js @@ -0,0 +1,44 @@ +// async function get_glyconnect_id(glytoucan_id) { +// let url = "https://glyconnect.expasy.org/api/structures/search/glytoucan" +// +// console.log(JSON.stringify({"glytoucan_id": glytoucan_id})) +// +// fetch(url, { +// method: "POST", +// body: JSON.stringify({"glytoucan_id": glytoucan_id}), +// headers: { +// "Content-type": "application/json; charset=UTF-8" +// } +// }).then((response) => { +// const contentType = response.headers.get("content-type") +// if (contentType && contentType.indexOf("application/json") !== -1) { +// return response.json() +// } else if (response.status == 404) { +// return Promise.reject("404 Error") +// } +// }).catch((error) => { +// return Promise.reject(error) +// // console.log(error) +// }) +// } + +// export default async function load_glyconnect(table_data) { +// +// let promises = []; +// +// for (var i = 0; i < table_data.length; i++) { +// let item = table_data[i] +// promises.push(get_glyconnect_id(item.glytoucan_id)) +// } +// +// try { +// const data = await Promise.all(promises) +// } catch { +// +// } +// data.forEach((data, index) => { +// // console.log(data) +// // table_data[index].glytoucan_id = data[0].id; +// }) +// return table_data; +// } diff --git a/webapp/src/utils/loadGlytoucan.ts b/webapp/src/utils/loadGlytoucan.ts new file mode 100644 index 000000000..920900379 --- /dev/null +++ b/webapp/src/utils/loadGlytoucan.ts @@ -0,0 +1,66 @@ +import { type TableDataEntry } from '../interfaces/types'; +import pako from 'pako'; + +async function getGlytoucanId(wurcs: string): Promise { + const url = + 'https://api.glycosmos.org/sparqlist/wurcs2gtcids?wurcs=' + + encodeURIComponent(wurcs); + + return await fetch(url, { + method: 'GET', // default, so we can ignore + }) + .then(async (response) => await response.json()) + .catch((error) => { + console.log(error); + }); +} + +export default async function loadGlytoucan( + tableData: TableDataEntry[] +): Promise { + const promises: Array> = []; + + for (let i = 0; i < tableData.length; i++) { + const item = tableData[i]; + promises.push(getGlytoucanId(item.wurcs)); + } + + const data = await Promise.all(promises); + + data.forEach((data, index) => { + tableData[index].glytoucan_id = data[0].id; + }); + return tableData; +} + +export async function loadGlytoucanFromFile( + tableData: TableDataEntry[] +): Promise { + const response = await fetch( + 'privateer_glycomics_database_slim.json.gzip', + { + headers: new Headers({ 'content-type': 'application/gzip' }), + mode: 'no-cors', + } + ); + + if (!response.ok) { + throw new Error(`Failed to fetch the file. Status: ${response.status}`); + } + const gzippedData = await response.arrayBuffer(); + const output = pako.inflate(gzippedData, { to: 'string' }); + const glycomicsData = JSON.parse(output); + + tableData.forEach((data, index) => { + const glycomicsResult = glycomicsData[data.wurcs]; + + // Neaten up NotFound -> Not Found + if (glycomicsResult.GlyConnect === 'NotFound') { + glycomicsResult.GlyConnect = 'Not Found'; + } + + tableData[index].glytoucan_id = glycomicsResult.GlyToucan; + tableData[index].glyconnect_id = glycomicsResult.GlyConnect; + }); + return tableData; +} diff --git a/webserver/src/vite-env.d.ts b/webapp/src/vite-env.d.ts similarity index 100% rename from webserver/src/vite-env.d.ts rename to webapp/src/vite-env.d.ts diff --git a/webapp/src/wasm/privateer.js b/webapp/src/wasm/privateer.js new file mode 100644 index 000000000..82a372b36 --- /dev/null +++ b/webapp/src/wasm/privateer.js @@ -0,0 +1,8288 @@ +var privateer_module = (() => { + var _scriptDir = import.meta.url; + + return async function (moduleArg = {}) { + var Module = moduleArg; + var readyPromiseResolve, readyPromiseReject; + Module['ready'] = new Promise((resolve, reject) => { + readyPromiseResolve = resolve; + readyPromiseReject = reject; + }); + [ + '_main', + 'getExceptionMessage', + '___get_exception_message', + '_free', + '___cpp_exception', + '___cxa_increment_exception_refcount', + '___cxa_decrement_exception_refcount', + '___thrown_object_from_unwind_exception', + '_fflush', + '__embind_initialize_bindings', + '___set_stack_limits', + 'onRuntimeInitialized', + ].forEach((prop) => { + if (!Object.getOwnPropertyDescriptor(Module['ready'], prop)) { + Object.defineProperty(Module['ready'], prop, { + get: () => + abort( + 'You are getting ' + + prop + + ' on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js' + ), + set: () => + abort( + 'You are setting ' + + prop + + ' on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js' + ), + }); + } + }); + if (!Module.expectedDataFileDownloads) { + Module.expectedDataFileDownloads = 0; + } + Module.expectedDataFileDownloads++; + (function () { + if (Module['ENVIRONMENT_IS_PTHREAD'] || Module['$ww']) return; + var loadPackage = function (metadata) { + var PACKAGE_PATH = ''; + if (typeof window === 'object') { + PACKAGE_PATH = window['encodeURIComponent']( + window.location.pathname + .toString() + .substring( + 0, + window.location.pathname + .toString() + .lastIndexOf('/') + ) + '/' + ); + } else if ( + typeof process === 'undefined' && + typeof location !== 'undefined' + ) { + PACKAGE_PATH = encodeURIComponent( + location.pathname + .toString() + .substring( + 0, + location.pathname.toString().lastIndexOf('/') + ) + '/' + ); + } + var PACKAGE_NAME = 'privateer.data'; + var REMOTE_PACKAGE_BASE = 'privateer.data'; + if ( + typeof Module['locateFilePackage'] === 'function' && + !Module['locateFile'] + ) { + Module['locateFile'] = Module['locateFilePackage']; + err( + 'warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)' + ); + } + var REMOTE_PACKAGE_NAME = Module['locateFile'] + ? Module['locateFile'](REMOTE_PACKAGE_BASE, '') + : REMOTE_PACKAGE_BASE; + var REMOTE_PACKAGE_SIZE = metadata['remote_package_size']; + function fetchRemotePackage( + packageName, + packageSize, + callback, + errback + ) { + if ( + typeof process === 'object' && + typeof process.versions === 'object' && + typeof process.versions.node === 'string' + ) { + require('fs').readFile( + packageName, + function (err, contents) { + if (err) { + errback(err); + } else { + callback(contents.buffer); + } + } + ); + return; + } + var xhr = new XMLHttpRequest(); + xhr.open('GET', packageName, true); + xhr.responseType = 'arraybuffer'; + xhr.onprogress = function (event) { + var url = packageName; + var size = packageSize; + if (event.total) size = event.total; + if (event.loaded) { + if (!xhr.addedTotal) { + xhr.addedTotal = true; + if (!Module.dataFileDownloads) + Module.dataFileDownloads = {}; + Module.dataFileDownloads[url] = { + loaded: event.loaded, + total: size, + }; + } else { + Module.dataFileDownloads[url].loaded = + event.loaded; + } + var total = 0; + var loaded = 0; + var num = 0; + for (var download in Module.dataFileDownloads) { + var data = Module.dataFileDownloads[download]; + total += data.total; + loaded += data.loaded; + num++; + } + total = Math.ceil( + (total * Module.expectedDataFileDownloads) / num + ); + if (Module['setStatus']) + Module['setStatus']( + `Downloading data... (${loaded}/${total})` + ); + } else if (!Module.dataFileDownloads) { + if (Module['setStatus']) + Module['setStatus']('Downloading data...'); + } + }; + xhr.onerror = function (event) { + throw new Error('NetworkError for: ' + packageName); + }; + xhr.onload = function (event) { + if ( + xhr.status == 200 || + xhr.status == 304 || + xhr.status == 206 || + (xhr.status == 0 && xhr.response) + ) { + var packageData = xhr.response; + callback(packageData); + } else { + throw new Error( + xhr.statusText + ' : ' + xhr.responseURL + ); + } + }; + xhr.send(null); + } + function handleError(error) { + console.error('package error:', error); + } + var fetchedCallback = null; + var fetched = Module['getPreloadedPackage'] + ? Module['getPreloadedPackage']( + REMOTE_PACKAGE_NAME, + REMOTE_PACKAGE_SIZE + ) + : null; + if (!fetched) + fetchRemotePackage( + REMOTE_PACKAGE_NAME, + REMOTE_PACKAGE_SIZE, + function (data) { + if (fetchedCallback) { + fetchedCallback(data); + fetchedCallback = null; + } else { + fetched = data; + } + }, + handleError + ); + function runWithFS() { + function assert(check, msg) { + if (!check) throw msg + new Error().stack; + } + Module['FS_createPath']( + '/', + 'unprocessed_files', + true, + true + ); + function DataRequest(start, end, audio) { + this.start = start; + this.end = end; + this.audio = audio; + } + DataRequest.prototype = { + requests: {}, + open: function (mode, name) { + this.name = name; + this.requests[name] = this; + Module['addRunDependency'](`fp ${this.name}`); + }, + send: function () {}, + onload: function () { + var byteArray = this.byteArray.subarray( + this.start, + this.end + ); + this.finish(byteArray); + }, + finish: function (byteArray) { + var that = this; + Module['FS_createDataFile']( + this.name, + null, + byteArray, + true, + true, + true + ); + Module['removeRunDependency'](`fp ${that.name}`); + this.requests[this.name] = null; + }, + }; + var files = metadata['files']; + for (var i = 0; i < files.length; ++i) { + new DataRequest( + files[i]['start'], + files[i]['end'], + files[i]['audio'] || 0 + ).open('GET', files[i]['filename']); + } + function processPackageData(arrayBuffer) { + assert(arrayBuffer, 'Loading data file failed.'); + assert( + arrayBuffer.constructor.name === ArrayBuffer.name, + 'bad input to processPackageData' + ); + var byteArray = new Uint8Array(arrayBuffer); + DataRequest.prototype.byteArray = byteArray; + var files = metadata['files']; + for (var i = 0; i < files.length; ++i) { + DataRequest.prototype.requests[ + files[i].filename + ].onload(); + } + Module['removeRunDependency']( + 'datafile_privateer.data' + ); + } + Module['addRunDependency']('datafile_privateer.data'); + if (!Module.preloadResults) Module.preloadResults = {}; + Module.preloadResults[PACKAGE_NAME] = { fromCache: false }; + if (fetched) { + processPackageData(fetched); + fetched = null; + } else { + fetchedCallback = processPackageData; + } + } + if (Module['calledRun']) { + runWithFS(); + } else { + if (!Module['preRun']) Module['preRun'] = []; + Module['preRun'].push(runWithFS); + } + }; + loadPackage({ + files: [ + { + filename: '/privateer_torsion_database.json', + start: 0, + end: 2313860, + }, + { + filename: '/privateer_torsion_statistics.json', + start: 2313860, + end: 2326506, + }, + { + filename: '/privateer_torsions_z_score_database.json', + start: 2326506, + end: 10108540, + }, + { + filename: '/unprocessed_files/ASN-NAG_reduced.json', + start: 10108540, + end: 10757358, + }, + { + filename: '/unprocessed_files/ASN-NGA_reduced.json', + start: 10757358, + end: 10758631, + }, + { + filename: '/unprocessed_files/BGC-BGC_reduced.json', + start: 10758631, + end: 10760275, + }, + { + filename: '/unprocessed_files/BGC-GAL_reduced.json', + start: 10760275, + end: 10760795, + }, + { + filename: '/unprocessed_files/BGC-GLA_reduced.json', + start: 10760795, + end: 10761054, + }, + { + filename: '/unprocessed_files/BGC-XYS_reduced.json', + start: 10761054, + end: 10761397, + }, + { + filename: '/unprocessed_files/BMA-BMA_reduced.json', + start: 10761397, + end: 10762693, + }, + { + filename: '/unprocessed_files/BMA-GAL_reduced.json', + start: 10762693, + end: 10762868, + }, + { + filename: '/unprocessed_files/BMA-MAN_reduced.json', + start: 10762868, + end: 10888263, + }, + { + filename: '/unprocessed_files/BMA-NAG_reduced.json', + start: 10888263, + end: 10888862, + }, + { + filename: '/unprocessed_files/BMA-NDG_reduced.json', + start: 10888862, + end: 10888948, + }, + { + filename: '/unprocessed_files/BMA-XYP_reduced.json', + start: 10888948, + end: 10889890, + }, + { + filename: '/unprocessed_files/FRU-FRU_reduced.json', + start: 10889890, + end: 10890666, + }, + { + filename: '/unprocessed_files/FRU-GLC_reduced.json', + start: 10890666, + end: 10891785, + }, + { + filename: '/unprocessed_files/FUC-BGC_reduced.json', + start: 10891785, + end: 10892733, + }, + { + filename: '/unprocessed_files/GAL-A2G_reduced.json', + start: 10892733, + end: 10892991, + }, + { + filename: '/unprocessed_files/GAL-FUC_reduced.json', + start: 10892991, + end: 10893162, + }, + { + filename: '/unprocessed_files/GAL-GAL_reduced.json', + start: 10893162, + end: 10894023, + }, + { + filename: '/unprocessed_files/GAL-GLA_reduced.json', + start: 10894023, + end: 10894532, + }, + { + filename: '/unprocessed_files/GAL-NAG_reduced.json', + start: 10894532, + end: 10894961, + }, + { + filename: '/unprocessed_files/GAL-SIA_reduced.json', + start: 10894961, + end: 10899540, + }, + { + filename: '/unprocessed_files/GLA-A2G_reduced.json', + start: 10899540, + end: 10899714, + }, + { + filename: '/unprocessed_files/GLA-GLA_reduced.json', + start: 10899714, + end: 10900142, + }, + { + filename: '/unprocessed_files/GLC-BGC_reduced.json', + start: 10900142, + end: 10900319, + }, + { + filename: '/unprocessed_files/GLC-FRU_reduced.json', + start: 10900319, + end: 10900493, + }, + { + filename: '/unprocessed_files/GLC-GAL_reduced.json', + start: 10900493, + end: 10900581, + }, + { + filename: '/unprocessed_files/GLC-GLA_reduced.json', + start: 10900581, + end: 10900752, + }, + { + filename: '/unprocessed_files/GLC-GLC_reduced.json', + start: 10900752, + end: 10901525, + }, + { + filename: '/unprocessed_files/GLC-MAN_reduced.json', + start: 10901525, + end: 10901612, + }, + { + filename: '/unprocessed_files/GLC-XYS_reduced.json', + start: 10901612, + end: 10901699, + }, + { + filename: '/unprocessed_files/MAG-GAL_reduced.json', + start: 10901699, + end: 10901787, + }, + { + filename: '/unprocessed_files/MAN-BMA_reduced.json', + start: 10901787, + end: 10901875, + }, + { + filename: '/unprocessed_files/MAN-GLC_reduced.json', + start: 10901875, + end: 10902549, + }, + { + filename: '/unprocessed_files/MAN-MAN_reduced.json', + start: 10902549, + end: 10987921, + }, + { + filename: '/unprocessed_files/MAN-NAG_reduced.json', + start: 10987921, + end: 11008593, + }, + { + filename: '/unprocessed_files/NAG-BMA_reduced.json', + start: 11008593, + end: 11152243, + }, + { + filename: '/unprocessed_files/NAG-FCA_reduced.json', + start: 11152243, + end: 11152331, + }, + { + filename: '/unprocessed_files/NAG-FUC_reduced.json', + start: 11152331, + end: 11206617, + }, + { + filename: '/unprocessed_files/NAG-FUL_reduced.json', + start: 11206617, + end: 11208669, + }, + { + filename: '/unprocessed_files/NAG-GAL_reduced.json', + start: 11208669, + end: 11215929, + }, + { + filename: '/unprocessed_files/NAG-GLC_reduced.json', + start: 11215929, + end: 11216018, + }, + { + filename: '/unprocessed_files/NAG-MAN_reduced.json', + start: 11216018, + end: 11216364, + }, + { + filename: '/unprocessed_files/NAG-NAG_reduced.json', + start: 11216364, + end: 11545985, + }, + { + filename: '/unprocessed_files/NAG-NDG_reduced.json', + start: 11545985, + end: 11546494, + }, + { + filename: '/unprocessed_files/NAG-SIA_reduced.json', + start: 11546494, + end: 11546667, + }, + { + filename: '/unprocessed_files/NDG-BMA_reduced.json', + start: 11546667, + end: 11546928, + }, + { + filename: '/unprocessed_files/NDG-GAL_reduced.json', + start: 11546928, + end: 11547102, + }, + { + filename: '/unprocessed_files/NDG-NAG_reduced.json', + start: 11547102, + end: 11547278, + }, + { + filename: '/unprocessed_files/NGA-GAL_reduced.json', + start: 11547278, + end: 11547454, + }, + { + filename: '/unprocessed_files/NGA-NAG_reduced.json', + start: 11547454, + end: 11547542, + }, + { + filename: '/unprocessed_files/PA1-GCS_reduced.json', + start: 11547542, + end: 11547631, + }, + { + filename: '/unprocessed_files/XYP-GCV_reduced.json', + start: 11547631, + end: 11547719, + }, + { + filename: '/unprocessed_files/XYP-XYP_reduced.json', + start: 11547719, + end: 11548065, + }, + ], + remote_package_size: 11548065, + }); + })(); + if (Module['ENVIRONMENT_IS_PTHREAD'] || Module['$ww']) + Module['preRun'] = []; + var necessaryPreJSTasks = Module['preRun'].slice(); + if (!Module['preRun']) + throw 'Module.preRun should exist because file support used it; did a pre-js delete it?'; + necessaryPreJSTasks.forEach(function (task) { + if (Module['preRun'].indexOf(task) < 0) + throw 'All preRun tasks that exist before user pre-js code should remain after; did you replace Module or modify Module.preRun?'; + }); + var moduleOverrides = Object.assign({}, Module); + var arguments_ = []; + var thisProgram = './this.program'; + var quit_ = (status, toThrow) => { + throw toThrow; + }; + var ENVIRONMENT_IS_WEB = typeof window == 'object'; + var ENVIRONMENT_IS_WORKER = typeof importScripts == 'function'; + var ENVIRONMENT_IS_NODE = + typeof process == 'object' && + typeof process.versions == 'object' && + typeof process.versions.node == 'string'; + var ENVIRONMENT_IS_SHELL = + !ENVIRONMENT_IS_WEB && + !ENVIRONMENT_IS_NODE && + !ENVIRONMENT_IS_WORKER; + if (Module['ENVIRONMENT']) { + throw new Error( + 'Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)' + ); + } + var scriptDirectory = ''; + function locateFile(path) { + if (Module['locateFile']) { + return Module['locateFile'](path, scriptDirectory); + } + return scriptDirectory + path; + } + var read_, readAsync, readBinary, setWindowTitle; + if (ENVIRONMENT_IS_NODE) { + if ( + typeof process == 'undefined' || + !process.release || + process.release.name !== 'node' + ) + throw new Error( + 'not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)' + ); + var nodeVersion = process.versions.node; + var numericVersion = nodeVersion.split('.').slice(0, 3); + numericVersion = + numericVersion[0] * 1e4 + + numericVersion[1] * 100 + + numericVersion[2].split('-')[0] * 1; + if (numericVersion < 16e4) { + throw new Error( + 'This emscripten-generated code requires node v16.0.0 (detected v' + + nodeVersion + + ')' + ); + } + const { createRequire: createRequire } = await import('module'); + var require = createRequire(import.meta.url); + var fs = require('fs'); + var nodePath = require('path'); + if (ENVIRONMENT_IS_WORKER) { + scriptDirectory = nodePath.dirname(scriptDirectory) + '/'; + } else { + scriptDirectory = require('url').fileURLToPath( + new URL('./', import.meta.url) + ); + } + read_ = (filename, binary) => { + filename = isFileURI(filename) + ? new URL(filename) + : nodePath.normalize(filename); + return fs.readFileSync(filename, binary ? undefined : 'utf8'); + }; + readBinary = (filename) => { + var ret = read_(filename, true); + if (!ret.buffer) { + ret = new Uint8Array(ret); + } + assert(ret.buffer); + return ret; + }; + readAsync = (filename, onload, onerror, binary = true) => { + filename = isFileURI(filename) + ? new URL(filename) + : nodePath.normalize(filename); + fs.readFile( + filename, + binary ? undefined : 'utf8', + (err, data) => { + if (err) onerror(err); + else onload(binary ? data.buffer : data); + } + ); + }; + if (!Module['thisProgram'] && process.argv.length > 1) { + thisProgram = process.argv[1].replace(/\\/g, '/'); + } + arguments_ = process.argv.slice(2); + quit_ = (status, toThrow) => { + process.exitCode = status; + throw toThrow; + }; + Module['inspect'] = () => '[Emscripten Module object]'; + } else if (ENVIRONMENT_IS_SHELL) { + if ( + (typeof process == 'object' && typeof require === 'function') || + typeof window == 'object' || + typeof importScripts == 'function' + ) + throw new Error( + 'not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)' + ); + if (typeof read != 'undefined') { + read_ = (f) => read(f); + } + readBinary = (f) => { + let data; + if (typeof readbuffer == 'function') { + return new Uint8Array(readbuffer(f)); + } + data = read(f, 'binary'); + assert(typeof data == 'object'); + return data; + }; + readAsync = (f, onload, onerror) => { + setTimeout(() => onload(readBinary(f))); + }; + if (typeof clearTimeout == 'undefined') { + globalThis.clearTimeout = (id) => {}; + } + if (typeof setTimeout == 'undefined') { + globalThis.setTimeout = (f) => + typeof f == 'function' ? f() : abort(); + } + if (typeof scriptArgs != 'undefined') { + arguments_ = scriptArgs; + } else if (typeof arguments != 'undefined') { + arguments_ = arguments; + } + if (typeof quit == 'function') { + quit_ = (status, toThrow) => { + setTimeout(() => { + if (!(toThrow instanceof ExitStatus)) { + let toLog = toThrow; + if ( + toThrow && + typeof toThrow == 'object' && + toThrow.stack + ) { + toLog = [toThrow, toThrow.stack]; + } + err(`exiting due to exception: ${toLog}`); + } + quit(status); + }); + throw toThrow; + }; + } + if (typeof print != 'undefined') { + if (typeof console == 'undefined') console = {}; + console.log = print; + console.warn = console.error = + typeof printErr != 'undefined' ? printErr : print; + } + } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + if (ENVIRONMENT_IS_WORKER) { + scriptDirectory = self.location.href; + } else if ( + typeof document != 'undefined' && + document.currentScript + ) { + scriptDirectory = document.currentScript.src; + } + if (_scriptDir) { + scriptDirectory = _scriptDir; + } + if (scriptDirectory.indexOf('blob:') !== 0) { + scriptDirectory = scriptDirectory.substr( + 0, + scriptDirectory.replace(/[?#].*/, '').lastIndexOf('/') + 1 + ); + } else { + scriptDirectory = ''; + } + if ( + !( + typeof window == 'object' || + typeof importScripts == 'function' + ) + ) + throw new Error( + 'not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)' + ); + { + read_ = (url) => { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.send(null); + return xhr.responseText; + }; + if (ENVIRONMENT_IS_WORKER) { + readBinary = (url) => { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.responseType = 'arraybuffer'; + xhr.send(null); + return new Uint8Array(xhr.response); + }; + } + readAsync = (url, onload, onerror) => { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.responseType = 'arraybuffer'; + xhr.onload = () => { + if ( + xhr.status == 200 || + (xhr.status == 0 && xhr.response) + ) { + onload(xhr.response); + return; + } + onerror(); + }; + xhr.onerror = onerror; + xhr.send(null); + }; + } + setWindowTitle = (title) => (document.title = title); + } else { + throw new Error('environment detection error'); + } + var out = Module['print'] || console.log.bind(console); + var err = Module['printErr'] || console.error.bind(console); + Object.assign(Module, moduleOverrides); + moduleOverrides = null; + checkIncomingModuleAPI(); + if (Module['arguments']) arguments_ = Module['arguments']; + legacyModuleProp('arguments', 'arguments_'); + if (Module['thisProgram']) thisProgram = Module['thisProgram']; + legacyModuleProp('thisProgram', 'thisProgram'); + if (Module['quit']) quit_ = Module['quit']; + legacyModuleProp('quit', 'quit_'); + assert( + typeof Module['memoryInitializerPrefixURL'] == 'undefined', + 'Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead' + ); + assert( + typeof Module['pthreadMainPrefixURL'] == 'undefined', + 'Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead' + ); + assert( + typeof Module['cdInitializerPrefixURL'] == 'undefined', + 'Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead' + ); + assert( + typeof Module['filePackagePrefixURL'] == 'undefined', + 'Module.filePackagePrefixURL option was removed, use Module.locateFile instead' + ); + assert( + typeof Module['read'] == 'undefined', + 'Module.read option was removed (modify read_ in JS)' + ); + assert( + typeof Module['readAsync'] == 'undefined', + 'Module.readAsync option was removed (modify readAsync in JS)' + ); + assert( + typeof Module['readBinary'] == 'undefined', + 'Module.readBinary option was removed (modify readBinary in JS)' + ); + assert( + typeof Module['setWindowTitle'] == 'undefined', + 'Module.setWindowTitle option was removed (modify setWindowTitle in JS)' + ); + assert( + typeof Module['TOTAL_MEMORY'] == 'undefined', + 'Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY' + ); + legacyModuleProp('read', 'read_'); + legacyModuleProp('readAsync', 'readAsync'); + legacyModuleProp('readBinary', 'readBinary'); + legacyModuleProp('setWindowTitle', 'setWindowTitle'); + assert( + !ENVIRONMENT_IS_SHELL, + "shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable." + ); + var wasmBinary; + if (Module['wasmBinary']) wasmBinary = Module['wasmBinary']; + legacyModuleProp('wasmBinary', 'wasmBinary'); + var noExitRuntime = Module['noExitRuntime'] || true; + legacyModuleProp('noExitRuntime', 'noExitRuntime'); + if (typeof WebAssembly != 'object') { + abort('no native wasm support detected'); + } + var wasmMemory; + var ABORT = false; + var EXITSTATUS; + function assert(condition, text) { + if (!condition) { + abort('Assertion failed' + (text ? ': ' + text : '')); + } + } + var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; + function updateMemoryViews() { + var b = wasmMemory.buffer; + Module['HEAP8'] = HEAP8 = new Int8Array(b); + Module['HEAP16'] = HEAP16 = new Int16Array(b); + Module['HEAP32'] = HEAP32 = new Int32Array(b); + Module['HEAPU8'] = HEAPU8 = new Uint8Array(b); + Module['HEAPU16'] = HEAPU16 = new Uint16Array(b); + Module['HEAPU32'] = HEAPU32 = new Uint32Array(b); + Module['HEAPF32'] = HEAPF32 = new Float32Array(b); + Module['HEAPF64'] = HEAPF64 = new Float64Array(b); + } + assert( + !Module['STACK_SIZE'], + 'STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time' + ); + assert( + typeof Int32Array != 'undefined' && + typeof Float64Array !== 'undefined' && + Int32Array.prototype.subarray != undefined && + Int32Array.prototype.set != undefined, + 'JS engine does not provide full typed array support' + ); + assert( + !Module['wasmMemory'], + 'Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally' + ); + assert( + !Module['INITIAL_MEMORY'], + 'Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically' + ); + var wasmTable; + function writeStackCookie() { + var max = _emscripten_stack_get_end(); + assert((max & 3) == 0); + if (max == 0) { + max += 4; + } + HEAPU32[max >> 2] = 34821223; + checkInt32(34821223); + HEAPU32[(max + 4) >> 2] = 2310721022; + checkInt32(2310721022); + HEAPU32[0 >> 2] = 1668509029; + checkInt32(1668509029); + } + function checkStackCookie() { + if (ABORT) return; + var max = _emscripten_stack_get_end(); + if (max == 0) { + max += 4; + } + var cookie1 = HEAPU32[max >> 2]; + var cookie2 = HEAPU32[(max + 4) >> 2]; + if (cookie1 != 34821223 || cookie2 != 2310721022) { + abort( + `Stack overflow! Stack cookie has been overwritten at ${ptrToString( + max + )}, expected hex dwords 0x89BACDFE and 0x2135467, but received ${ptrToString( + cookie2 + )} ${ptrToString(cookie1)}` + ); + } + if (HEAPU32[0 >> 2] != 1668509029) { + abort( + 'Runtime error: The application has corrupted its heap memory area (address zero)!' + ); + } + } + (function () { + var h16 = new Int16Array(1); + var h8 = new Int8Array(h16.buffer); + h16[0] = 25459; + if (h8[0] !== 115 || h8[1] !== 99) + throw 'Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)'; + })(); + var __ATPRERUN__ = []; + var __ATINIT__ = []; + var __ATPOSTRUN__ = []; + var runtimeInitialized = false; + var runtimeKeepaliveCounter = 0; + function preRun() { + if (Module['preRun']) { + if (typeof Module['preRun'] == 'function') + Module['preRun'] = [Module['preRun']]; + while (Module['preRun'].length) { + addOnPreRun(Module['preRun'].shift()); + } + } + callRuntimeCallbacks(__ATPRERUN__); + } + function initRuntime() { + assert(!runtimeInitialized); + runtimeInitialized = true; + checkStackCookie(); + setStackLimits(); + if (!Module['noFSInit'] && !FS.init.initialized) FS.init(); + FS.ignorePermissions = false; + TTY.init(); + callRuntimeCallbacks(__ATINIT__); + } + function postRun() { + checkStackCookie(); + if (Module['postRun']) { + if (typeof Module['postRun'] == 'function') + Module['postRun'] = [Module['postRun']]; + while (Module['postRun'].length) { + addOnPostRun(Module['postRun'].shift()); + } + } + callRuntimeCallbacks(__ATPOSTRUN__); + } + function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); + } + function addOnInit(cb) { + __ATINIT__.unshift(cb); + } + function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); + } + assert( + Math.imul, + 'This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill' + ); + assert( + Math.fround, + 'This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill' + ); + assert( + Math.clz32, + 'This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill' + ); + assert( + Math.trunc, + 'This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill' + ); + var runDependencies = 0; + var runDependencyWatcher = null; + var dependenciesFulfilled = null; + var runDependencyTracking = {}; + function getUniqueRunDependency(id) { + var orig = id; + while (1) { + if (!runDependencyTracking[id]) return id; + id = orig + Math.random(); + } + } + function addRunDependency(id) { + runDependencies++; + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + if (id) { + assert(!runDependencyTracking[id]); + runDependencyTracking[id] = 1; + if ( + runDependencyWatcher === null && + typeof setInterval != 'undefined' + ) { + runDependencyWatcher = setInterval(() => { + if (ABORT) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + return; + } + var shown = false; + for (var dep in runDependencyTracking) { + if (!shown) { + shown = true; + err('still waiting on run dependencies:'); + } + err('dependency: ' + dep); + } + if (shown) { + err('(end of list)'); + } + }, 1e4); + } + } else { + err('warning: run dependency added without ID'); + } + } + function removeRunDependency(id) { + runDependencies--; + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies); + } + if (id) { + assert(runDependencyTracking[id]); + delete runDependencyTracking[id]; + } else { + err('warning: run dependency removed without ID'); + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); + } + } + } + function abort(what) { + if (Module['onAbort']) { + Module['onAbort'](what); + } + what = 'Aborted(' + what + ')'; + err(what); + ABORT = true; + EXITSTATUS = 1; + if (runtimeInitialized) { + ___trap(); + } + var e = new WebAssembly.RuntimeError(what); + readyPromiseReject(e); + throw e; + } + var dataURIPrefix = 'data:application/octet-stream;base64,'; + function isDataURI(filename) { + return filename.startsWith(dataURIPrefix); + } + function isFileURI(filename) { + return filename.startsWith('file://'); + } + function createExportWrapper(name, fixedasm) { + return function () { + var displayName = name; + var asm = fixedasm; + if (!fixedasm) { + asm = Module['asm']; + } + assert( + runtimeInitialized, + 'native function `' + + displayName + + '` called before runtime initialization' + ); + if (!asm[name]) { + assert( + asm[name], + 'exported native function `' + + displayName + + '` not found' + ); + } + return asm[name].apply(null, arguments); + }; + } + var wasmBinaryFile; + if (Module['locateFile']) { + wasmBinaryFile = 'privateer.wasm'; + if (!isDataURI(wasmBinaryFile)) { + wasmBinaryFile = locateFile(wasmBinaryFile); + } + } else { + wasmBinaryFile = new URL('privateer.wasm', import.meta.url).href; + } + function getBinarySync(file) { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); + } + if (readBinary) { + return readBinary(file); + } + throw 'both async and sync fetching of the wasm failed'; + } + function getBinaryPromise(binaryFile) { + if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) { + if (typeof fetch == 'function' && !isFileURI(binaryFile)) { + return fetch(binaryFile, { credentials: 'same-origin' }) + .then((response) => { + if (!response['ok']) { + throw ( + "failed to load wasm binary file at '" + + binaryFile + + "'" + ); + } + return response['arrayBuffer'](); + }) + .catch(() => getBinarySync(binaryFile)); + } else if (readAsync) { + return new Promise((resolve, reject) => { + readAsync( + binaryFile, + (response) => resolve(new Uint8Array(response)), + reject + ); + }); + } + } + return Promise.resolve().then(() => getBinarySync(binaryFile)); + } + function instantiateArrayBuffer(binaryFile, imports, receiver) { + return getBinaryPromise(binaryFile) + .then((binary) => WebAssembly.instantiate(binary, imports)) + .then((instance) => instance) + .then(receiver, (reason) => { + err('failed to asynchronously prepare wasm: ' + reason); + if (isFileURI(wasmBinaryFile)) { + err( + 'warning: Loading from a file URI (' + + wasmBinaryFile + + ') is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing' + ); + } + abort(reason); + }); + } + function instantiateAsync(binary, binaryFile, imports, callback) { + if ( + !binary && + typeof WebAssembly.instantiateStreaming == 'function' && + !isDataURI(binaryFile) && + !isFileURI(binaryFile) && + !ENVIRONMENT_IS_NODE && + typeof fetch == 'function' + ) { + return fetch(binaryFile, { credentials: 'same-origin' }).then( + (response) => { + var result = WebAssembly.instantiateStreaming( + response, + imports + ); + return result.then(callback, function (reason) { + err('wasm streaming compile failed: ' + reason); + err('falling back to ArrayBuffer instantiation'); + return instantiateArrayBuffer( + binaryFile, + imports, + callback + ); + }); + } + ); + } + return instantiateArrayBuffer(binaryFile, imports, callback); + } + function createWasm() { + var info = { + env: wasmImports, + wasi_snapshot_preview1: wasmImports, + }; + function receiveInstance(instance, module) { + var exports = instance.exports; + Module['asm'] = exports; + wasmMemory = Module['asm']['memory']; + assert(wasmMemory, 'memory not found in wasm exports'); + updateMemoryViews(); + wasmTable = Module['asm']['__indirect_function_table']; + assert(wasmTable, 'table not found in wasm exports'); + addOnInit(Module['asm']['__wasm_call_ctors']); + removeRunDependency('wasm-instantiate'); + return exports; + } + addRunDependency('wasm-instantiate'); + var trueModule = Module; + function receiveInstantiationResult(result) { + assert( + Module === trueModule, + 'the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?' + ); + trueModule = null; + receiveInstance(result['instance']); + } + if (Module['instantiateWasm']) { + try { + return Module['instantiateWasm'](info, receiveInstance); + } catch (e) { + err( + 'Module.instantiateWasm callback failed with error: ' + + e + ); + readyPromiseReject(e); + } + } + instantiateAsync( + wasmBinary, + wasmBinaryFile, + info, + receiveInstantiationResult + ).catch(readyPromiseReject); + return {}; + } + var tempDouble; + var tempI64; + function legacyModuleProp(prop, newName) { + if (!Object.getOwnPropertyDescriptor(Module, prop)) { + Object.defineProperty(Module, prop, { + configurable: true, + get() { + abort( + 'Module.' + + prop + + ' has been replaced with plain ' + + newName + + ' (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)' + ); + }, + }); + } + } + function ignoredModuleProp(prop) { + if (Object.getOwnPropertyDescriptor(Module, prop)) { + abort( + '`Module.' + + prop + + '` was supplied but `' + + prop + + '` not included in INCOMING_MODULE_JS_API' + ); + } + } + function isExportedByForceFilesystem(name) { + return ( + name === 'FS_createPath' || + name === 'FS_createDataFile' || + name === 'FS_createPreloadedFile' || + name === 'FS_unlink' || + name === 'addRunDependency' || + name === 'FS_createLazyFile' || + name === 'FS_createDevice' || + name === 'removeRunDependency' + ); + } + function missingGlobal(sym, msg) { + if (typeof globalThis !== 'undefined') { + Object.defineProperty(globalThis, sym, { + configurable: true, + get() { + warnOnce( + '`' + + sym + + '` is not longer defined by emscripten. ' + + msg + ); + return undefined; + }, + }); + } + } + missingGlobal('buffer', 'Please use HEAP8.buffer or wasmMemory.buffer'); + function missingLibrarySymbol(sym) { + if ( + typeof globalThis !== 'undefined' && + !Object.getOwnPropertyDescriptor(globalThis, sym) + ) { + Object.defineProperty(globalThis, sym, { + configurable: true, + get() { + var msg = + '`' + + sym + + '` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line'; + var librarySymbol = sym; + if (!librarySymbol.startsWith('_')) { + librarySymbol = '$' + sym; + } + msg += + " (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE='" + + librarySymbol + + "')"; + if (isExportedByForceFilesystem(sym)) { + msg += + '. Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you'; + } + warnOnce(msg); + return undefined; + }, + }); + } + unexportedRuntimeSymbol(sym); + } + function unexportedRuntimeSymbol(sym) { + if (!Object.getOwnPropertyDescriptor(Module, sym)) { + Object.defineProperty(Module, sym, { + configurable: true, + get() { + var msg = + "'" + + sym + + "' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the Emscripten FAQ)"; + if (isExportedByForceFilesystem(sym)) { + msg += + '. Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you'; + } + abort(msg); + }, + }); + } + } + var MAX_UINT8 = 2 ** 8 - 1; + var MAX_UINT16 = 2 ** 16 - 1; + var MAX_UINT32 = 2 ** 32 - 1; + var MAX_UINT53 = 2 ** 53 - 1; + var MAX_UINT64 = 2 ** 64 - 1; + var MIN_INT8 = -(2 ** (8 - 1)) + 1; + var MIN_INT16 = -(2 ** (16 - 1)) + 1; + var MIN_INT32 = -(2 ** (32 - 1)) + 1; + var MIN_INT53 = -(2 ** (53 - 1)) + 1; + var MIN_INT64 = -(2 ** (64 - 1)) + 1; + function checkInt(value, bits, min, max) { + assert( + Number.isInteger(Number(value)), + 'attempt to write non-integer (' + value + ') into integer heap' + ); + assert( + value <= max, + 'value (' + + value + + ') too large to write as ' + + bits + + '-bit value' + ); + assert( + value >= min, + 'value (' + + value + + ') too small to write as ' + + bits + + '-bit value' + ); + } + var checkInt8 = (value) => checkInt(value, 8, MIN_INT8, MAX_UINT8); + var checkInt16 = (value) => checkInt(value, 16, MIN_INT16, MAX_UINT16); + var checkInt32 = (value) => checkInt(value, 32, MIN_INT32, MAX_UINT32); + var checkInt64 = (value) => checkInt(value, 64, MIN_INT64, MAX_UINT64); + function ExitStatus(status) { + this.name = 'ExitStatus'; + this.message = `Program terminated with exit(${status})`; + this.status = status; + } + var callRuntimeCallbacks = (callbacks) => { + while (callbacks.length > 0) { + callbacks.shift()(Module); + } + }; + function getCppExceptionTag() { + return Module['asm']['__cpp_exception']; + } + function getCppExceptionThrownObjectFromWebAssemblyException(ex) { + var unwind_header = ex.getArg(getCppExceptionTag(), 0); + return ___thrown_object_from_unwind_exception(unwind_header); + } + var withStackSave = (f) => { + var stack = stackSave(); + var ret = f(); + stackRestore(stack); + return ret; + }; + var lengthBytesUTF8 = (str) => { + var len = 0; + for (var i = 0; i < str.length; ++i) { + var c = str.charCodeAt(i); + if (c <= 127) { + len++; + } else if (c <= 2047) { + len += 2; + } else if (c >= 55296 && c <= 57343) { + len += 4; + ++i; + } else { + len += 3; + } + } + return len; + }; + var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => { + assert(typeof str === 'string'); + if (!(maxBytesToWrite > 0)) return 0; + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; + for (var i = 0; i < str.length; ++i) { + var u = str.charCodeAt(i); + if (u >= 55296 && u <= 57343) { + var u1 = str.charCodeAt(++i); + u = (65536 + ((u & 1023) << 10)) | (u1 & 1023); + } + if (u <= 127) { + if (outIdx >= endIdx) break; + heap[outIdx++] = u; + } else if (u <= 2047) { + if (outIdx + 1 >= endIdx) break; + heap[outIdx++] = 192 | (u >> 6); + heap[outIdx++] = 128 | (u & 63); + } else if (u <= 65535) { + if (outIdx + 2 >= endIdx) break; + heap[outIdx++] = 224 | (u >> 12); + heap[outIdx++] = 128 | ((u >> 6) & 63); + heap[outIdx++] = 128 | (u & 63); + } else { + if (outIdx + 3 >= endIdx) break; + if (u > 1114111) + warnOnce( + 'Invalid Unicode code point ' + + ptrToString(u) + + ' encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF).' + ); + heap[outIdx++] = 240 | (u >> 18); + heap[outIdx++] = 128 | ((u >> 12) & 63); + heap[outIdx++] = 128 | ((u >> 6) & 63); + heap[outIdx++] = 128 | (u & 63); + } + } + heap[outIdx] = 0; + return outIdx - startIdx; + }; + var stringToUTF8 = (str, outPtr, maxBytesToWrite) => { + assert( + typeof maxBytesToWrite == 'number', + 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!' + ); + return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); + }; + var stringToUTF8OnStack = (str) => { + var size = lengthBytesUTF8(str) + 1; + var ret = stackAlloc(size); + stringToUTF8(str, ret, size); + return ret; + }; + var UTF8Decoder = + typeof TextDecoder != 'undefined' + ? new TextDecoder('utf8') + : undefined; + var UTF8ArrayToString = (heapOrArray, idx, maxBytesToRead) => { + var endIdx = idx + maxBytesToRead; + var endPtr = idx; + while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr; + if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { + return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); + } + var str = ''; + while (idx < endPtr) { + var u0 = heapOrArray[idx++]; + if (!(u0 & 128)) { + str += String.fromCharCode(u0); + continue; + } + var u1 = heapOrArray[idx++] & 63; + if ((u0 & 224) == 192) { + str += String.fromCharCode(((u0 & 31) << 6) | u1); + continue; + } + var u2 = heapOrArray[idx++] & 63; + if ((u0 & 240) == 224) { + u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; + } else { + if ((u0 & 248) != 240) + warnOnce( + 'Invalid UTF-8 leading byte ' + + ptrToString(u0) + + ' encountered when deserializing a UTF-8 string in wasm memory to a JS string!' + ); + u0 = + ((u0 & 7) << 18) | + (u1 << 12) | + (u2 << 6) | + (heapOrArray[idx++] & 63); + } + if (u0 < 65536) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 65536; + str += String.fromCharCode( + 55296 | (ch >> 10), + 56320 | (ch & 1023) + ); + } + } + return str; + }; + var UTF8ToString = (ptr, maxBytesToRead) => { + assert(typeof ptr == 'number'); + return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ''; + }; + function demangle(func) { + demangle.recursionGuard = (demangle.recursionGuard | 0) + 1; + if (demangle.recursionGuard > 1) return func; + return withStackSave(function () { + try { + var s = func; + if (s.startsWith('__Z')) s = s.substr(1); + var buf = stringToUTF8OnStack(s); + var status = stackAlloc(4); + var ret = ___cxa_demangle(buf, 0, 0, status); + if (HEAP32[status >> 2] === 0 && ret) { + return UTF8ToString(ret); + } + } catch (e) { + } finally { + _free(ret); + if (demangle.recursionGuard < 2) --demangle.recursionGuard; + } + return func; + }); + } + var getExceptionMessageCommon = (ptr) => + withStackSave(() => { + var type_addr_addr = stackAlloc(4); + var message_addr_addr = stackAlloc(4); + ___get_exception_message( + ptr, + type_addr_addr, + message_addr_addr + ); + var type_addr = HEAPU32[type_addr_addr >> 2]; + var message_addr = HEAPU32[message_addr_addr >> 2]; + var type = UTF8ToString(type_addr); + _free(type_addr); + var message; + if (message_addr) { + message = UTF8ToString(message_addr); + _free(message_addr); + } + return [type, message]; + }); + function getExceptionMessage(ex) { + var ptr = getCppExceptionThrownObjectFromWebAssemblyException(ex); + return getExceptionMessageCommon(ptr); + } + Module['getExceptionMessage'] = getExceptionMessage; + var ptrToString = (ptr) => { + assert(typeof ptr === 'number'); + ptr >>>= 0; + return '0x' + ptr.toString(16).padStart(8, '0'); + }; + var setStackLimits = () => { + var stackLow = _emscripten_stack_get_base(); + var stackHigh = _emscripten_stack_get_end(); + ___set_stack_limits(stackLow, stackHigh); + }; + function jsStackTrace() { + var error = new Error(); + if (!error.stack) { + try { + throw new Error(); + } catch (e) { + error = e; + } + if (!error.stack) { + return '(no stack trace available)'; + } + } + return error.stack.toString(); + } + function demangleAll(text) { + var regex = /\b_Z[\w\d_]+/g; + return text.replace(regex, function (x) { + var y = demangle(x); + return x === y ? x : y + ' [' + x + ']'; + }); + } + var warnOnce = (text) => { + if (!warnOnce.shown) warnOnce.shown = {}; + if (!warnOnce.shown[text]) { + warnOnce.shown[text] = 1; + if (ENVIRONMENT_IS_NODE) text = 'warning: ' + text; + err(text); + } + }; + var ___assert_fail = (condition, filename, line, func) => { + abort( + `Assertion failed: ${UTF8ToString(condition)}, at: ` + + [ + filename ? UTF8ToString(filename) : 'unknown filename', + line, + func ? UTF8ToString(func) : 'unknown function', + ] + ); + }; + var ___handle_stack_overflow = (requested) => { + var base = _emscripten_stack_get_base(); + var end = _emscripten_stack_get_end(); + abort( + `stack overflow (Attempt to set SP to ${ptrToString( + requested + )}` + + `, with stack limits [${ptrToString(end)} - ${ptrToString( + base + )}` + + ']). If you require more stack space build with -sSTACK_SIZE=' + ); + }; + var setErrNo = (value) => { + HEAP32[___errno_location() >> 2] = value; + checkInt32(value); + return value; + }; + var PATH = { + isAbs: (path) => path.charAt(0) === '/', + splitPath: (filename) => { + var splitPathRe = + /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; + return splitPathRe.exec(filename).slice(1); + }, + normalizeArray: (parts, allowAboveRoot) => { + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === '.') { + parts.splice(i, 1); + } else if (last === '..') { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + if (allowAboveRoot) { + for (; up; up--) { + parts.unshift('..'); + } + } + return parts; + }, + normalize: (path) => { + var isAbsolute = PATH.isAbs(path), + trailingSlash = path.substr(-1) === '/'; + path = PATH.normalizeArray( + path.split('/').filter((p) => !!p), + !isAbsolute + ).join('/'); + if (!path && !isAbsolute) { + path = '.'; + } + if (path && trailingSlash) { + path += '/'; + } + return (isAbsolute ? '/' : '') + path; + }, + dirname: (path) => { + var result = PATH.splitPath(path), + root = result[0], + dir = result[1]; + if (!root && !dir) { + return '.'; + } + if (dir) { + dir = dir.substr(0, dir.length - 1); + } + return root + dir; + }, + basename: (path) => { + if (path === '/') return '/'; + path = PATH.normalize(path); + path = path.replace(/\/$/, ''); + var lastSlash = path.lastIndexOf('/'); + if (lastSlash === -1) return path; + return path.substr(lastSlash + 1); + }, + join: function () { + var paths = Array.prototype.slice.call(arguments); + return PATH.normalize(paths.join('/')); + }, + join2: (l, r) => PATH.normalize(l + '/' + r), + }; + var initRandomFill = () => { + if ( + typeof crypto == 'object' && + typeof crypto['getRandomValues'] == 'function' + ) { + return (view) => crypto.getRandomValues(view); + } else if (ENVIRONMENT_IS_NODE) { + try { + var crypto_module = require('crypto'); + var randomFillSync = crypto_module['randomFillSync']; + if (randomFillSync) { + return (view) => crypto_module['randomFillSync'](view); + } + var randomBytes = crypto_module['randomBytes']; + return (view) => ( + view.set(randomBytes(view.byteLength)), view + ); + } catch (e) {} + } + abort( + 'no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: (array) => { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };' + ); + }; + var randomFill = (view) => (randomFill = initRandomFill())(view); + var PATH_FS = { + resolve: function () { + var resolvedPath = '', + resolvedAbsolute = false; + for ( + var i = arguments.length - 1; + i >= -1 && !resolvedAbsolute; + i-- + ) { + var path = i >= 0 ? arguments[i] : FS.cwd(); + if (typeof path != 'string') { + throw new TypeError( + 'Arguments to path.resolve must be strings' + ); + } else if (!path) { + return ''; + } + resolvedPath = path + '/' + resolvedPath; + resolvedAbsolute = PATH.isAbs(path); + } + resolvedPath = PATH.normalizeArray( + resolvedPath.split('/').filter((p) => !!p), + !resolvedAbsolute + ).join('/'); + return (resolvedAbsolute ? '/' : '') + resolvedPath || '.'; + }, + relative: (from, to) => { + from = PATH_FS.resolve(from).substr(1); + to = PATH_FS.resolve(to).substr(1); + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== '') break; + } + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== '') break; + } + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + var fromParts = trim(from.split('/')); + var toParts = trim(to.split('/')); + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push('..'); + } + outputParts = outputParts.concat( + toParts.slice(samePartsLength) + ); + return outputParts.join('/'); + }, + }; + var FS_stdin_getChar_buffer = []; + function intArrayFromString(stringy, dontAddNull, length) { + var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array( + stringy, + u8array, + 0, + u8array.length + ); + if (dontAddNull) u8array.length = numBytesWritten; + return u8array; + } + var FS_stdin_getChar = () => { + if (!FS_stdin_getChar_buffer.length) { + var result = null; + if (ENVIRONMENT_IS_NODE) { + var BUFSIZE = 256; + var buf = Buffer.alloc(BUFSIZE); + var bytesRead = 0; + var fd = process.stdin.fd; + try { + bytesRead = fs.readSync(fd, buf, 0, BUFSIZE, -1); + } catch (e) { + if (e.toString().includes('EOF')) bytesRead = 0; + else throw e; + } + if (bytesRead > 0) { + result = buf.slice(0, bytesRead).toString('utf-8'); + } else { + result = null; + } + } else if ( + typeof window != 'undefined' && + typeof window.prompt == 'function' + ) { + result = window.prompt('Input: '); + if (result !== null) { + result += '\n'; + } + } else if (typeof readline == 'function') { + result = readline(); + if (result !== null) { + result += '\n'; + } + } + if (!result) { + return null; + } + FS_stdin_getChar_buffer = intArrayFromString(result, true); + } + return FS_stdin_getChar_buffer.shift(); + }; + var TTY = { + ttys: [], + init: function () {}, + shutdown: function () {}, + register: function (dev, ops) { + TTY.ttys[dev] = { input: [], output: [], ops: ops }; + FS.registerDevice(dev, TTY.stream_ops); + }, + stream_ops: { + open: function (stream) { + var tty = TTY.ttys[stream.node.rdev]; + if (!tty) { + throw new FS.ErrnoError(43); + } + stream.tty = tty; + stream.seekable = false; + }, + close: function (stream) { + stream.tty.ops.fsync(stream.tty); + }, + fsync: function (stream) { + stream.tty.ops.fsync(stream.tty); + }, + read: function (stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.get_char) { + throw new FS.ErrnoError(60); + } + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = stream.tty.ops.get_char(stream.tty); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset + i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, + write: function (stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.put_char) { + throw new FS.ErrnoError(60); + } + try { + for (var i = 0; i < length; i++) { + stream.tty.ops.put_char( + stream.tty, + buffer[offset + i] + ); + } + } catch (e) { + throw new FS.ErrnoError(29); + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + }, + }, + default_tty_ops: { + get_char: function (tty) { + return FS_stdin_getChar(); + }, + put_char: function (tty, val) { + if (val === null || val === 10) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + }, + fsync: function (tty) { + if (tty.output && tty.output.length > 0) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }, + ioctl_tcgets: function (tty) { + return { + c_iflag: 25856, + c_oflag: 5, + c_cflag: 191, + c_lflag: 35387, + c_cc: [ + 3, 28, 127, 21, 4, 0, 1, 0, 17, 19, 26, 0, 18, 15, + 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, + ], + }; + }, + ioctl_tcsets: function (tty, optional_actions, data) { + return 0; + }, + ioctl_tiocgwinsz: function (tty) { + return [24, 80]; + }, + }, + default_tty1_ops: { + put_char: function (tty, val) { + if (val === null || val === 10) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + }, + fsync: function (tty) { + if (tty.output && tty.output.length > 0) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }, + }, + }; + var zeroMemory = (address, size) => { + HEAPU8.fill(0, address, address + size); + return address; + }; + var alignMemory = (size, alignment) => { + assert(alignment, 'alignment argument is required'); + return Math.ceil(size / alignment) * alignment; + }; + var mmapAlloc = (size) => { + size = alignMemory(size, 65536); + var ptr = _emscripten_builtin_memalign(65536, size); + if (!ptr) return 0; + return zeroMemory(ptr, size); + }; + var MEMFS = { + ops_table: null, + mount(mount) { + return MEMFS.createNode(null, '/', 16384 | 511, 0); + }, + createNode(parent, name, mode, dev) { + if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { + throw new FS.ErrnoError(63); + } + if (!MEMFS.ops_table) { + MEMFS.ops_table = { + dir: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + lookup: MEMFS.node_ops.lookup, + mknod: MEMFS.node_ops.mknod, + rename: MEMFS.node_ops.rename, + unlink: MEMFS.node_ops.unlink, + rmdir: MEMFS.node_ops.rmdir, + readdir: MEMFS.node_ops.readdir, + symlink: MEMFS.node_ops.symlink, + }, + stream: { llseek: MEMFS.stream_ops.llseek }, + }, + file: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + }, + stream: { + llseek: MEMFS.stream_ops.llseek, + read: MEMFS.stream_ops.read, + write: MEMFS.stream_ops.write, + allocate: MEMFS.stream_ops.allocate, + mmap: MEMFS.stream_ops.mmap, + msync: MEMFS.stream_ops.msync, + }, + }, + link: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + readlink: MEMFS.node_ops.readlink, + }, + stream: {}, + }, + chrdev: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + }, + stream: FS.chrdev_stream_ops, + }, + }; + } + var node = FS.createNode(parent, name, mode, dev); + if (FS.isDir(node.mode)) { + node.node_ops = MEMFS.ops_table.dir.node; + node.stream_ops = MEMFS.ops_table.dir.stream; + node.contents = {}; + } else if (FS.isFile(node.mode)) { + node.node_ops = MEMFS.ops_table.file.node; + node.stream_ops = MEMFS.ops_table.file.stream; + node.usedBytes = 0; + node.contents = null; + } else if (FS.isLink(node.mode)) { + node.node_ops = MEMFS.ops_table.link.node; + node.stream_ops = MEMFS.ops_table.link.stream; + } else if (FS.isChrdev(node.mode)) { + node.node_ops = MEMFS.ops_table.chrdev.node; + node.stream_ops = MEMFS.ops_table.chrdev.stream; + } + node.timestamp = Date.now(); + if (parent) { + parent.contents[name] = node; + parent.timestamp = node.timestamp; + } + return node; + }, + getFileDataAsTypedArray(node) { + if (!node.contents) return new Uint8Array(0); + if (node.contents.subarray) + return node.contents.subarray(0, node.usedBytes); + return new Uint8Array(node.contents); + }, + expandFileStorage(node, newCapacity) { + var prevCapacity = node.contents ? node.contents.length : 0; + if (prevCapacity >= newCapacity) return; + var CAPACITY_DOUBLING_MAX = 1024 * 1024; + newCapacity = Math.max( + newCapacity, + (prevCapacity * + (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125)) >>> + 0 + ); + if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); + var oldContents = node.contents; + node.contents = new Uint8Array(newCapacity); + if (node.usedBytes > 0) + node.contents.set( + oldContents.subarray(0, node.usedBytes), + 0 + ); + }, + resizeFileStorage(node, newSize) { + if (node.usedBytes == newSize) return; + if (newSize == 0) { + node.contents = null; + node.usedBytes = 0; + } else { + var oldContents = node.contents; + node.contents = new Uint8Array(newSize); + if (oldContents) { + node.contents.set( + oldContents.subarray( + 0, + Math.min(newSize, node.usedBytes) + ) + ); + } + node.usedBytes = newSize; + } + }, + node_ops: { + getattr(node) { + var attr = {}; + attr.dev = FS.isChrdev(node.mode) ? node.id : 1; + attr.ino = node.id; + attr.mode = node.mode; + attr.nlink = 1; + attr.uid = 0; + attr.gid = 0; + attr.rdev = node.rdev; + if (FS.isDir(node.mode)) { + attr.size = 4096; + } else if (FS.isFile(node.mode)) { + attr.size = node.usedBytes; + } else if (FS.isLink(node.mode)) { + attr.size = node.link.length; + } else { + attr.size = 0; + } + attr.atime = new Date(node.timestamp); + attr.mtime = new Date(node.timestamp); + attr.ctime = new Date(node.timestamp); + attr.blksize = 4096; + attr.blocks = Math.ceil(attr.size / attr.blksize); + return attr; + }, + setattr(node, attr) { + if (attr.mode !== undefined) { + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + node.timestamp = attr.timestamp; + } + if (attr.size !== undefined) { + MEMFS.resizeFileStorage(node, attr.size); + } + }, + lookup(parent, name) { + throw FS.genericErrors[44]; + }, + mknod(parent, name, mode, dev) { + return MEMFS.createNode(parent, name, mode, dev); + }, + rename(old_node, new_dir, new_name) { + if (FS.isDir(old_node.mode)) { + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) {} + if (new_node) { + for (var i in new_node.contents) { + throw new FS.ErrnoError(55); + } + } + } + delete old_node.parent.contents[old_node.name]; + old_node.parent.timestamp = Date.now(); + old_node.name = new_name; + new_dir.contents[new_name] = old_node; + new_dir.timestamp = old_node.parent.timestamp; + old_node.parent = new_dir; + }, + unlink(parent, name) { + delete parent.contents[name]; + parent.timestamp = Date.now(); + }, + rmdir(parent, name) { + var node = FS.lookupNode(parent, name); + for (var i in node.contents) { + throw new FS.ErrnoError(55); + } + delete parent.contents[name]; + parent.timestamp = Date.now(); + }, + readdir(node) { + var entries = ['.', '..']; + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue; + } + entries.push(key); + } + return entries; + }, + symlink(parent, newname, oldpath) { + var node = MEMFS.createNode( + parent, + newname, + 511 | 40960, + 0 + ); + node.link = oldpath; + return node; + }, + readlink(node) { + if (!FS.isLink(node.mode)) { + throw new FS.ErrnoError(28); + } + return node.link; + }, + }, + stream_ops: { + read(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= stream.node.usedBytes) return 0; + var size = Math.min( + stream.node.usedBytes - position, + length + ); + assert(size >= 0); + if (size > 8 && contents.subarray) { + buffer.set( + contents.subarray(position, position + size), + offset + ); + } else { + for (var i = 0; i < size; i++) + buffer[offset + i] = contents[position + i]; + } + return size; + }, + write(stream, buffer, offset, length, position, canOwn) { + assert(!(buffer instanceof ArrayBuffer)); + if (buffer.buffer === HEAP8.buffer) { + canOwn = false; + } + if (!length) return 0; + var node = stream.node; + node.timestamp = Date.now(); + if ( + buffer.subarray && + (!node.contents || node.contents.subarray) + ) { + if (canOwn) { + assert( + position === 0, + 'canOwn must imply no weird position inside the file' + ); + node.contents = buffer.subarray( + offset, + offset + length + ); + node.usedBytes = length; + return length; + } else if (node.usedBytes === 0 && position === 0) { + node.contents = buffer.slice( + offset, + offset + length + ); + node.usedBytes = length; + return length; + } else if (position + length <= node.usedBytes) { + node.contents.set( + buffer.subarray(offset, offset + length), + position + ); + return length; + } + } + MEMFS.expandFileStorage(node, position + length); + if (node.contents.subarray && buffer.subarray) { + node.contents.set( + buffer.subarray(offset, offset + length), + position + ); + } else { + for (var i = 0; i < length; i++) { + node.contents[position + i] = buffer[offset + i]; + } + } + node.usedBytes = Math.max( + node.usedBytes, + position + length + ); + return length; + }, + llseek(stream, offset, whence) { + var position = offset; + if (whence === 1) { + position += stream.position; + } else if (whence === 2) { + if (FS.isFile(stream.node.mode)) { + position += stream.node.usedBytes; + } + } + if (position < 0) { + throw new FS.ErrnoError(28); + } + return position; + }, + allocate(stream, offset, length) { + MEMFS.expandFileStorage(stream.node, offset + length); + stream.node.usedBytes = Math.max( + stream.node.usedBytes, + offset + length + ); + }, + mmap(stream, length, position, prot, flags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + var ptr; + var allocated; + var contents = stream.node.contents; + if (!(flags & 2) && contents.buffer === HEAP8.buffer) { + allocated = false; + ptr = contents.byteOffset; + } else { + if ( + position > 0 || + position + length < contents.length + ) { + if (contents.subarray) { + contents = contents.subarray( + position, + position + length + ); + } else { + contents = Array.prototype.slice.call( + contents, + position, + position + length + ); + } + } + allocated = true; + ptr = mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + HEAP8.set(contents, ptr); + } + return { ptr: ptr, allocated: allocated }; + }, + msync(stream, buffer, offset, length, mmapFlags) { + MEMFS.stream_ops.write( + stream, + buffer, + 0, + length, + offset, + false + ); + return 0; + }, + }, + }; + var asyncLoad = (url, onload, onerror, noRunDep) => { + var dep = !noRunDep ? getUniqueRunDependency(`al ${url}`) : ''; + readAsync( + url, + (arrayBuffer) => { + assert( + arrayBuffer, + `Loading data file "${url}" failed (no arrayBuffer).` + ); + onload(new Uint8Array(arrayBuffer)); + if (dep) removeRunDependency(dep); + }, + (event) => { + if (onerror) { + onerror(); + } else { + throw `Loading data file "${url}" failed.`; + } + } + ); + if (dep) addRunDependency(dep); + }; + var preloadPlugins = Module['preloadPlugins'] || []; + function FS_handledByPreloadPlugin( + byteArray, + fullname, + finish, + onerror + ) { + if (typeof Browser != 'undefined') Browser.init(); + var handled = false; + preloadPlugins.forEach(function (plugin) { + if (handled) return; + if (plugin['canHandle'](fullname)) { + plugin['handle'](byteArray, fullname, finish, onerror); + handled = true; + } + }); + return handled; + } + function FS_createPreloadedFile( + parent, + name, + url, + canRead, + canWrite, + onload, + onerror, + dontCreateFile, + canOwn, + preFinish + ) { + var fullname = name + ? PATH_FS.resolve(PATH.join2(parent, name)) + : parent; + var dep = getUniqueRunDependency(`cp ${fullname}`); + function processData(byteArray) { + function finish(byteArray) { + if (preFinish) preFinish(); + if (!dontCreateFile) { + FS.createDataFile( + parent, + name, + byteArray, + canRead, + canWrite, + canOwn + ); + } + if (onload) onload(); + removeRunDependency(dep); + } + if ( + FS_handledByPreloadPlugin( + byteArray, + fullname, + finish, + () => { + if (onerror) onerror(); + removeRunDependency(dep); + } + ) + ) { + return; + } + finish(byteArray); + } + addRunDependency(dep); + if (typeof url == 'string') { + asyncLoad(url, (byteArray) => processData(byteArray), onerror); + } else { + processData(url); + } + } + function FS_modeStringToFlags(str) { + var flagModes = { + r: 0, + 'r+': 2, + w: 512 | 64 | 1, + 'w+': 512 | 64 | 2, + a: 1024 | 64 | 1, + 'a+': 1024 | 64 | 2, + }; + var flags = flagModes[str]; + if (typeof flags == 'undefined') { + throw new Error(`Unknown file open mode: ${str}`); + } + return flags; + } + function FS_getMode(canRead, canWrite) { + var mode = 0; + if (canRead) mode |= 292 | 73; + if (canWrite) mode |= 146; + return mode; + } + var ERRNO_CODES = {}; + var NODEFS = { + isWindows: false, + staticInit: () => { + NODEFS.isWindows = !!process.platform.match(/^win/); + var flags = process.binding('constants'); + if (flags['fs']) { + flags = flags['fs']; + } + NODEFS.flagsForNodeMap = { + 1024: flags['O_APPEND'], + 64: flags['O_CREAT'], + 128: flags['O_EXCL'], + 256: flags['O_NOCTTY'], + 0: flags['O_RDONLY'], + 2: flags['O_RDWR'], + 4096: flags['O_SYNC'], + 512: flags['O_TRUNC'], + 1: flags['O_WRONLY'], + 131072: flags['O_NOFOLLOW'], + }; + assert(NODEFS.flagsForNodeMap['0'] === 0); + }, + convertNodeCode: (e) => { + var code = e.code; + assert( + code in ERRNO_CODES, + `unexpected node error code: ${code} (${e})` + ); + return ERRNO_CODES[code]; + }, + mount: (mount) => { + assert(ENVIRONMENT_IS_NODE); + return NODEFS.createNode( + null, + '/', + NODEFS.getMode(mount.opts.root), + 0 + ); + }, + createNode: (parent, name, mode, dev) => { + if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) { + throw new FS.ErrnoError(28); + } + var node = FS.createNode(parent, name, mode); + node.node_ops = NODEFS.node_ops; + node.stream_ops = NODEFS.stream_ops; + return node; + }, + getMode: (path) => { + var stat; + try { + stat = fs.lstatSync(path); + if (NODEFS.isWindows) { + stat.mode = stat.mode | ((stat.mode & 292) >> 2); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); + } + return stat.mode; + }, + realPath: (node) => { + var parts = []; + while (node.parent !== node) { + parts.push(node.name); + node = node.parent; + } + parts.push(node.mount.opts.root); + parts.reverse(); + return PATH.join.apply(null, parts); + }, + flagsForNode: (flags) => { + flags &= ~2097152; + flags &= ~2048; + flags &= ~32768; + flags &= ~524288; + flags &= ~65536; + var newFlags = 0; + for (var k in NODEFS.flagsForNodeMap) { + if (flags & k) { + newFlags |= NODEFS.flagsForNodeMap[k]; + flags ^= k; + } + } + if (flags) { + throw new FS.ErrnoError(28); + } + return newFlags; + }, + node_ops: { + getattr: (node) => { + var path = NODEFS.realPath(node); + var stat; + try { + stat = fs.lstatSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); + } + if (NODEFS.isWindows && !stat.blksize) { + stat.blksize = 4096; + } + if (NODEFS.isWindows && !stat.blocks) { + stat.blocks = + ((stat.size + stat.blksize - 1) / stat.blksize) | 0; + } + return { + dev: stat.dev, + ino: stat.ino, + mode: stat.mode, + nlink: stat.nlink, + uid: stat.uid, + gid: stat.gid, + rdev: stat.rdev, + size: stat.size, + atime: stat.atime, + mtime: stat.mtime, + ctime: stat.ctime, + blksize: stat.blksize, + blocks: stat.blocks, + }; + }, + setattr: (node, attr) => { + var path = NODEFS.realPath(node); + try { + if (attr.mode !== undefined) { + fs.chmodSync(path, attr.mode); + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + var date = new Date(attr.timestamp); + fs.utimesSync(path, date, date); + } + if (attr.size !== undefined) { + fs.truncateSync(path, attr.size); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); + } + }, + lookup: (parent, name) => { + var path = PATH.join2(NODEFS.realPath(parent), name); + var mode = NODEFS.getMode(path); + return NODEFS.createNode(parent, name, mode); + }, + mknod: (parent, name, mode, dev) => { + var node = NODEFS.createNode(parent, name, mode, dev); + var path = NODEFS.realPath(node); + try { + if (FS.isDir(node.mode)) { + fs.mkdirSync(path, node.mode); + } else { + fs.writeFileSync(path, '', { mode: node.mode }); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); + } + return node; + }, + rename: (oldNode, newDir, newName) => { + var oldPath = NODEFS.realPath(oldNode); + var newPath = PATH.join2(NODEFS.realPath(newDir), newName); + try { + fs.renameSync(oldPath, newPath); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); + } + oldNode.name = newName; + }, + unlink: (parent, name) => { + var path = PATH.join2(NODEFS.realPath(parent), name); + try { + fs.unlinkSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); + } + }, + rmdir: (parent, name) => { + var path = PATH.join2(NODEFS.realPath(parent), name); + try { + fs.rmdirSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); + } + }, + readdir: (node) => { + var path = NODEFS.realPath(node); + try { + return fs.readdirSync(path); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); + } + }, + symlink: (parent, newName, oldPath) => { + var newPath = PATH.join2(NODEFS.realPath(parent), newName); + try { + fs.symlinkSync(oldPath, newPath); + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); + } + }, + readlink: (node) => { + var path = NODEFS.realPath(node); + try { + path = fs.readlinkSync(path); + path = nodePath.relative( + nodePath.resolve(node.mount.opts.root), + path + ); + return path; + } catch (e) { + if (!e.code) throw e; + if (e.code === 'UNKNOWN') throw new FS.ErrnoError(28); + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); + } + }, + }, + stream_ops: { + open: (stream) => { + var path = NODEFS.realPath(stream.node); + try { + if (FS.isFile(stream.node.mode)) { + stream.nfd = fs.openSync( + path, + NODEFS.flagsForNode(stream.flags) + ); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); + } + }, + close: (stream) => { + try { + if (FS.isFile(stream.node.mode) && stream.nfd) { + fs.closeSync(stream.nfd); + } + } catch (e) { + if (!e.code) throw e; + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); + } + }, + read: (stream, buffer, offset, length, position) => { + if (length === 0) return 0; + try { + return fs.readSync( + stream.nfd, + Buffer.from(buffer.buffer), + offset, + length, + position + ); + } catch (e) { + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); + } + }, + write: (stream, buffer, offset, length, position) => { + try { + return fs.writeSync( + stream.nfd, + Buffer.from(buffer.buffer), + offset, + length, + position + ); + } catch (e) { + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); + } + }, + llseek: (stream, offset, whence) => { + var position = offset; + if (whence === 1) { + position += stream.position; + } else if (whence === 2) { + if (FS.isFile(stream.node.mode)) { + try { + var stat = fs.fstatSync(stream.nfd); + position += stat.size; + } catch (e) { + throw new FS.ErrnoError( + NODEFS.convertNodeCode(e) + ); + } + } + } + if (position < 0) { + throw new FS.ErrnoError(28); + } + return position; + }, + mmap: (stream, length, position, prot, flags) => { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + var ptr = mmapAlloc(length); + NODEFS.stream_ops.read( + stream, + HEAP8, + ptr, + length, + position + ); + return { ptr: ptr, allocated: true }; + }, + msync: (stream, buffer, offset, length, mmapFlags) => { + NODEFS.stream_ops.write( + stream, + buffer, + 0, + length, + offset, + false + ); + return 0; + }, + }, + }; + var ERRNO_MESSAGES = { + 0: 'Success', + 1: 'Arg list too long', + 2: 'Permission denied', + 3: 'Address already in use', + 4: 'Address not available', + 5: 'Address family not supported by protocol family', + 6: 'No more processes', + 7: 'Socket already connected', + 8: 'Bad file number', + 9: 'Trying to read unreadable message', + 10: 'Mount device busy', + 11: 'Operation canceled', + 12: 'No children', + 13: 'Connection aborted', + 14: 'Connection refused', + 15: 'Connection reset by peer', + 16: 'File locking deadlock error', + 17: 'Destination address required', + 18: 'Math arg out of domain of func', + 19: 'Quota exceeded', + 20: 'File exists', + 21: 'Bad address', + 22: 'File too large', + 23: 'Host is unreachable', + 24: 'Identifier removed', + 25: 'Illegal byte sequence', + 26: 'Connection already in progress', + 27: 'Interrupted system call', + 28: 'Invalid argument', + 29: 'I/O error', + 30: 'Socket is already connected', + 31: 'Is a directory', + 32: 'Too many symbolic links', + 33: 'Too many open files', + 34: 'Too many links', + 35: 'Message too long', + 36: 'Multihop attempted', + 37: 'File or path name too long', + 38: 'Network interface is not configured', + 39: 'Connection reset by network', + 40: 'Network is unreachable', + 41: 'Too many open files in system', + 42: 'No buffer space available', + 43: 'No such device', + 44: 'No such file or directory', + 45: 'Exec format error', + 46: 'No record locks available', + 47: 'The link has been severed', + 48: 'Not enough core', + 49: 'No message of desired type', + 50: 'Protocol not available', + 51: 'No space left on device', + 52: 'Function not implemented', + 53: 'Socket is not connected', + 54: 'Not a directory', + 55: 'Directory not empty', + 56: 'State not recoverable', + 57: 'Socket operation on non-socket', + 59: 'Not a typewriter', + 60: 'No such device or address', + 61: 'Value too large for defined data type', + 62: 'Previous owner died', + 63: 'Not super-user', + 64: 'Broken pipe', + 65: 'Protocol error', + 66: 'Unknown protocol', + 67: 'Protocol wrong type for socket', + 68: 'Math result not representable', + 69: 'Read only file system', + 70: 'Illegal seek', + 71: 'No such process', + 72: 'Stale file handle', + 73: 'Connection timed out', + 74: 'Text file busy', + 75: 'Cross-device link', + 100: 'Device not a stream', + 101: 'Bad font file fmt', + 102: 'Invalid slot', + 103: 'Invalid request code', + 104: 'No anode', + 105: 'Block device required', + 106: 'Channel number out of range', + 107: 'Level 3 halted', + 108: 'Level 3 reset', + 109: 'Link number out of range', + 110: 'Protocol driver not attached', + 111: 'No CSI structure available', + 112: 'Level 2 halted', + 113: 'Invalid exchange', + 114: 'Invalid request descriptor', + 115: 'Exchange full', + 116: 'No data (for no delay io)', + 117: 'Timer expired', + 118: 'Out of streams resources', + 119: 'Machine is not on the network', + 120: 'Package not installed', + 121: 'The object is remote', + 122: 'Advertise error', + 123: 'Srmount error', + 124: 'Communication error on send', + 125: 'Cross mount point (not really error)', + 126: 'Given log. name not unique', + 127: 'f.d. invalid for this operation', + 128: 'Remote address changed', + 129: 'Can access a needed shared lib', + 130: 'Accessing a corrupted shared lib', + 131: '.lib section in a.out corrupted', + 132: 'Attempting to link in too many libs', + 133: 'Attempting to exec a shared library', + 135: 'Streams pipe error', + 136: 'Too many users', + 137: 'Socket type not supported', + 138: 'Not supported', + 139: 'Protocol family not supported', + 140: "Can't send after socket shutdown", + 141: 'Too many references', + 142: 'Host is down', + 148: 'No medium (in tape drive)', + 156: 'Level 2 not synchronized', + }; + var FS = { + root: null, + mounts: [], + devices: {}, + streams: [], + nextInode: 1, + nameTable: null, + currentPath: '/', + initialized: false, + ignorePermissions: true, + ErrnoError: null, + genericErrors: {}, + filesystems: null, + syncFSRequests: 0, + lookupPath: (path, opts = {}) => { + path = PATH_FS.resolve(path); + if (!path) return { path: '', node: null }; + var defaults = { follow_mount: true, recurse_count: 0 }; + opts = Object.assign(defaults, opts); + if (opts.recurse_count > 8) { + throw new FS.ErrnoError(32); + } + var parts = path.split('/').filter((p) => !!p); + var current = FS.root; + var current_path = '/'; + for (var i = 0; i < parts.length; i++) { + var islast = i === parts.length - 1; + if (islast && opts.parent) { + break; + } + current = FS.lookupNode(current, parts[i]); + current_path = PATH.join2(current_path, parts[i]); + if (FS.isMountpoint(current)) { + if (!islast || (islast && opts.follow_mount)) { + current = current.mounted.root; + } + } + if (!islast || opts.follow) { + var count = 0; + while (FS.isLink(current.mode)) { + var link = FS.readlink(current_path); + current_path = PATH_FS.resolve( + PATH.dirname(current_path), + link + ); + var lookup = FS.lookupPath(current_path, { + recurse_count: opts.recurse_count + 1, + }); + current = lookup.node; + if (count++ > 40) { + throw new FS.ErrnoError(32); + } + } + } + } + return { path: current_path, node: current }; + }, + getPath: (node) => { + var path; + while (true) { + if (FS.isRoot(node)) { + var mount = node.mount.mountpoint; + if (!path) return mount; + return mount[mount.length - 1] !== '/' + ? `${mount}/${path}` + : mount + path; + } + path = path ? `${node.name}/${path}` : node.name; + node = node.parent; + } + }, + hashName: (parentid, name) => { + var hash = 0; + for (var i = 0; i < name.length; i++) { + hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; + } + return ((parentid + hash) >>> 0) % FS.nameTable.length; + }, + hashAddNode: (node) => { + var hash = FS.hashName(node.parent.id, node.name); + node.name_next = FS.nameTable[hash]; + FS.nameTable[hash] = node; + }, + hashRemoveNode: (node) => { + var hash = FS.hashName(node.parent.id, node.name); + if (FS.nameTable[hash] === node) { + FS.nameTable[hash] = node.name_next; + } else { + var current = FS.nameTable[hash]; + while (current) { + if (current.name_next === node) { + current.name_next = node.name_next; + break; + } + current = current.name_next; + } + } + }, + lookupNode: (parent, name) => { + var errCode = FS.mayLookup(parent); + if (errCode) { + throw new FS.ErrnoError(errCode, parent); + } + var hash = FS.hashName(parent.id, name); + for ( + var node = FS.nameTable[hash]; + node; + node = node.name_next + ) { + var nodeName = node.name; + if (node.parent.id === parent.id && nodeName === name) { + return node; + } + } + return FS.lookup(parent, name); + }, + createNode: (parent, name, mode, rdev) => { + assert(typeof parent == 'object'); + var node = new FS.FSNode(parent, name, mode, rdev); + FS.hashAddNode(node); + return node; + }, + destroyNode: (node) => { + FS.hashRemoveNode(node); + }, + isRoot: (node) => node === node.parent, + isMountpoint: (node) => !!node.mounted, + isFile: (mode) => (mode & 61440) === 32768, + isDir: (mode) => (mode & 61440) === 16384, + isLink: (mode) => (mode & 61440) === 40960, + isChrdev: (mode) => (mode & 61440) === 8192, + isBlkdev: (mode) => (mode & 61440) === 24576, + isFIFO: (mode) => (mode & 61440) === 4096, + isSocket: (mode) => (mode & 49152) === 49152, + flagsToPermissionString: (flag) => { + var perms = ['r', 'w', 'rw'][flag & 3]; + if (flag & 512) { + perms += 'w'; + } + return perms; + }, + nodePermissions: (node, perms) => { + if (FS.ignorePermissions) { + return 0; + } + if (perms.includes('r') && !(node.mode & 292)) { + return 2; + } else if (perms.includes('w') && !(node.mode & 146)) { + return 2; + } else if (perms.includes('x') && !(node.mode & 73)) { + return 2; + } + return 0; + }, + mayLookup: (dir) => { + var errCode = FS.nodePermissions(dir, 'x'); + if (errCode) return errCode; + if (!dir.node_ops.lookup) return 2; + return 0; + }, + mayCreate: (dir, name) => { + try { + var node = FS.lookupNode(dir, name); + return 20; + } catch (e) {} + return FS.nodePermissions(dir, 'wx'); + }, + mayDelete: (dir, name, isdir) => { + var node; + try { + node = FS.lookupNode(dir, name); + } catch (e) { + return e.errno; + } + var errCode = FS.nodePermissions(dir, 'wx'); + if (errCode) { + return errCode; + } + if (isdir) { + if (!FS.isDir(node.mode)) { + return 54; + } + if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { + return 10; + } + } else { + if (FS.isDir(node.mode)) { + return 31; + } + } + return 0; + }, + mayOpen: (node, flags) => { + if (!node) { + return 44; + } + if (FS.isLink(node.mode)) { + return 32; + } else if (FS.isDir(node.mode)) { + if ( + FS.flagsToPermissionString(flags) !== 'r' || + flags & 512 + ) { + return 31; + } + } + return FS.nodePermissions( + node, + FS.flagsToPermissionString(flags) + ); + }, + MAX_OPEN_FDS: 4096, + nextfd: () => { + for (var fd = 0; fd <= FS.MAX_OPEN_FDS; fd++) { + if (!FS.streams[fd]) { + return fd; + } + } + throw new FS.ErrnoError(33); + }, + getStreamChecked: (fd) => { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + return stream; + }, + getStream: (fd) => FS.streams[fd], + createStream: (stream, fd = -1) => { + if (!FS.FSStream) { + FS.FSStream = function () { + this.shared = {}; + }; + FS.FSStream.prototype = {}; + Object.defineProperties(FS.FSStream.prototype, { + object: { + get() { + return this.node; + }, + set(val) { + this.node = val; + }, + }, + isRead: { + get() { + return (this.flags & 2097155) !== 1; + }, + }, + isWrite: { + get() { + return (this.flags & 2097155) !== 0; + }, + }, + isAppend: { + get() { + return this.flags & 1024; + }, + }, + flags: { + get() { + return this.shared.flags; + }, + set(val) { + this.shared.flags = val; + }, + }, + position: { + get() { + return this.shared.position; + }, + set(val) { + this.shared.position = val; + }, + }, + }); + } + stream = Object.assign(new FS.FSStream(), stream); + if (fd == -1) { + fd = FS.nextfd(); + } + stream.fd = fd; + FS.streams[fd] = stream; + return stream; + }, + closeStream: (fd) => { + FS.streams[fd] = null; + }, + chrdev_stream_ops: { + open: (stream) => { + var device = FS.getDevice(stream.node.rdev); + stream.stream_ops = device.stream_ops; + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + }, + llseek: () => { + throw new FS.ErrnoError(70); + }, + }, + major: (dev) => dev >> 8, + minor: (dev) => dev & 255, + makedev: (ma, mi) => (ma << 8) | mi, + registerDevice: (dev, ops) => { + FS.devices[dev] = { stream_ops: ops }; + }, + getDevice: (dev) => FS.devices[dev], + getMounts: (mount) => { + var mounts = []; + var check = [mount]; + while (check.length) { + var m = check.pop(); + mounts.push(m); + check.push.apply(check, m.mounts); + } + return mounts; + }, + syncfs: (populate, callback) => { + if (typeof populate == 'function') { + callback = populate; + populate = false; + } + FS.syncFSRequests++; + if (FS.syncFSRequests > 1) { + err( + `warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work` + ); + } + var mounts = FS.getMounts(FS.root.mount); + var completed = 0; + function doCallback(errCode) { + assert(FS.syncFSRequests > 0); + FS.syncFSRequests--; + return callback(errCode); + } + function done(errCode) { + if (errCode) { + if (!done.errored) { + done.errored = true; + return doCallback(errCode); + } + return; + } + if (++completed >= mounts.length) { + doCallback(null); + } + } + mounts.forEach((mount) => { + if (!mount.type.syncfs) { + return done(null); + } + mount.type.syncfs(mount, populate, done); + }); + }, + mount: (type, opts, mountpoint) => { + if (typeof type == 'string') { + throw type; + } + var root = mountpoint === '/'; + var pseudo = !mountpoint; + var node; + if (root && FS.root) { + throw new FS.ErrnoError(10); + } else if (!root && !pseudo) { + var lookup = FS.lookupPath(mountpoint, { + follow_mount: false, + }); + mountpoint = lookup.path; + node = lookup.node; + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + if (!FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + } + var mount = { + type: type, + opts: opts, + mountpoint: mountpoint, + mounts: [], + }; + var mountRoot = type.mount(mount); + mountRoot.mount = mount; + mount.root = mountRoot; + if (root) { + FS.root = mountRoot; + } else if (node) { + node.mounted = mount; + if (node.mount) { + node.mount.mounts.push(mount); + } + } + return mountRoot; + }, + unmount: (mountpoint) => { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + if (!FS.isMountpoint(lookup.node)) { + throw new FS.ErrnoError(28); + } + var node = lookup.node; + var mount = node.mounted; + var mounts = FS.getMounts(mount); + Object.keys(FS.nameTable).forEach((hash) => { + var current = FS.nameTable[hash]; + while (current) { + var next = current.name_next; + if (mounts.includes(current.mount)) { + FS.destroyNode(current); + } + current = next; + } + }); + node.mounted = null; + var idx = node.mount.mounts.indexOf(mount); + assert(idx !== -1); + node.mount.mounts.splice(idx, 1); + }, + lookup: (parent, name) => parent.node_ops.lookup(parent, name), + mknod: (path, mode, dev) => { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + if (!name || name === '.' || name === '..') { + throw new FS.ErrnoError(28); + } + var errCode = FS.mayCreate(parent, name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.mknod) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.mknod(parent, name, mode, dev); + }, + create: (path, mode) => { + mode = mode !== undefined ? mode : 438; + mode &= 4095; + mode |= 32768; + return FS.mknod(path, mode, 0); + }, + mkdir: (path, mode) => { + mode = mode !== undefined ? mode : 511; + mode &= 511 | 512; + mode |= 16384; + return FS.mknod(path, mode, 0); + }, + mkdirTree: (path, mode) => { + var dirs = path.split('/'); + var d = ''; + for (var i = 0; i < dirs.length; ++i) { + if (!dirs[i]) continue; + d += '/' + dirs[i]; + try { + FS.mkdir(d, mode); + } catch (e) { + if (e.errno != 20) throw e; + } + } + }, + mkdev: (path, mode, dev) => { + if (typeof dev == 'undefined') { + dev = mode; + mode = 438; + } + mode |= 8192; + return FS.mknod(path, mode, dev); + }, + symlink: (oldpath, newpath) => { + if (!PATH_FS.resolve(oldpath)) { + throw new FS.ErrnoError(44); + } + var lookup = FS.lookupPath(newpath, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var newname = PATH.basename(newpath); + var errCode = FS.mayCreate(parent, newname); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.symlink) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.symlink(parent, newname, oldpath); + }, + rename: (old_path, new_path) => { + var old_dirname = PATH.dirname(old_path); + var new_dirname = PATH.dirname(new_path); + var old_name = PATH.basename(old_path); + var new_name = PATH.basename(new_path); + var lookup, old_dir, new_dir; + lookup = FS.lookupPath(old_path, { parent: true }); + old_dir = lookup.node; + lookup = FS.lookupPath(new_path, { parent: true }); + new_dir = lookup.node; + if (!old_dir || !new_dir) throw new FS.ErrnoError(44); + if (old_dir.mount !== new_dir.mount) { + throw new FS.ErrnoError(75); + } + var old_node = FS.lookupNode(old_dir, old_name); + var relative = PATH_FS.relative(old_path, new_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(28); + } + relative = PATH_FS.relative(new_path, old_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(55); + } + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) {} + if (old_node === new_node) { + return; + } + var isdir = FS.isDir(old_node.mode); + var errCode = FS.mayDelete(old_dir, old_name, isdir); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + errCode = new_node + ? FS.mayDelete(new_dir, new_name, isdir) + : FS.mayCreate(new_dir, new_name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!old_dir.node_ops.rename) { + throw new FS.ErrnoError(63); + } + if ( + FS.isMountpoint(old_node) || + (new_node && FS.isMountpoint(new_node)) + ) { + throw new FS.ErrnoError(10); + } + if (new_dir !== old_dir) { + errCode = FS.nodePermissions(old_dir, 'w'); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + FS.hashRemoveNode(old_node); + try { + old_dir.node_ops.rename(old_node, new_dir, new_name); + } catch (e) { + throw e; + } finally { + FS.hashAddNode(old_node); + } + }, + rmdir: (path) => { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, true); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.rmdir) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.rmdir(parent, name); + FS.destroyNode(node); + }, + readdir: (path) => { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + if (!node.node_ops.readdir) { + throw new FS.ErrnoError(54); + } + return node.node_ops.readdir(node); + }, + unlink: (path) => { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, false); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.unlink) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.unlink(parent, name); + FS.destroyNode(node); + }, + readlink: (path) => { + var lookup = FS.lookupPath(path); + var link = lookup.node; + if (!link) { + throw new FS.ErrnoError(44); + } + if (!link.node_ops.readlink) { + throw new FS.ErrnoError(28); + } + return PATH_FS.resolve( + FS.getPath(link.parent), + link.node_ops.readlink(link) + ); + }, + stat: (path, dontFollow) => { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + var node = lookup.node; + if (!node) { + throw new FS.ErrnoError(44); + } + if (!node.node_ops.getattr) { + throw new FS.ErrnoError(63); + } + return node.node_ops.getattr(node); + }, + lstat: (path) => FS.stat(path, true), + chmod: (path, mode, dontFollow) => { + var node; + if (typeof path == 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + node.node_ops.setattr(node, { + mode: (mode & 4095) | (node.mode & ~4095), + timestamp: Date.now(), + }); + }, + lchmod: (path, mode) => { + FS.chmod(path, mode, true); + }, + fchmod: (fd, mode) => { + var stream = FS.getStreamChecked(fd); + FS.chmod(stream.node, mode); + }, + chown: (path, uid, gid, dontFollow) => { + var node; + if (typeof path == 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + node.node_ops.setattr(node, { timestamp: Date.now() }); + }, + lchown: (path, uid, gid) => { + FS.chown(path, uid, gid, true); + }, + fchown: (fd, uid, gid) => { + var stream = FS.getStreamChecked(fd); + FS.chown(stream.node, uid, gid); + }, + truncate: (path, len) => { + if (len < 0) { + throw new FS.ErrnoError(28); + } + var node; + if (typeof path == 'string') { + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + if (FS.isDir(node.mode)) { + throw new FS.ErrnoError(31); + } + if (!FS.isFile(node.mode)) { + throw new FS.ErrnoError(28); + } + var errCode = FS.nodePermissions(node, 'w'); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + node.node_ops.setattr(node, { + size: len, + timestamp: Date.now(), + }); + }, + ftruncate: (fd, len) => { + var stream = FS.getStreamChecked(fd); + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(28); + } + FS.truncate(stream.node, len); + }, + utime: (path, atime, mtime) => { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + node.node_ops.setattr(node, { + timestamp: Math.max(atime, mtime), + }); + }, + open: (path, flags, mode) => { + if (path === '') { + throw new FS.ErrnoError(44); + } + flags = + typeof flags == 'string' + ? FS_modeStringToFlags(flags) + : flags; + mode = typeof mode == 'undefined' ? 438 : mode; + if (flags & 64) { + mode = (mode & 4095) | 32768; + } else { + mode = 0; + } + var node; + if (typeof path == 'object') { + node = path; + } else { + path = PATH.normalize(path); + try { + var lookup = FS.lookupPath(path, { + follow: !(flags & 131072), + }); + node = lookup.node; + } catch (e) {} + } + var created = false; + if (flags & 64) { + if (node) { + if (flags & 128) { + throw new FS.ErrnoError(20); + } + } else { + node = FS.mknod(path, mode, 0); + created = true; + } + } + if (!node) { + throw new FS.ErrnoError(44); + } + if (FS.isChrdev(node.mode)) { + flags &= ~512; + } + if (flags & 65536 && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + if (!created) { + var errCode = FS.mayOpen(node, flags); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + if (flags & 512 && !created) { + FS.truncate(node, 0); + } + flags &= ~(128 | 512 | 131072); + var stream = FS.createStream({ + node: node, + path: FS.getPath(node), + flags: flags, + seekable: true, + position: 0, + stream_ops: node.stream_ops, + ungotten: [], + error: false, + }); + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + if (Module['logReadFiles'] && !(flags & 1)) { + if (!FS.readFiles) FS.readFiles = {}; + if (!(path in FS.readFiles)) { + FS.readFiles[path] = 1; + } + } + return stream; + }, + close: (stream) => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (stream.getdents) stream.getdents = null; + try { + if (stream.stream_ops.close) { + stream.stream_ops.close(stream); + } + } catch (e) { + throw e; + } finally { + FS.closeStream(stream.fd); + } + stream.fd = null; + }, + isClosed: (stream) => stream.fd === null, + llseek: (stream, offset, whence) => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (!stream.seekable || !stream.stream_ops.llseek) { + throw new FS.ErrnoError(70); + } + if (whence != 0 && whence != 1 && whence != 2) { + throw new FS.ErrnoError(28); + } + stream.position = stream.stream_ops.llseek( + stream, + offset, + whence + ); + stream.ungotten = []; + return stream.position; + }, + read: (stream, buffer, offset, length, position) => { + assert(offset >= 0); + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.read) { + throw new FS.ErrnoError(28); + } + var seeking = typeof position != 'undefined'; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesRead = stream.stream_ops.read( + stream, + buffer, + offset, + length, + position + ); + if (!seeking) stream.position += bytesRead; + return bytesRead; + }, + write: (stream, buffer, offset, length, position, canOwn) => { + assert(offset >= 0); + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.write) { + throw new FS.ErrnoError(28); + } + if (stream.seekable && stream.flags & 1024) { + FS.llseek(stream, 0, 2); + } + var seeking = typeof position != 'undefined'; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesWritten = stream.stream_ops.write( + stream, + buffer, + offset, + length, + position, + canOwn + ); + if (!seeking) stream.position += bytesWritten; + return bytesWritten; + }, + allocate: (stream, offset, length) => { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (offset < 0 || length <= 0) { + throw new FS.ErrnoError(28); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8); + } + if ( + !FS.isFile(stream.node.mode) && + !FS.isDir(stream.node.mode) + ) { + throw new FS.ErrnoError(43); + } + if (!stream.stream_ops.allocate) { + throw new FS.ErrnoError(138); + } + stream.stream_ops.allocate(stream, offset, length); + }, + mmap: (stream, length, position, prot, flags) => { + if ( + (prot & 2) !== 0 && + (flags & 2) === 0 && + (stream.flags & 2097155) !== 2 + ) { + throw new FS.ErrnoError(2); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(2); + } + if (!stream.stream_ops.mmap) { + throw new FS.ErrnoError(43); + } + return stream.stream_ops.mmap( + stream, + length, + position, + prot, + flags + ); + }, + msync: (stream, buffer, offset, length, mmapFlags) => { + assert(offset >= 0); + if (!stream.stream_ops.msync) { + return 0; + } + return stream.stream_ops.msync( + stream, + buffer, + offset, + length, + mmapFlags + ); + }, + munmap: (stream) => 0, + ioctl: (stream, cmd, arg) => { + if (!stream.stream_ops.ioctl) { + throw new FS.ErrnoError(59); + } + return stream.stream_ops.ioctl(stream, cmd, arg); + }, + readFile: (path, opts = {}) => { + opts.flags = opts.flags || 0; + opts.encoding = opts.encoding || 'binary'; + if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { + throw new Error(`Invalid encoding type "${opts.encoding}"`); + } + var ret; + var stream = FS.open(path, opts.flags); + var stat = FS.stat(path); + var length = stat.size; + var buf = new Uint8Array(length); + FS.read(stream, buf, 0, length, 0); + if (opts.encoding === 'utf8') { + ret = UTF8ArrayToString(buf, 0); + } else if (opts.encoding === 'binary') { + ret = buf; + } + FS.close(stream); + return ret; + }, + writeFile: (path, data, opts = {}) => { + opts.flags = opts.flags || 577; + var stream = FS.open(path, opts.flags, opts.mode); + if (typeof data == 'string') { + var buf = new Uint8Array(lengthBytesUTF8(data) + 1); + var actualNumBytes = stringToUTF8Array( + data, + buf, + 0, + buf.length + ); + FS.write( + stream, + buf, + 0, + actualNumBytes, + undefined, + opts.canOwn + ); + } else if (ArrayBuffer.isView(data)) { + FS.write( + stream, + data, + 0, + data.byteLength, + undefined, + opts.canOwn + ); + } else { + throw new Error('Unsupported data type'); + } + FS.close(stream); + }, + cwd: () => FS.currentPath, + chdir: (path) => { + var lookup = FS.lookupPath(path, { follow: true }); + if (lookup.node === null) { + throw new FS.ErrnoError(44); + } + if (!FS.isDir(lookup.node.mode)) { + throw new FS.ErrnoError(54); + } + var errCode = FS.nodePermissions(lookup.node, 'x'); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + FS.currentPath = lookup.path; + }, + createDefaultDirectories: () => { + FS.mkdir('/tmp'); + FS.mkdir('/home'); + FS.mkdir('/home/web_user'); + }, + createDefaultDevices: () => { + FS.mkdir('/dev'); + FS.registerDevice(FS.makedev(1, 3), { + read: () => 0, + write: (stream, buffer, offset, length, pos) => length, + }); + FS.mkdev('/dev/null', FS.makedev(1, 3)); + TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); + TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); + FS.mkdev('/dev/tty', FS.makedev(5, 0)); + FS.mkdev('/dev/tty1', FS.makedev(6, 0)); + var randomBuffer = new Uint8Array(1024), + randomLeft = 0; + var randomByte = () => { + if (randomLeft === 0) { + randomLeft = randomFill(randomBuffer).byteLength; + } + return randomBuffer[--randomLeft]; + }; + FS.createDevice('/dev', 'random', randomByte); + FS.createDevice('/dev', 'urandom', randomByte); + FS.mkdir('/dev/shm'); + FS.mkdir('/dev/shm/tmp'); + }, + createSpecialDirectories: () => { + FS.mkdir('/proc'); + var proc_self = FS.mkdir('/proc/self'); + FS.mkdir('/proc/self/fd'); + FS.mount( + { + mount: () => { + var node = FS.createNode( + proc_self, + 'fd', + 16384 | 511, + 73 + ); + node.node_ops = { + lookup: (parent, name) => { + var fd = +name; + var stream = FS.getStreamChecked(fd); + var ret = { + parent: null, + mount: { mountpoint: 'fake' }, + node_ops: { + readlink: () => stream.path, + }, + }; + ret.parent = ret; + return ret; + }, + }; + return node; + }, + }, + {}, + '/proc/self/fd' + ); + }, + createStandardStreams: () => { + if (Module['stdin']) { + FS.createDevice('/dev', 'stdin', Module['stdin']); + } else { + FS.symlink('/dev/tty', '/dev/stdin'); + } + if (Module['stdout']) { + FS.createDevice('/dev', 'stdout', null, Module['stdout']); + } else { + FS.symlink('/dev/tty', '/dev/stdout'); + } + if (Module['stderr']) { + FS.createDevice('/dev', 'stderr', null, Module['stderr']); + } else { + FS.symlink('/dev/tty1', '/dev/stderr'); + } + var stdin = FS.open('/dev/stdin', 0); + var stdout = FS.open('/dev/stdout', 1); + var stderr = FS.open('/dev/stderr', 1); + assert( + stdin.fd === 0, + `invalid handle for stdin (${stdin.fd})` + ); + assert( + stdout.fd === 1, + `invalid handle for stdout (${stdout.fd})` + ); + assert( + stderr.fd === 2, + `invalid handle for stderr (${stderr.fd})` + ); + }, + ensureErrnoError: () => { + if (FS.ErrnoError) return; + FS.ErrnoError = function ErrnoError(errno, node) { + this.name = 'ErrnoError'; + this.node = node; + this.setErrno = function (errno) { + this.errno = errno; + for (var key in ERRNO_CODES) { + if (ERRNO_CODES[key] === errno) { + this.code = key; + break; + } + } + }; + this.setErrno(errno); + this.message = ERRNO_MESSAGES[errno]; + if (this.stack) { + Object.defineProperty(this, 'stack', { + value: new Error().stack, + writable: true, + }); + this.stack = demangleAll(this.stack); + } + }; + FS.ErrnoError.prototype = new Error(); + FS.ErrnoError.prototype.constructor = FS.ErrnoError; + [44].forEach((code) => { + FS.genericErrors[code] = new FS.ErrnoError(code); + FS.genericErrors[code].stack = ''; + }); + }, + staticInit: () => { + FS.ensureErrnoError(); + FS.nameTable = new Array(4096); + FS.mount(MEMFS, {}, '/'); + FS.createDefaultDirectories(); + FS.createDefaultDevices(); + FS.createSpecialDirectories(); + FS.filesystems = { MEMFS: MEMFS, NODEFS: NODEFS }; + }, + init: (input, output, error) => { + assert( + !FS.init.initialized, + 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)' + ); + FS.init.initialized = true; + FS.ensureErrnoError(); + Module['stdin'] = input || Module['stdin']; + Module['stdout'] = output || Module['stdout']; + Module['stderr'] = error || Module['stderr']; + FS.createStandardStreams(); + }, + quit: () => { + FS.init.initialized = false; + _fflush(0); + for (var i = 0; i < FS.streams.length; i++) { + var stream = FS.streams[i]; + if (!stream) { + continue; + } + FS.close(stream); + } + }, + findObject: (path, dontResolveLastLink) => { + var ret = FS.analyzePath(path, dontResolveLastLink); + if (!ret.exists) { + return null; + } + return ret.object; + }, + analyzePath: (path, dontResolveLastLink) => { + try { + var lookup = FS.lookupPath(path, { + follow: !dontResolveLastLink, + }); + path = lookup.path; + } catch (e) {} + var ret = { + isRoot: false, + exists: false, + error: 0, + name: null, + path: null, + object: null, + parentExists: false, + parentPath: null, + parentObject: null, + }; + try { + var lookup = FS.lookupPath(path, { parent: true }); + ret.parentExists = true; + ret.parentPath = lookup.path; + ret.parentObject = lookup.node; + ret.name = PATH.basename(path); + lookup = FS.lookupPath(path, { + follow: !dontResolveLastLink, + }); + ret.exists = true; + ret.path = lookup.path; + ret.object = lookup.node; + ret.name = lookup.node.name; + ret.isRoot = lookup.path === '/'; + } catch (e) { + ret.error = e.errno; + } + return ret; + }, + createPath: (parent, path, canRead, canWrite) => { + parent = + typeof parent == 'string' ? parent : FS.getPath(parent); + var parts = path.split('/').reverse(); + while (parts.length) { + var part = parts.pop(); + if (!part) continue; + var current = PATH.join2(parent, part); + try { + FS.mkdir(current); + } catch (e) {} + parent = current; + } + return current; + }, + createFile: (parent, name, properties, canRead, canWrite) => { + var path = PATH.join2( + typeof parent == 'string' ? parent : FS.getPath(parent), + name + ); + var mode = FS_getMode(canRead, canWrite); + return FS.create(path, mode); + }, + createDataFile: (parent, name, data, canRead, canWrite, canOwn) => { + var path = name; + if (parent) { + parent = + typeof parent == 'string' ? parent : FS.getPath(parent); + path = name ? PATH.join2(parent, name) : parent; + } + var mode = FS_getMode(canRead, canWrite); + var node = FS.create(path, mode); + if (data) { + if (typeof data == 'string') { + var arr = new Array(data.length); + for (var i = 0, len = data.length; i < len; ++i) + arr[i] = data.charCodeAt(i); + data = arr; + } + FS.chmod(node, mode | 146); + var stream = FS.open(node, 577); + FS.write(stream, data, 0, data.length, 0, canOwn); + FS.close(stream); + FS.chmod(node, mode); + } + return node; + }, + createDevice: (parent, name, input, output) => { + var path = PATH.join2( + typeof parent == 'string' ? parent : FS.getPath(parent), + name + ); + var mode = FS_getMode(!!input, !!output); + if (!FS.createDevice.major) FS.createDevice.major = 64; + var dev = FS.makedev(FS.createDevice.major++, 0); + FS.registerDevice(dev, { + open: (stream) => { + stream.seekable = false; + }, + close: (stream) => { + if (output && output.buffer && output.buffer.length) { + output(10); + } + }, + read: (stream, buffer, offset, length, pos) => { + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = input(); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset + i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, + write: (stream, buffer, offset, length, pos) => { + for (var i = 0; i < length; i++) { + try { + output(buffer[offset + i]); + } catch (e) { + throw new FS.ErrnoError(29); + } + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + }, + }); + return FS.mkdev(path, mode, dev); + }, + forceLoadFile: (obj) => { + if (obj.isDevice || obj.isFolder || obj.link || obj.contents) + return true; + if (typeof XMLHttpRequest != 'undefined') { + throw new Error( + 'Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.' + ); + } else if (read_) { + try { + obj.contents = intArrayFromString(read_(obj.url), true); + obj.usedBytes = obj.contents.length; + } catch (e) { + throw new FS.ErrnoError(29); + } + } else { + throw new Error( + 'Cannot load without read() or XMLHttpRequest.' + ); + } + }, + createLazyFile: (parent, name, url, canRead, canWrite) => { + function LazyUint8Array() { + this.lengthKnown = false; + this.chunks = []; + } + LazyUint8Array.prototype.get = function LazyUint8Array_get( + idx + ) { + if (idx > this.length - 1 || idx < 0) { + return undefined; + } + var chunkOffset = idx % this.chunkSize; + var chunkNum = (idx / this.chunkSize) | 0; + return this.getter(chunkNum)[chunkOffset]; + }; + LazyUint8Array.prototype.setDataGetter = + function LazyUint8Array_setDataGetter(getter) { + this.getter = getter; + }; + LazyUint8Array.prototype.cacheLength = + function LazyUint8Array_cacheLength() { + var xhr = new XMLHttpRequest(); + xhr.open('HEAD', url, false); + xhr.send(null); + if ( + !( + (xhr.status >= 200 && xhr.status < 300) || + xhr.status === 304 + ) + ) + throw new Error( + "Couldn't load " + + url + + '. Status: ' + + xhr.status + ); + var datalength = Number( + xhr.getResponseHeader('Content-length') + ); + var header; + var hasByteServing = + (header = xhr.getResponseHeader('Accept-Ranges')) && + header === 'bytes'; + var usesGzip = + (header = + xhr.getResponseHeader('Content-Encoding')) && + header === 'gzip'; + var chunkSize = 1024 * 1024; + if (!hasByteServing) chunkSize = datalength; + var doXHR = (from, to) => { + if (from > to) + throw new Error( + 'invalid range (' + + from + + ', ' + + to + + ') or no bytes requested!' + ); + if (to > datalength - 1) + throw new Error( + 'only ' + + datalength + + ' bytes available! programmer error!' + ); + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + if (datalength !== chunkSize) + xhr.setRequestHeader( + 'Range', + 'bytes=' + from + '-' + to + ); + xhr.responseType = 'arraybuffer'; + if (xhr.overrideMimeType) { + xhr.overrideMimeType( + 'text/plain; charset=x-user-defined' + ); + } + xhr.send(null); + if ( + !( + (xhr.status >= 200 && xhr.status < 300) || + xhr.status === 304 + ) + ) + throw new Error( + "Couldn't load " + + url + + '. Status: ' + + xhr.status + ); + if (xhr.response !== undefined) { + return new Uint8Array(xhr.response || []); + } + return intArrayFromString( + xhr.responseText || '', + true + ); + }; + var lazyArray = this; + lazyArray.setDataGetter((chunkNum) => { + var start = chunkNum * chunkSize; + var end = (chunkNum + 1) * chunkSize - 1; + end = Math.min(end, datalength - 1); + if ( + typeof lazyArray.chunks[chunkNum] == 'undefined' + ) { + lazyArray.chunks[chunkNum] = doXHR(start, end); + } + if ( + typeof lazyArray.chunks[chunkNum] == 'undefined' + ) + throw new Error('doXHR failed!'); + return lazyArray.chunks[chunkNum]; + }); + if (usesGzip || !datalength) { + chunkSize = datalength = 1; + datalength = this.getter(0).length; + chunkSize = datalength; + out( + 'LazyFiles on gzip forces download of the whole file when length is accessed' + ); + } + this._length = datalength; + this._chunkSize = chunkSize; + this.lengthKnown = true; + }; + if (typeof XMLHttpRequest != 'undefined') { + if (!ENVIRONMENT_IS_WORKER) + throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc'; + var lazyArray = new LazyUint8Array(); + Object.defineProperties(lazyArray, { + length: { + get: function () { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._length; + }, + }, + chunkSize: { + get: function () { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._chunkSize; + }, + }, + }); + var properties = { isDevice: false, contents: lazyArray }; + } else { + var properties = { isDevice: false, url: url }; + } + var node = FS.createFile( + parent, + name, + properties, + canRead, + canWrite + ); + if (properties.contents) { + node.contents = properties.contents; + } else if (properties.url) { + node.contents = null; + node.url = properties.url; + } + Object.defineProperties(node, { + usedBytes: { + get: function () { + return this.contents.length; + }, + }, + }); + var stream_ops = {}; + var keys = Object.keys(node.stream_ops); + keys.forEach((key) => { + var fn = node.stream_ops[key]; + stream_ops[key] = function forceLoadLazyFile() { + FS.forceLoadFile(node); + return fn.apply(null, arguments); + }; + }); + function writeChunks(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= contents.length) return 0; + var size = Math.min(contents.length - position, length); + assert(size >= 0); + if (contents.slice) { + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i]; + } + } else { + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents.get(position + i); + } + } + return size; + } + stream_ops.read = ( + stream, + buffer, + offset, + length, + position + ) => { + FS.forceLoadFile(node); + return writeChunks( + stream, + buffer, + offset, + length, + position + ); + }; + stream_ops.mmap = (stream, length, position, prot, flags) => { + FS.forceLoadFile(node); + var ptr = mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + writeChunks(stream, HEAP8, ptr, length, position); + return { ptr: ptr, allocated: true }; + }; + node.stream_ops = stream_ops; + return node; + }, + absolutePath: () => { + abort( + 'FS.absolutePath has been removed; use PATH_FS.resolve instead' + ); + }, + createFolder: () => { + abort('FS.createFolder has been removed; use FS.mkdir instead'); + }, + createLink: () => { + abort('FS.createLink has been removed; use FS.symlink instead'); + }, + joinPath: () => { + abort('FS.joinPath has been removed; use PATH.join instead'); + }, + mmapAlloc: () => { + abort( + 'FS.mmapAlloc has been replaced by the top level function mmapAlloc' + ); + }, + standardizePath: () => { + abort( + 'FS.standardizePath has been removed; use PATH.normalize instead' + ); + }, + }; + var SYSCALLS = { + DEFAULT_POLLMASK: 5, + calculateAt: function (dirfd, path, allowEmpty) { + if (PATH.isAbs(path)) { + return path; + } + var dir; + if (dirfd === -100) { + dir = FS.cwd(); + } else { + var dirstream = SYSCALLS.getStreamFromFD(dirfd); + dir = dirstream.path; + } + if (path.length == 0) { + if (!allowEmpty) { + throw new FS.ErrnoError(44); + } + return dir; + } + return PATH.join2(dir, path); + }, + doStat: function (func, path, buf) { + try { + var stat = func(path); + } catch (e) { + if ( + e && + e.node && + PATH.normalize(path) !== + PATH.normalize(FS.getPath(e.node)) + ) { + return -54; + } + throw e; + } + HEAP32[buf >> 2] = stat.dev; + checkInt32(stat.dev); + HEAP32[(buf + 4) >> 2] = stat.mode; + checkInt32(stat.mode); + HEAPU32[(buf + 8) >> 2] = stat.nlink; + checkInt32(stat.nlink); + HEAP32[(buf + 12) >> 2] = stat.uid; + checkInt32(stat.uid); + HEAP32[(buf + 16) >> 2] = stat.gid; + checkInt32(stat.gid); + HEAP32[(buf + 20) >> 2] = stat.rdev; + checkInt32(stat.rdev); + (tempI64 = [ + stat.size >>> 0, + ((tempDouble = stat.size), + +Math.abs(tempDouble) >= 1 + ? tempDouble > 0 + ? +Math.floor(tempDouble / 4294967296) >>> 0 + : ~~+Math.ceil( + (tempDouble - +(~~tempDouble >>> 0)) / + 4294967296 + ) >>> 0 + : 0), + ]), + (HEAP32[(buf + 24) >> 2] = tempI64[0]), + (HEAP32[(buf + 28) >> 2] = tempI64[1]); + checkInt64(stat.size); + HEAP32[(buf + 32) >> 2] = 4096; + checkInt32(4096); + HEAP32[(buf + 36) >> 2] = stat.blocks; + checkInt32(stat.blocks); + var atime = stat.atime.getTime(); + var mtime = stat.mtime.getTime(); + var ctime = stat.ctime.getTime(); + (tempI64 = [ + Math.floor(atime / 1e3) >>> 0, + ((tempDouble = Math.floor(atime / 1e3)), + +Math.abs(tempDouble) >= 1 + ? tempDouble > 0 + ? +Math.floor(tempDouble / 4294967296) >>> 0 + : ~~+Math.ceil( + (tempDouble - +(~~tempDouble >>> 0)) / + 4294967296 + ) >>> 0 + : 0), + ]), + (HEAP32[(buf + 40) >> 2] = tempI64[0]), + (HEAP32[(buf + 44) >> 2] = tempI64[1]); + checkInt64(Math.floor(atime / 1e3)); + HEAPU32[(buf + 48) >> 2] = (atime % 1e3) * 1e3; + checkInt32((atime % 1e3) * 1e3); + (tempI64 = [ + Math.floor(mtime / 1e3) >>> 0, + ((tempDouble = Math.floor(mtime / 1e3)), + +Math.abs(tempDouble) >= 1 + ? tempDouble > 0 + ? +Math.floor(tempDouble / 4294967296) >>> 0 + : ~~+Math.ceil( + (tempDouble - +(~~tempDouble >>> 0)) / + 4294967296 + ) >>> 0 + : 0), + ]), + (HEAP32[(buf + 56) >> 2] = tempI64[0]), + (HEAP32[(buf + 60) >> 2] = tempI64[1]); + checkInt64(Math.floor(mtime / 1e3)); + HEAPU32[(buf + 64) >> 2] = (mtime % 1e3) * 1e3; + checkInt32((mtime % 1e3) * 1e3); + (tempI64 = [ + Math.floor(ctime / 1e3) >>> 0, + ((tempDouble = Math.floor(ctime / 1e3)), + +Math.abs(tempDouble) >= 1 + ? tempDouble > 0 + ? +Math.floor(tempDouble / 4294967296) >>> 0 + : ~~+Math.ceil( + (tempDouble - +(~~tempDouble >>> 0)) / + 4294967296 + ) >>> 0 + : 0), + ]), + (HEAP32[(buf + 72) >> 2] = tempI64[0]), + (HEAP32[(buf + 76) >> 2] = tempI64[1]); + checkInt64(Math.floor(ctime / 1e3)); + HEAPU32[(buf + 80) >> 2] = (ctime % 1e3) * 1e3; + checkInt32((ctime % 1e3) * 1e3); + (tempI64 = [ + stat.ino >>> 0, + ((tempDouble = stat.ino), + +Math.abs(tempDouble) >= 1 + ? tempDouble > 0 + ? +Math.floor(tempDouble / 4294967296) >>> 0 + : ~~+Math.ceil( + (tempDouble - +(~~tempDouble >>> 0)) / + 4294967296 + ) >>> 0 + : 0), + ]), + (HEAP32[(buf + 88) >> 2] = tempI64[0]), + (HEAP32[(buf + 92) >> 2] = tempI64[1]); + checkInt64(stat.ino); + return 0; + }, + doMsync: function (addr, stream, len, flags, offset) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (flags & 2) { + return 0; + } + var buffer = HEAPU8.slice(addr, addr + len); + FS.msync(stream, buffer, offset, len, flags); + }, + varargs: undefined, + get() { + assert(SYSCALLS.varargs != undefined); + SYSCALLS.varargs += 4; + var ret = HEAP32[(SYSCALLS.varargs - 4) >> 2]; + return ret; + }, + getStr(ptr) { + var ret = UTF8ToString(ptr); + return ret; + }, + getStreamFromFD: function (fd) { + var stream = FS.getStreamChecked(fd); + return stream; + }, + }; + function ___syscall_fcntl64(fd, cmd, varargs) { + SYSCALLS.varargs = varargs; + try { + var stream = SYSCALLS.getStreamFromFD(fd); + switch (cmd) { + case 0: { + var arg = SYSCALLS.get(); + if (arg < 0) { + return -28; + } + var newStream; + newStream = FS.createStream(stream, arg); + return newStream.fd; + } + case 1: + case 2: + return 0; + case 3: + return stream.flags; + case 4: { + var arg = SYSCALLS.get(); + stream.flags |= arg; + return 0; + } + case 5: { + var arg = SYSCALLS.get(); + var offset = 0; + HEAP16[(arg + offset) >> 1] = 2; + checkInt16(2); + return 0; + } + case 6: + case 7: + return 0; + case 16: + case 8: + return -28; + case 9: + setErrNo(28); + return -1; + default: { + return -28; + } + } + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) + throw e; + return -e.errno; + } + } + function ___syscall_ioctl(fd, op, varargs) { + SYSCALLS.varargs = varargs; + try { + var stream = SYSCALLS.getStreamFromFD(fd); + switch (op) { + case 21509: { + if (!stream.tty) return -59; + return 0; + } + case 21505: { + if (!stream.tty) return -59; + if (stream.tty.ops.ioctl_tcgets) { + var termios = stream.tty.ops.ioctl_tcgets(stream); + var argp = SYSCALLS.get(); + HEAP32[argp >> 2] = termios.c_iflag || 0; + checkInt32(termios.c_iflag || 0); + HEAP32[(argp + 4) >> 2] = termios.c_oflag || 0; + checkInt32(termios.c_oflag || 0); + HEAP32[(argp + 8) >> 2] = termios.c_cflag || 0; + checkInt32(termios.c_cflag || 0); + HEAP32[(argp + 12) >> 2] = termios.c_lflag || 0; + checkInt32(termios.c_lflag || 0); + for (var i = 0; i < 32; i++) { + HEAP8[(argp + i + 17) >> 0] = + termios.c_cc[i] || 0; + checkInt8(termios.c_cc[i] || 0); + } + return 0; + } + return 0; + } + case 21510: + case 21511: + case 21512: { + if (!stream.tty) return -59; + return 0; + } + case 21506: + case 21507: + case 21508: { + if (!stream.tty) return -59; + if (stream.tty.ops.ioctl_tcsets) { + var argp = SYSCALLS.get(); + var c_iflag = HEAP32[argp >> 2]; + var c_oflag = HEAP32[(argp + 4) >> 2]; + var c_cflag = HEAP32[(argp + 8) >> 2]; + var c_lflag = HEAP32[(argp + 12) >> 2]; + var c_cc = []; + for (var i = 0; i < 32; i++) { + c_cc.push(HEAP8[(argp + i + 17) >> 0]); + } + return stream.tty.ops.ioctl_tcsets(stream.tty, op, { + c_iflag: c_iflag, + c_oflag: c_oflag, + c_cflag: c_cflag, + c_lflag: c_lflag, + c_cc: c_cc, + }); + } + return 0; + } + case 21519: { + if (!stream.tty) return -59; + var argp = SYSCALLS.get(); + HEAP32[argp >> 2] = 0; + checkInt32(0); + return 0; + } + case 21520: { + if (!stream.tty) return -59; + return -28; + } + case 21531: { + var argp = SYSCALLS.get(); + return FS.ioctl(stream, op, argp); + } + case 21523: { + if (!stream.tty) return -59; + if (stream.tty.ops.ioctl_tiocgwinsz) { + var winsize = stream.tty.ops.ioctl_tiocgwinsz( + stream.tty + ); + var argp = SYSCALLS.get(); + HEAP16[argp >> 1] = winsize[0]; + checkInt16(winsize[0]); + HEAP16[(argp + 2) >> 1] = winsize[1]; + checkInt16(winsize[1]); + } + return 0; + } + case 21524: { + if (!stream.tty) return -59; + return 0; + } + case 21515: { + if (!stream.tty) return -59; + return 0; + } + default: + return -28; + } + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) + throw e; + return -e.errno; + } + } + function ___syscall_openat(dirfd, path, flags, varargs) { + SYSCALLS.varargs = varargs; + try { + path = SYSCALLS.getStr(path); + path = SYSCALLS.calculateAt(dirfd, path); + var mode = varargs ? SYSCALLS.get() : 0; + return FS.open(path, flags, mode).fd; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) + throw e; + return -e.errno; + } + } + function ___throw_exception_with_stack_trace(ex) { + var e = new WebAssembly.Exception(getCppExceptionTag(), [ex], { + traceStack: true, + }); + e.message = getExceptionMessage(e); + if (e.stack) { + var arr = e.stack.split('\n'); + arr.splice(1, 1); + e.stack = arr.join('\n'); + } + throw e; + } + var structRegistrations = {}; + function runDestructors(destructors) { + while (destructors.length) { + var ptr = destructors.pop(); + var del = destructors.pop(); + del(ptr); + } + } + function simpleReadValueFromPointer(pointer) { + return this['fromWireType'](HEAP32[pointer >> 2]); + } + var awaitingDependencies = {}; + var registeredTypes = {}; + var typeDependencies = {}; + var InternalError = undefined; + function throwInternalError(message) { + throw new InternalError(message); + } + function whenDependentTypesAreResolved( + myTypes, + dependentTypes, + getTypeConverters + ) { + myTypes.forEach(function (type) { + typeDependencies[type] = dependentTypes; + }); + function onComplete(typeConverters) { + var myTypeConverters = getTypeConverters(typeConverters); + if (myTypeConverters.length !== myTypes.length) { + throwInternalError('Mismatched type converter count'); + } + for (var i = 0; i < myTypes.length; ++i) { + registerType(myTypes[i], myTypeConverters[i]); + } + } + var typeConverters = new Array(dependentTypes.length); + var unregisteredTypes = []; + var registered = 0; + dependentTypes.forEach((dt, i) => { + if (registeredTypes.hasOwnProperty(dt)) { + typeConverters[i] = registeredTypes[dt]; + } else { + unregisteredTypes.push(dt); + if (!awaitingDependencies.hasOwnProperty(dt)) { + awaitingDependencies[dt] = []; + } + awaitingDependencies[dt].push(() => { + typeConverters[i] = registeredTypes[dt]; + ++registered; + if (registered === unregisteredTypes.length) { + onComplete(typeConverters); + } + }); + } + }); + if (0 === unregisteredTypes.length) { + onComplete(typeConverters); + } + } + var __embind_finalize_value_object = function (structType) { + var reg = structRegistrations[structType]; + delete structRegistrations[structType]; + var rawConstructor = reg.rawConstructor; + var rawDestructor = reg.rawDestructor; + var fieldRecords = reg.fields; + var fieldTypes = fieldRecords + .map((field) => field.getterReturnType) + .concat(fieldRecords.map((field) => field.setterArgumentType)); + whenDependentTypesAreResolved( + [structType], + fieldTypes, + (fieldTypes) => { + var fields = {}; + fieldRecords.forEach((field, i) => { + var fieldName = field.fieldName; + var getterReturnType = fieldTypes[i]; + var getter = field.getter; + var getterContext = field.getterContext; + var setterArgumentType = + fieldTypes[i + fieldRecords.length]; + var setter = field.setter; + var setterContext = field.setterContext; + fields[fieldName] = { + read: (ptr) => + getterReturnType['fromWireType']( + getter(getterContext, ptr) + ), + write: (ptr, o) => { + var destructors = []; + setter( + setterContext, + ptr, + setterArgumentType['toWireType']( + destructors, + o + ) + ); + runDestructors(destructors); + }, + }; + }); + return [ + { + name: reg.name, + fromWireType: function (ptr) { + var rv = {}; + for (var i in fields) { + rv[i] = fields[i].read(ptr); + } + rawDestructor(ptr); + return rv; + }, + toWireType: function (destructors, o) { + for (var fieldName in fields) { + if (!(fieldName in o)) { + throw new TypeError( + `Missing field: "${fieldName}"` + ); + } + } + var ptr = rawConstructor(); + for (fieldName in fields) { + fields[fieldName].write(ptr, o[fieldName]); + } + if (destructors !== null) { + destructors.push(rawDestructor, ptr); + } + return ptr; + }, + argPackAdvance: 8, + readValueFromPointer: simpleReadValueFromPointer, + destructorFunction: rawDestructor, + }, + ]; + } + ); + }; + function __embind_register_bigint( + primitiveType, + name, + size, + minRange, + maxRange + ) {} + function getShiftFromSize(size) { + switch (size) { + case 1: + return 0; + case 2: + return 1; + case 4: + return 2; + case 8: + return 3; + default: + throw new TypeError(`Unknown type size: ${size}`); + } + } + function embind_init_charCodes() { + var codes = new Array(256); + for (var i = 0; i < 256; ++i) { + codes[i] = String.fromCharCode(i); + } + embind_charCodes = codes; + } + var embind_charCodes = undefined; + function readLatin1String(ptr) { + var ret = ''; + var c = ptr; + while (HEAPU8[c]) { + ret += embind_charCodes[HEAPU8[c++]]; + } + return ret; + } + var BindingError = undefined; + function throwBindingError(message) { + throw new BindingError(message); + } + function sharedRegisterType(rawType, registeredInstance, options = {}) { + var name = registeredInstance.name; + if (!rawType) { + throwBindingError( + `type "${name}" must have a positive integer typeid pointer` + ); + } + if (registeredTypes.hasOwnProperty(rawType)) { + if (options.ignoreDuplicateRegistrations) { + return; + } else { + throwBindingError(`Cannot register type '${name}' twice`); + } + } + registeredTypes[rawType] = registeredInstance; + delete typeDependencies[rawType]; + if (awaitingDependencies.hasOwnProperty(rawType)) { + var callbacks = awaitingDependencies[rawType]; + delete awaitingDependencies[rawType]; + callbacks.forEach((cb) => cb()); + } + } + function registerType(rawType, registeredInstance, options = {}) { + if (!('argPackAdvance' in registeredInstance)) { + throw new TypeError( + 'registerType registeredInstance requires argPackAdvance' + ); + } + return sharedRegisterType(rawType, registeredInstance, options); + } + function __embind_register_bool( + rawType, + name, + size, + trueValue, + falseValue + ) { + var shift = getShiftFromSize(size); + name = readLatin1String(name); + registerType(rawType, { + name: name, + fromWireType: function (wt) { + return !!wt; + }, + toWireType: function (destructors, o) { + return o ? trueValue : falseValue; + }, + argPackAdvance: 8, + readValueFromPointer: function (pointer) { + var heap; + if (size === 1) { + heap = HEAP8; + } else if (size === 2) { + heap = HEAP16; + } else if (size === 4) { + heap = HEAP32; + } else { + throw new TypeError( + 'Unknown boolean type size: ' + name + ); + } + return this['fromWireType'](heap[pointer >> shift]); + }, + destructorFunction: null, + }); + } + function ClassHandle_isAliasOf(other) { + if (!(this instanceof ClassHandle)) { + return false; + } + if (!(other instanceof ClassHandle)) { + return false; + } + var leftClass = this.$$.ptrType.registeredClass; + var left = this.$$.ptr; + var rightClass = other.$$.ptrType.registeredClass; + var right = other.$$.ptr; + while (leftClass.baseClass) { + left = leftClass.upcast(left); + leftClass = leftClass.baseClass; + } + while (rightClass.baseClass) { + right = rightClass.upcast(right); + rightClass = rightClass.baseClass; + } + return leftClass === rightClass && left === right; + } + function shallowCopyInternalPointer(o) { + return { + count: o.count, + deleteScheduled: o.deleteScheduled, + preservePointerOnDelete: o.preservePointerOnDelete, + ptr: o.ptr, + ptrType: o.ptrType, + smartPtr: o.smartPtr, + smartPtrType: o.smartPtrType, + }; + } + function throwInstanceAlreadyDeleted(obj) { + function getInstanceTypeName(handle) { + return handle.$$.ptrType.registeredClass.name; + } + throwBindingError( + getInstanceTypeName(obj) + ' instance already deleted' + ); + } + var finalizationRegistry = false; + function detachFinalizer(handle) {} + function runDestructor($$) { + if ($$.smartPtr) { + $$.smartPtrType.rawDestructor($$.smartPtr); + } else { + $$.ptrType.registeredClass.rawDestructor($$.ptr); + } + } + function releaseClassHandle($$) { + $$.count.value -= 1; + var toDelete = 0 === $$.count.value; + if (toDelete) { + runDestructor($$); + } + } + function downcastPointer(ptr, ptrClass, desiredClass) { + if (ptrClass === desiredClass) { + return ptr; + } + if (undefined === desiredClass.baseClass) { + return null; + } + var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass); + if (rv === null) { + return null; + } + return desiredClass.downcast(rv); + } + var registeredPointers = {}; + function getInheritedInstanceCount() { + return Object.keys(registeredInstances).length; + } + function getLiveInheritedInstances() { + var rv = []; + for (var k in registeredInstances) { + if (registeredInstances.hasOwnProperty(k)) { + rv.push(registeredInstances[k]); + } + } + return rv; + } + var deletionQueue = []; + function flushPendingDeletes() { + while (deletionQueue.length) { + var obj = deletionQueue.pop(); + obj.$$.deleteScheduled = false; + obj['delete'](); + } + } + var delayFunction = undefined; + function setDelayFunction(fn) { + delayFunction = fn; + if (deletionQueue.length && delayFunction) { + delayFunction(flushPendingDeletes); + } + } + function init_embind() { + Module['getInheritedInstanceCount'] = getInheritedInstanceCount; + Module['getLiveInheritedInstances'] = getLiveInheritedInstances; + Module['flushPendingDeletes'] = flushPendingDeletes; + Module['setDelayFunction'] = setDelayFunction; + } + var registeredInstances = {}; + function getBasestPointer(class_, ptr) { + if (ptr === undefined) { + throwBindingError('ptr should not be undefined'); + } + while (class_.baseClass) { + ptr = class_.upcast(ptr); + class_ = class_.baseClass; + } + return ptr; + } + function getInheritedInstance(class_, ptr) { + ptr = getBasestPointer(class_, ptr); + return registeredInstances[ptr]; + } + function makeClassHandle(prototype, record) { + if (!record.ptrType || !record.ptr) { + throwInternalError('makeClassHandle requires ptr and ptrType'); + } + var hasSmartPtrType = !!record.smartPtrType; + var hasSmartPtr = !!record.smartPtr; + if (hasSmartPtrType !== hasSmartPtr) { + throwInternalError( + 'Both smartPtrType and smartPtr must be specified' + ); + } + record.count = { value: 1 }; + return attachFinalizer( + Object.create(prototype, { $$: { value: record } }) + ); + } + function RegisteredPointer_fromWireType(ptr) { + var rawPointer = this.getPointee(ptr); + if (!rawPointer) { + this.destructor(ptr); + return null; + } + var registeredInstance = getInheritedInstance( + this.registeredClass, + rawPointer + ); + if (undefined !== registeredInstance) { + if (0 === registeredInstance.$$.count.value) { + registeredInstance.$$.ptr = rawPointer; + registeredInstance.$$.smartPtr = ptr; + return registeredInstance['clone'](); + } else { + var rv = registeredInstance['clone'](); + this.destructor(ptr); + return rv; + } + } + function makeDefaultHandle() { + if (this.isSmartPointer) { + return makeClassHandle( + this.registeredClass.instancePrototype, + { + ptrType: this.pointeeType, + ptr: rawPointer, + smartPtrType: this, + smartPtr: ptr, + } + ); + } else { + return makeClassHandle( + this.registeredClass.instancePrototype, + { + ptrType: this, + ptr: ptr, + } + ); + } + } + var actualType = this.registeredClass.getActualType(rawPointer); + var registeredPointerRecord = registeredPointers[actualType]; + if (!registeredPointerRecord) { + return makeDefaultHandle.call(this); + } + var toType; + if (this.isConst) { + toType = registeredPointerRecord.constPointerType; + } else { + toType = registeredPointerRecord.pointerType; + } + var dp = downcastPointer( + rawPointer, + this.registeredClass, + toType.registeredClass + ); + if (dp === null) { + return makeDefaultHandle.call(this); + } + if (this.isSmartPointer) { + return makeClassHandle( + toType.registeredClass.instancePrototype, + { + ptrType: toType, + ptr: dp, + smartPtrType: this, + smartPtr: ptr, + } + ); + } else { + return makeClassHandle( + toType.registeredClass.instancePrototype, + { + ptrType: toType, + ptr: dp, + } + ); + } + } + var attachFinalizer = function (handle) { + if ('undefined' === typeof FinalizationRegistry) { + attachFinalizer = (handle) => handle; + return handle; + } + finalizationRegistry = new FinalizationRegistry((info) => { + console.warn(info.leakWarning.stack.replace(/^Error: /, '')); + releaseClassHandle(info.$$); + }); + attachFinalizer = (handle) => { + var $$ = handle.$$; + var hasSmartPtr = !!$$.smartPtr; + if (hasSmartPtr) { + var info = { $$: $$ }; + var cls = $$.ptrType.registeredClass; + info.leakWarning = new Error( + `Embind found a leaked C++ instance ${ + cls.name + } <${ptrToString($$.ptr)}>.\n` + + "We'll free it automatically in this case, but this functionality is not reliable across various environments.\n" + + "Make sure to invoke .delete() manually once you're done with the instance instead.\n" + + 'Originally allocated' + ); + if ('captureStackTrace' in Error) { + Error.captureStackTrace( + info.leakWarning, + RegisteredPointer_fromWireType + ); + } + finalizationRegistry.register(handle, info, handle); + } + return handle; + }; + detachFinalizer = (handle) => + finalizationRegistry.unregister(handle); + return attachFinalizer(handle); + }; + function ClassHandle_clone() { + if (!this.$$.ptr) { + throwInstanceAlreadyDeleted(this); + } + if (this.$$.preservePointerOnDelete) { + this.$$.count.value += 1; + return this; + } else { + var clone = attachFinalizer( + Object.create(Object.getPrototypeOf(this), { + $$: { value: shallowCopyInternalPointer(this.$$) }, + }) + ); + clone.$$.count.value += 1; + clone.$$.deleteScheduled = false; + return clone; + } + } + function ClassHandle_delete() { + if (!this.$$.ptr) { + throwInstanceAlreadyDeleted(this); + } + if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { + throwBindingError('Object already scheduled for deletion'); + } + detachFinalizer(this); + releaseClassHandle(this.$$); + if (!this.$$.preservePointerOnDelete) { + this.$$.smartPtr = undefined; + this.$$.ptr = undefined; + } + } + function ClassHandle_isDeleted() { + return !this.$$.ptr; + } + function ClassHandle_deleteLater() { + if (!this.$$.ptr) { + throwInstanceAlreadyDeleted(this); + } + if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { + throwBindingError('Object already scheduled for deletion'); + } + deletionQueue.push(this); + if (deletionQueue.length === 1 && delayFunction) { + delayFunction(flushPendingDeletes); + } + this.$$.deleteScheduled = true; + return this; + } + function init_ClassHandle() { + ClassHandle.prototype['isAliasOf'] = ClassHandle_isAliasOf; + ClassHandle.prototype['clone'] = ClassHandle_clone; + ClassHandle.prototype['delete'] = ClassHandle_delete; + ClassHandle.prototype['isDeleted'] = ClassHandle_isDeleted; + ClassHandle.prototype['deleteLater'] = ClassHandle_deleteLater; + } + function ClassHandle() {} + var char_0 = 48; + var char_9 = 57; + function makeLegalFunctionName(name) { + if (undefined === name) { + return '_unknown'; + } + name = name.replace(/[^a-zA-Z0-9_]/g, '$'); + var f = name.charCodeAt(0); + if (f >= char_0 && f <= char_9) { + return `_${name}`; + } + return name; + } + function createNamedFunction(name, body) { + name = makeLegalFunctionName(name); + return { + [name]: function () { + return body.apply(this, arguments); + }, + }[name]; + } + function ensureOverloadTable(proto, methodName, humanName) { + if (undefined === proto[methodName].overloadTable) { + var prevFunc = proto[methodName]; + proto[methodName] = function () { + if ( + !proto[methodName].overloadTable.hasOwnProperty( + arguments.length + ) + ) { + throwBindingError( + `Function '${humanName}' called with an invalid number of arguments (${arguments.length}) - expects one of (${proto[methodName].overloadTable})!` + ); + } + return proto[methodName].overloadTable[ + arguments.length + ].apply(this, arguments); + }; + proto[methodName].overloadTable = []; + proto[methodName].overloadTable[prevFunc.argCount] = prevFunc; + } + } + function exposePublicSymbol(name, value, numArguments) { + if (Module.hasOwnProperty(name)) { + if ( + undefined === numArguments || + (undefined !== Module[name].overloadTable && + undefined !== Module[name].overloadTable[numArguments]) + ) { + throwBindingError( + `Cannot register public name '${name}' twice` + ); + } + ensureOverloadTable(Module, name, name); + if (Module.hasOwnProperty(numArguments)) { + throwBindingError( + `Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!` + ); + } + Module[name].overloadTable[numArguments] = value; + } else { + Module[name] = value; + if (undefined !== numArguments) { + Module[name].numArguments = numArguments; + } + } + } + function RegisteredClass( + name, + constructor, + instancePrototype, + rawDestructor, + baseClass, + getActualType, + upcast, + downcast + ) { + this.name = name; + this.constructor = constructor; + this.instancePrototype = instancePrototype; + this.rawDestructor = rawDestructor; + this.baseClass = baseClass; + this.getActualType = getActualType; + this.upcast = upcast; + this.downcast = downcast; + this.pureVirtualFunctions = []; + } + function upcastPointer(ptr, ptrClass, desiredClass) { + while (ptrClass !== desiredClass) { + if (!ptrClass.upcast) { + throwBindingError( + `Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}` + ); + } + ptr = ptrClass.upcast(ptr); + ptrClass = ptrClass.baseClass; + } + return ptr; + } + function constNoSmartPtrRawPointerToWireType(destructors, handle) { + if (handle === null) { + if (this.isReference) { + throwBindingError(`null is not a valid ${this.name}`); + } + return 0; + } + if (!handle.$$) { + throwBindingError( + `Cannot pass "${embindRepr(handle)}" as a ${this.name}` + ); + } + if (!handle.$$.ptr) { + throwBindingError( + `Cannot pass deleted object as a pointer of type ${this.name}` + ); + } + var handleClass = handle.$$.ptrType.registeredClass; + var ptr = upcastPointer( + handle.$$.ptr, + handleClass, + this.registeredClass + ); + return ptr; + } + function genericPointerToWireType(destructors, handle) { + var ptr; + if (handle === null) { + if (this.isReference) { + throwBindingError(`null is not a valid ${this.name}`); + } + if (this.isSmartPointer) { + ptr = this.rawConstructor(); + if (destructors !== null) { + destructors.push(this.rawDestructor, ptr); + } + return ptr; + } else { + return 0; + } + } + if (!handle.$$) { + throwBindingError( + `Cannot pass "${embindRepr(handle)}" as a ${this.name}` + ); + } + if (!handle.$$.ptr) { + throwBindingError( + `Cannot pass deleted object as a pointer of type ${this.name}` + ); + } + if (!this.isConst && handle.$$.ptrType.isConst) { + throwBindingError( + `Cannot convert argument of type ${ + handle.$$.smartPtrType + ? handle.$$.smartPtrType.name + : handle.$$.ptrType.name + } to parameter type ${this.name}` + ); + } + var handleClass = handle.$$.ptrType.registeredClass; + ptr = upcastPointer( + handle.$$.ptr, + handleClass, + this.registeredClass + ); + if (this.isSmartPointer) { + if (undefined === handle.$$.smartPtr) { + throwBindingError( + 'Passing raw pointer to smart pointer is illegal' + ); + } + switch (this.sharingPolicy) { + case 0: + if (handle.$$.smartPtrType === this) { + ptr = handle.$$.smartPtr; + } else { + throwBindingError( + `Cannot convert argument of type ${ + handle.$$.smartPtrType + ? handle.$$.smartPtrType.name + : handle.$$.ptrType.name + } to parameter type ${this.name}` + ); + } + break; + case 1: + ptr = handle.$$.smartPtr; + break; + case 2: + if (handle.$$.smartPtrType === this) { + ptr = handle.$$.smartPtr; + } else { + var clonedHandle = handle['clone'](); + ptr = this.rawShare( + ptr, + Emval.toHandle(function () { + clonedHandle['delete'](); + }) + ); + if (destructors !== null) { + destructors.push(this.rawDestructor, ptr); + } + } + break; + default: + throwBindingError('Unsupporting sharing policy'); + } + } + return ptr; + } + function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) { + if (handle === null) { + if (this.isReference) { + throwBindingError(`null is not a valid ${this.name}`); + } + return 0; + } + if (!handle.$$) { + throwBindingError( + `Cannot pass "${embindRepr(handle)}" as a ${this.name}` + ); + } + if (!handle.$$.ptr) { + throwBindingError( + `Cannot pass deleted object as a pointer of type ${this.name}` + ); + } + if (handle.$$.ptrType.isConst) { + throwBindingError( + `Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}` + ); + } + var handleClass = handle.$$.ptrType.registeredClass; + var ptr = upcastPointer( + handle.$$.ptr, + handleClass, + this.registeredClass + ); + return ptr; + } + function RegisteredPointer_getPointee(ptr) { + if (this.rawGetPointee) { + ptr = this.rawGetPointee(ptr); + } + return ptr; + } + function RegisteredPointer_destructor(ptr) { + if (this.rawDestructor) { + this.rawDestructor(ptr); + } + } + function RegisteredPointer_deleteObject(handle) { + if (handle !== null) { + handle['delete'](); + } + } + function init_RegisteredPointer() { + RegisteredPointer.prototype.getPointee = + RegisteredPointer_getPointee; + RegisteredPointer.prototype.destructor = + RegisteredPointer_destructor; + RegisteredPointer.prototype['argPackAdvance'] = 8; + RegisteredPointer.prototype['readValueFromPointer'] = + simpleReadValueFromPointer; + RegisteredPointer.prototype['deleteObject'] = + RegisteredPointer_deleteObject; + RegisteredPointer.prototype['fromWireType'] = + RegisteredPointer_fromWireType; + } + function RegisteredPointer( + name, + registeredClass, + isReference, + isConst, + isSmartPointer, + pointeeType, + sharingPolicy, + rawGetPointee, + rawConstructor, + rawShare, + rawDestructor + ) { + this.name = name; + this.registeredClass = registeredClass; + this.isReference = isReference; + this.isConst = isConst; + this.isSmartPointer = isSmartPointer; + this.pointeeType = pointeeType; + this.sharingPolicy = sharingPolicy; + this.rawGetPointee = rawGetPointee; + this.rawConstructor = rawConstructor; + this.rawShare = rawShare; + this.rawDestructor = rawDestructor; + if (!isSmartPointer && registeredClass.baseClass === undefined) { + if (isConst) { + this['toWireType'] = constNoSmartPtrRawPointerToWireType; + this.destructorFunction = null; + } else { + this['toWireType'] = nonConstNoSmartPtrRawPointerToWireType; + this.destructorFunction = null; + } + } else { + this['toWireType'] = genericPointerToWireType; + } + } + function replacePublicSymbol(name, value, numArguments) { + if (!Module.hasOwnProperty(name)) { + throwInternalError('Replacing nonexistant public symbol'); + } + if ( + undefined !== Module[name].overloadTable && + undefined !== numArguments + ) { + Module[name].overloadTable[numArguments] = value; + } else { + Module[name] = value; + Module[name].argCount = numArguments; + } + } + var dynCallLegacy = (sig, ptr, args) => { + assert( + 'dynCall_' + sig in Module, + `bad function pointer type - dynCall function not found for sig '${sig}'` + ); + if (args && args.length) { + assert( + args.length === sig.substring(1).replace(/j/g, '--').length + ); + } else { + assert(sig.length == 1); + } + var f = Module['dynCall_' + sig]; + return args && args.length + ? f.apply(null, [ptr].concat(args)) + : f.call(null, ptr); + }; + var wasmTableMirror = []; + var getWasmTableEntry = (funcPtr) => { + var func = wasmTableMirror[funcPtr]; + if (!func) { + if (funcPtr >= wasmTableMirror.length) + wasmTableMirror.length = funcPtr + 1; + wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr); + } + assert( + wasmTable.get(funcPtr) == func, + 'JavaScript-side Wasm function table mirror is out of date!' + ); + return func; + }; + var dynCall = (sig, ptr, args) => { + if (sig.includes('j')) { + return dynCallLegacy(sig, ptr, args); + } + assert( + getWasmTableEntry(ptr), + `missing table entry in dynCall: ${ptr}` + ); + var rtn = getWasmTableEntry(ptr).apply(null, args); + return rtn; + }; + var getDynCaller = (sig, ptr) => { + assert( + sig.includes('j') || sig.includes('p'), + 'getDynCaller should only be called with i64 sigs' + ); + var argCache = []; + return function () { + argCache.length = 0; + Object.assign(argCache, arguments); + return dynCall(sig, ptr, argCache); + }; + }; + function embind__requireFunction(signature, rawFunction) { + signature = readLatin1String(signature); + function makeDynCaller() { + if (signature.includes('j')) { + return getDynCaller(signature, rawFunction); + } + return getWasmTableEntry(rawFunction); + } + var fp = makeDynCaller(); + if (typeof fp != 'function') { + throwBindingError( + `unknown function pointer with signature ${signature}: ${rawFunction}` + ); + } + return fp; + } + function extendError(baseErrorType, errorName) { + var errorClass = createNamedFunction(errorName, function (message) { + this.name = errorName; + this.message = message; + var stack = new Error(message).stack; + if (stack !== undefined) { + this.stack = + this.toString() + + '\n' + + stack.replace(/^Error(:[^\n]*)?\n/, ''); + } + }); + errorClass.prototype = Object.create(baseErrorType.prototype); + errorClass.prototype.constructor = errorClass; + errorClass.prototype.toString = function () { + if (this.message === undefined) { + return this.name; + } else { + return `${this.name}: ${this.message}`; + } + }; + return errorClass; + } + var UnboundTypeError = undefined; + function getTypeName(type) { + var ptr = ___getTypeName(type); + var rv = readLatin1String(ptr); + _free(ptr); + return rv; + } + function throwUnboundTypeError(message, types) { + var unboundTypes = []; + var seen = {}; + function visit(type) { + if (seen[type]) { + return; + } + if (registeredTypes[type]) { + return; + } + if (typeDependencies[type]) { + typeDependencies[type].forEach(visit); + return; + } + unboundTypes.push(type); + seen[type] = true; + } + types.forEach(visit); + throw new UnboundTypeError( + `${message}: ` + unboundTypes.map(getTypeName).join([', ']) + ); + } + function __embind_register_class( + rawType, + rawPointerType, + rawConstPointerType, + baseClassRawType, + getActualTypeSignature, + getActualType, + upcastSignature, + upcast, + downcastSignature, + downcast, + name, + destructorSignature, + rawDestructor + ) { + name = readLatin1String(name); + getActualType = embind__requireFunction( + getActualTypeSignature, + getActualType + ); + if (upcast) { + upcast = embind__requireFunction(upcastSignature, upcast); + } + if (downcast) { + downcast = embind__requireFunction(downcastSignature, downcast); + } + rawDestructor = embind__requireFunction( + destructorSignature, + rawDestructor + ); + var legalFunctionName = makeLegalFunctionName(name); + exposePublicSymbol(legalFunctionName, function () { + throwUnboundTypeError( + `Cannot construct ${name} due to unbound types`, + [baseClassRawType] + ); + }); + whenDependentTypesAreResolved( + [rawType, rawPointerType, rawConstPointerType], + baseClassRawType ? [baseClassRawType] : [], + function (base) { + base = base[0]; + var baseClass; + var basePrototype; + if (baseClassRawType) { + baseClass = base.registeredClass; + basePrototype = baseClass.instancePrototype; + } else { + basePrototype = ClassHandle.prototype; + } + var constructor = createNamedFunction( + legalFunctionName, + function () { + if ( + Object.getPrototypeOf(this) !== + instancePrototype + ) { + throw new BindingError( + "Use 'new' to construct " + name + ); + } + if ( + undefined === registeredClass.constructor_body + ) { + throw new BindingError( + name + ' has no accessible constructor' + ); + } + var body = + registeredClass.constructor_body[ + arguments.length + ]; + if (undefined === body) { + throw new BindingError( + `Tried to invoke ctor of ${name} with invalid number of parameters (${ + arguments.length + }) - expected (${Object.keys( + registeredClass.constructor_body + ).toString()}) parameters instead!` + ); + } + return body.apply(this, arguments); + } + ); + var instancePrototype = Object.create(basePrototype, { + constructor: { value: constructor }, + }); + constructor.prototype = instancePrototype; + var registeredClass = new RegisteredClass( + name, + constructor, + instancePrototype, + rawDestructor, + baseClass, + getActualType, + upcast, + downcast + ); + if (registeredClass.baseClass) { + if ( + registeredClass.baseClass.__derivedClasses === + undefined + ) { + registeredClass.baseClass.__derivedClasses = []; + } + registeredClass.baseClass.__derivedClasses.push( + registeredClass + ); + } + var referenceConverter = new RegisteredPointer( + name, + registeredClass, + true, + false, + false + ); + var pointerConverter = new RegisteredPointer( + name + '*', + registeredClass, + false, + false, + false + ); + var constPointerConverter = new RegisteredPointer( + name + ' const*', + registeredClass, + false, + true, + false + ); + registeredPointers[rawType] = { + pointerType: pointerConverter, + constPointerType: constPointerConverter, + }; + replacePublicSymbol(legalFunctionName, constructor); + return [ + referenceConverter, + pointerConverter, + constPointerConverter, + ]; + } + ); + } + function heap32VectorToArray(count, firstElement) { + var array = []; + for (var i = 0; i < count; i++) { + array.push(HEAPU32[(firstElement + i * 4) >> 2]); + } + return array; + } + function newFunc(constructor, argumentList) { + if (!(constructor instanceof Function)) { + throw new TypeError( + `new_ called with constructor type ${typeof constructor} which is not a function` + ); + } + var dummy = createNamedFunction( + constructor.name || 'unknownFunctionName', + function () {} + ); + dummy.prototype = constructor.prototype; + var obj = new dummy(); + var r = constructor.apply(obj, argumentList); + return r instanceof Object ? r : obj; + } + function craftInvokerFunction( + humanName, + argTypes, + classType, + cppInvokerFunc, + cppTargetFunc, + isAsync + ) { + var argCount = argTypes.length; + if (argCount < 2) { + throwBindingError( + "argTypes array size mismatch! Must at least get return value and 'this' types!" + ); + } + assert(!isAsync, 'Async bindings are only supported with JSPI.'); + var isClassMethodFunc = argTypes[1] !== null && classType !== null; + var needsDestructorStack = false; + for (var i = 1; i < argTypes.length; ++i) { + if ( + argTypes[i] !== null && + argTypes[i].destructorFunction === undefined + ) { + needsDestructorStack = true; + break; + } + } + var returns = argTypes[0].name !== 'void'; + var argsList = ''; + var argsListWired = ''; + for (var i = 0; i < argCount - 2; ++i) { + argsList += (i !== 0 ? ', ' : '') + 'arg' + i; + argsListWired += (i !== 0 ? ', ' : '') + 'arg' + i + 'Wired'; + } + var invokerFnBody = `\n return function ${makeLegalFunctionName( + humanName + )}(${argsList}) {\n if (arguments.length !== ${ + argCount - 2 + }) {\n throwBindingError('function ${humanName} called with ${ + arguments.length + } arguments, expected ${argCount - 2} args!');\n }`; + if (needsDestructorStack) { + invokerFnBody += 'var destructors = [];\n'; + } + var dtorStack = needsDestructorStack ? 'destructors' : 'null'; + var args1 = [ + 'throwBindingError', + 'invoker', + 'fn', + 'runDestructors', + 'retType', + 'classParam', + ]; + var args2 = [ + throwBindingError, + cppInvokerFunc, + cppTargetFunc, + runDestructors, + argTypes[0], + argTypes[1], + ]; + if (isClassMethodFunc) { + invokerFnBody += + 'var thisWired = classParam.toWireType(' + + dtorStack + + ', this);\n'; + } + for (var i = 0; i < argCount - 2; ++i) { + invokerFnBody += + 'var arg' + + i + + 'Wired = argType' + + i + + '.toWireType(' + + dtorStack + + ', arg' + + i + + '); // ' + + argTypes[i + 2].name + + '\n'; + args1.push('argType' + i); + args2.push(argTypes[i + 2]); + } + if (isClassMethodFunc) { + argsListWired = + 'thisWired' + + (argsListWired.length > 0 ? ', ' : '') + + argsListWired; + } + invokerFnBody += + (returns || isAsync ? 'var rv = ' : '') + + 'invoker(fn' + + (argsListWired.length > 0 ? ', ' : '') + + argsListWired + + ');\n'; + if (needsDestructorStack) { + invokerFnBody += 'runDestructors(destructors);\n'; + } else { + for ( + var i = isClassMethodFunc ? 1 : 2; + i < argTypes.length; + ++i + ) { + var paramName = + i === 1 ? 'thisWired' : 'arg' + (i - 2) + 'Wired'; + if (argTypes[i].destructorFunction !== null) { + invokerFnBody += + paramName + + '_dtor(' + + paramName + + '); // ' + + argTypes[i].name + + '\n'; + args1.push(paramName + '_dtor'); + args2.push(argTypes[i].destructorFunction); + } + } + } + if (returns) { + invokerFnBody += + 'var ret = retType.fromWireType(rv);\n' + 'return ret;\n'; + } else { + } + invokerFnBody += '}\n'; + args1.push(invokerFnBody); + return newFunc(Function, args1).apply(null, args2); + } + function __embind_register_class_constructor( + rawClassType, + argCount, + rawArgTypesAddr, + invokerSignature, + invoker, + rawConstructor + ) { + assert(argCount > 0); + var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); + invoker = embind__requireFunction(invokerSignature, invoker); + whenDependentTypesAreResolved( + [], + [rawClassType], + function (classType) { + classType = classType[0]; + var humanName = `constructor ${classType.name}`; + if ( + undefined === classType.registeredClass.constructor_body + ) { + classType.registeredClass.constructor_body = []; + } + if ( + undefined !== + classType.registeredClass.constructor_body[argCount - 1] + ) { + throw new BindingError( + `Cannot register multiple constructors with identical number of parameters (${ + argCount - 1 + }) for class '${ + classType.name + }'! Overload resolution is currently only performed using the parameter count, not actual type info!` + ); + } + classType.registeredClass.constructor_body[argCount - 1] = + () => { + throwUnboundTypeError( + `Cannot construct ${classType.name} due to unbound types`, + rawArgTypes + ); + }; + whenDependentTypesAreResolved( + [], + rawArgTypes, + function (argTypes) { + argTypes.splice(1, 0, null); + classType.registeredClass.constructor_body[ + argCount - 1 + ] = craftInvokerFunction( + humanName, + argTypes, + null, + invoker, + rawConstructor + ); + return []; + } + ); + return []; + } + ); + } + function __embind_register_class_function( + rawClassType, + methodName, + argCount, + rawArgTypesAddr, + invokerSignature, + rawInvoker, + context, + isPureVirtual, + isAsync + ) { + var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); + methodName = readLatin1String(methodName); + rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); + whenDependentTypesAreResolved( + [], + [rawClassType], + function (classType) { + classType = classType[0]; + var humanName = `${classType.name}.${methodName}`; + if (methodName.startsWith('@@')) { + methodName = Symbol[methodName.substring(2)]; + } + if (isPureVirtual) { + classType.registeredClass.pureVirtualFunctions.push( + methodName + ); + } + function unboundTypesHandler() { + throwUnboundTypeError( + `Cannot call ${humanName} due to unbound types`, + rawArgTypes + ); + } + var proto = classType.registeredClass.instancePrototype; + var method = proto[methodName]; + if ( + undefined === method || + (undefined === method.overloadTable && + method.className !== classType.name && + method.argCount === argCount - 2) + ) { + unboundTypesHandler.argCount = argCount - 2; + unboundTypesHandler.className = classType.name; + proto[methodName] = unboundTypesHandler; + } else { + ensureOverloadTable(proto, methodName, humanName); + proto[methodName].overloadTable[argCount - 2] = + unboundTypesHandler; + } + whenDependentTypesAreResolved( + [], + rawArgTypes, + function (argTypes) { + var memberFunction = craftInvokerFunction( + humanName, + argTypes, + classType, + rawInvoker, + context, + isAsync + ); + if (undefined === proto[methodName].overloadTable) { + memberFunction.argCount = argCount - 2; + proto[methodName] = memberFunction; + } else { + proto[methodName].overloadTable[argCount - 2] = + memberFunction; + } + return []; + } + ); + return []; + } + ); + } + function handleAllocatorInit() { + Object.assign(HandleAllocator.prototype, { + get(id) { + assert( + this.allocated[id] !== undefined, + `invalid handle: ${id}` + ); + return this.allocated[id]; + }, + has(id) { + return this.allocated[id] !== undefined; + }, + allocate(handle) { + var id = this.freelist.pop() || this.allocated.length; + this.allocated[id] = handle; + return id; + }, + free(id) { + assert(this.allocated[id] !== undefined); + this.allocated[id] = undefined; + this.freelist.push(id); + }, + }); + } + function HandleAllocator() { + this.allocated = [undefined]; + this.freelist = []; + } + var emval_handles = new HandleAllocator(); + function __emval_decref(handle) { + if ( + handle >= emval_handles.reserved && + 0 === --emval_handles.get(handle).refcount + ) { + emval_handles.free(handle); + } + } + function count_emval_handles() { + var count = 0; + for ( + var i = emval_handles.reserved; + i < emval_handles.allocated.length; + ++i + ) { + if (emval_handles.allocated[i] !== undefined) { + ++count; + } + } + return count; + } + function init_emval() { + emval_handles.allocated.push( + { value: undefined }, + { value: null }, + { value: true }, + { value: false } + ); + emval_handles.reserved = emval_handles.allocated.length; + Module['count_emval_handles'] = count_emval_handles; + } + var Emval = { + toValue: (handle) => { + if (!handle) { + throwBindingError( + 'Cannot use deleted val. handle = ' + handle + ); + } + return emval_handles.get(handle).value; + }, + toHandle: (value) => { + switch (value) { + case undefined: + return 1; + case null: + return 2; + case true: + return 3; + case false: + return 4; + default: { + return emval_handles.allocate({ + refcount: 1, + value: value, + }); + } + } + }, + }; + function __embind_register_emval(rawType, name) { + name = readLatin1String(name); + registerType(rawType, { + name: name, + fromWireType: function (handle) { + var rv = Emval.toValue(handle); + __emval_decref(handle); + return rv; + }, + toWireType: function (destructors, value) { + return Emval.toHandle(value); + }, + argPackAdvance: 8, + readValueFromPointer: simpleReadValueFromPointer, + destructorFunction: null, + }); + } + function embindRepr(v) { + if (v === null) { + return 'null'; + } + var t = typeof v; + if (t === 'object' || t === 'array' || t === 'function') { + return v.toString(); + } else { + return '' + v; + } + } + function floatReadValueFromPointer(name, shift) { + switch (shift) { + case 2: + return function (pointer) { + return this['fromWireType'](HEAPF32[pointer >> 2]); + }; + case 3: + return function (pointer) { + return this['fromWireType'](HEAPF64[pointer >> 3]); + }; + default: + throw new TypeError('Unknown float type: ' + name); + } + } + function __embind_register_float(rawType, name, size) { + var shift = getShiftFromSize(size); + name = readLatin1String(name); + registerType(rawType, { + name: name, + fromWireType: function (value) { + return value; + }, + toWireType: function (destructors, value) { + if (typeof value != 'number' && typeof value != 'boolean') { + throw new TypeError( + `Cannot convert ${embindRepr(value)} to ${ + this.name + }` + ); + } + return value; + }, + argPackAdvance: 8, + readValueFromPointer: floatReadValueFromPointer(name, shift), + destructorFunction: null, + }); + } + function __embind_register_function( + name, + argCount, + rawArgTypesAddr, + signature, + rawInvoker, + fn, + isAsync + ) { + var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr); + name = readLatin1String(name); + rawInvoker = embind__requireFunction(signature, rawInvoker); + exposePublicSymbol( + name, + function () { + throwUnboundTypeError( + `Cannot call ${name} due to unbound types`, + argTypes + ); + }, + argCount - 1 + ); + whenDependentTypesAreResolved([], argTypes, function (argTypes) { + var invokerArgsArray = [argTypes[0], null].concat( + argTypes.slice(1) + ); + replacePublicSymbol( + name, + craftInvokerFunction( + name, + invokerArgsArray, + null, + rawInvoker, + fn, + isAsync + ), + argCount - 1 + ); + return []; + }); + } + function integerReadValueFromPointer(name, shift, signed) { + switch (shift) { + case 0: + return signed + ? function readS8FromPointer(pointer) { + return HEAP8[pointer]; + } + : function readU8FromPointer(pointer) { + return HEAPU8[pointer]; + }; + case 1: + return signed + ? function readS16FromPointer(pointer) { + return HEAP16[pointer >> 1]; + } + : function readU16FromPointer(pointer) { + return HEAPU16[pointer >> 1]; + }; + case 2: + return signed + ? function readS32FromPointer(pointer) { + return HEAP32[pointer >> 2]; + } + : function readU32FromPointer(pointer) { + return HEAPU32[pointer >> 2]; + }; + default: + throw new TypeError('Unknown integer type: ' + name); + } + } + function __embind_register_integer( + primitiveType, + name, + size, + minRange, + maxRange + ) { + name = readLatin1String(name); + if (maxRange === -1) { + maxRange = 4294967295; + } + var shift = getShiftFromSize(size); + var fromWireType = (value) => value; + if (minRange === 0) { + var bitshift = 32 - 8 * size; + fromWireType = (value) => (value << bitshift) >>> bitshift; + } + var isUnsignedType = name.includes('unsigned'); + var checkAssertions = (value, toTypeName) => { + if (typeof value != 'number' && typeof value != 'boolean') { + throw new TypeError( + `Cannot convert "${embindRepr(value)}" to ${toTypeName}` + ); + } + if (value < minRange || value > maxRange) { + throw new TypeError( + `Passing a number "${embindRepr( + value + )}" from JS side to C/C++ side to an argument of type "${name}", which is outside the valid range [${minRange}, ${maxRange}]!` + ); + } + }; + var toWireType; + if (isUnsignedType) { + toWireType = function (destructors, value) { + checkAssertions(value, this.name); + return value >>> 0; + }; + } else { + toWireType = function (destructors, value) { + checkAssertions(value, this.name); + return value; + }; + } + registerType(primitiveType, { + name: name, + fromWireType: fromWireType, + toWireType: toWireType, + argPackAdvance: 8, + readValueFromPointer: integerReadValueFromPointer( + name, + shift, + minRange !== 0 + ), + destructorFunction: null, + }); + } + function __embind_register_memory_view(rawType, dataTypeIndex, name) { + var typeMapping = [ + Int8Array, + Uint8Array, + Int16Array, + Uint16Array, + Int32Array, + Uint32Array, + Float32Array, + Float64Array, + ]; + var TA = typeMapping[dataTypeIndex]; + function decodeMemoryView(handle) { + handle = handle >> 2; + var heap = HEAPU32; + var size = heap[handle]; + var data = heap[handle + 1]; + return new TA(heap.buffer, data, size); + } + name = readLatin1String(name); + registerType( + rawType, + { + name: name, + fromWireType: decodeMemoryView, + argPackAdvance: 8, + readValueFromPointer: decodeMemoryView, + }, + { ignoreDuplicateRegistrations: true } + ); + } + function __embind_register_std_string(rawType, name) { + name = readLatin1String(name); + var stdStringIsUTF8 = name === 'std::string'; + registerType(rawType, { + name: name, + fromWireType: function (value) { + var length = HEAPU32[value >> 2]; + var payload = value + 4; + var str; + if (stdStringIsUTF8) { + var decodeStartPtr = payload; + for (var i = 0; i <= length; ++i) { + var currentBytePtr = payload + i; + if (i == length || HEAPU8[currentBytePtr] == 0) { + var maxRead = currentBytePtr - decodeStartPtr; + var stringSegment = UTF8ToString( + decodeStartPtr, + maxRead + ); + if (str === undefined) { + str = stringSegment; + } else { + str += String.fromCharCode(0); + str += stringSegment; + } + decodeStartPtr = currentBytePtr + 1; + } + } + } else { + var a = new Array(length); + for (var i = 0; i < length; ++i) { + a[i] = String.fromCharCode(HEAPU8[payload + i]); + } + str = a.join(''); + } + _free(value); + return str; + }, + toWireType: function (destructors, value) { + if (value instanceof ArrayBuffer) { + value = new Uint8Array(value); + } + var length; + var valueIsOfTypeString = typeof value == 'string'; + if ( + !( + valueIsOfTypeString || + value instanceof Uint8Array || + value instanceof Uint8ClampedArray || + value instanceof Int8Array + ) + ) { + throwBindingError( + 'Cannot pass non-string to std::string' + ); + } + if (stdStringIsUTF8 && valueIsOfTypeString) { + length = lengthBytesUTF8(value); + } else { + length = value.length; + } + var base = _malloc(4 + length + 1); + var ptr = base + 4; + HEAPU32[base >> 2] = length; + checkInt32(length); + if (stdStringIsUTF8 && valueIsOfTypeString) { + stringToUTF8(value, ptr, length + 1); + } else { + if (valueIsOfTypeString) { + for (var i = 0; i < length; ++i) { + var charCode = value.charCodeAt(i); + if (charCode > 255) { + _free(ptr); + throwBindingError( + 'String has UTF-16 code units that do not fit in 8 bits' + ); + } + HEAPU8[ptr + i] = charCode; + } + } else { + for (var i = 0; i < length; ++i) { + HEAPU8[ptr + i] = value[i]; + } + } + } + if (destructors !== null) { + destructors.push(_free, base); + } + return base; + }, + argPackAdvance: 8, + readValueFromPointer: simpleReadValueFromPointer, + destructorFunction: function (ptr) { + _free(ptr); + }, + }); + } + var UTF16Decoder = + typeof TextDecoder != 'undefined' + ? new TextDecoder('utf-16le') + : undefined; + var UTF16ToString = (ptr, maxBytesToRead) => { + assert( + ptr % 2 == 0, + 'Pointer passed to UTF16ToString must be aligned to two bytes!' + ); + var endPtr = ptr; + var idx = endPtr >> 1; + var maxIdx = idx + maxBytesToRead / 2; + while (!(idx >= maxIdx) && HEAPU16[idx]) ++idx; + endPtr = idx << 1; + if (endPtr - ptr > 32 && UTF16Decoder) + return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr)); + var str = ''; + for (var i = 0; !(i >= maxBytesToRead / 2); ++i) { + var codeUnit = HEAP16[(ptr + i * 2) >> 1]; + if (codeUnit == 0) break; + str += String.fromCharCode(codeUnit); + } + return str; + }; + var stringToUTF16 = (str, outPtr, maxBytesToWrite) => { + assert( + outPtr % 2 == 0, + 'Pointer passed to stringToUTF16 must be aligned to two bytes!' + ); + assert( + typeof maxBytesToWrite == 'number', + 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!' + ); + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 2147483647; + } + if (maxBytesToWrite < 2) return 0; + maxBytesToWrite -= 2; + var startPtr = outPtr; + var numCharsToWrite = + maxBytesToWrite < str.length * 2 + ? maxBytesToWrite / 2 + : str.length; + for (var i = 0; i < numCharsToWrite; ++i) { + var codeUnit = str.charCodeAt(i); + HEAP16[outPtr >> 1] = codeUnit; + checkInt16(codeUnit); + outPtr += 2; + } + HEAP16[outPtr >> 1] = 0; + checkInt16(0); + return outPtr - startPtr; + }; + var lengthBytesUTF16 = (str) => str.length * 2; + var UTF32ToString = (ptr, maxBytesToRead) => { + assert( + ptr % 4 == 0, + 'Pointer passed to UTF32ToString must be aligned to four bytes!' + ); + var i = 0; + var str = ''; + while (!(i >= maxBytesToRead / 4)) { + var utf32 = HEAP32[(ptr + i * 4) >> 2]; + if (utf32 == 0) break; + ++i; + if (utf32 >= 65536) { + var ch = utf32 - 65536; + str += String.fromCharCode( + 55296 | (ch >> 10), + 56320 | (ch & 1023) + ); + } else { + str += String.fromCharCode(utf32); + } + } + return str; + }; + var stringToUTF32 = (str, outPtr, maxBytesToWrite) => { + assert( + outPtr % 4 == 0, + 'Pointer passed to stringToUTF32 must be aligned to four bytes!' + ); + assert( + typeof maxBytesToWrite == 'number', + 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!' + ); + if (maxBytesToWrite === undefined) { + maxBytesToWrite = 2147483647; + } + if (maxBytesToWrite < 4) return 0; + var startPtr = outPtr; + var endPtr = startPtr + maxBytesToWrite - 4; + for (var i = 0; i < str.length; ++i) { + var codeUnit = str.charCodeAt(i); + if (codeUnit >= 55296 && codeUnit <= 57343) { + var trailSurrogate = str.charCodeAt(++i); + codeUnit = + (65536 + ((codeUnit & 1023) << 10)) | + (trailSurrogate & 1023); + } + HEAP32[outPtr >> 2] = codeUnit; + checkInt32(codeUnit); + outPtr += 4; + if (outPtr + 4 > endPtr) break; + } + HEAP32[outPtr >> 2] = 0; + checkInt32(0); + return outPtr - startPtr; + }; + var lengthBytesUTF32 = (str) => { + var len = 0; + for (var i = 0; i < str.length; ++i) { + var codeUnit = str.charCodeAt(i); + if (codeUnit >= 55296 && codeUnit <= 57343) ++i; + len += 4; + } + return len; + }; + var __embind_register_std_wstring = function (rawType, charSize, name) { + name = readLatin1String(name); + var decodeString, encodeString, getHeap, lengthBytesUTF, shift; + if (charSize === 2) { + decodeString = UTF16ToString; + encodeString = stringToUTF16; + lengthBytesUTF = lengthBytesUTF16; + getHeap = () => HEAPU16; + shift = 1; + } else if (charSize === 4) { + decodeString = UTF32ToString; + encodeString = stringToUTF32; + lengthBytesUTF = lengthBytesUTF32; + getHeap = () => HEAPU32; + shift = 2; + } + registerType(rawType, { + name: name, + fromWireType: function (value) { + var length = HEAPU32[value >> 2]; + var HEAP = getHeap(); + var str; + var decodeStartPtr = value + 4; + for (var i = 0; i <= length; ++i) { + var currentBytePtr = value + 4 + i * charSize; + if (i == length || HEAP[currentBytePtr >> shift] == 0) { + var maxReadBytes = currentBytePtr - decodeStartPtr; + var stringSegment = decodeString( + decodeStartPtr, + maxReadBytes + ); + if (str === undefined) { + str = stringSegment; + } else { + str += String.fromCharCode(0); + str += stringSegment; + } + decodeStartPtr = currentBytePtr + charSize; + } + } + _free(value); + return str; + }, + toWireType: function (destructors, value) { + if (!(typeof value == 'string')) { + throwBindingError( + `Cannot pass non-string to C++ string type ${name}` + ); + } + var length = lengthBytesUTF(value); + var ptr = _malloc(4 + length + charSize); + HEAPU32[ptr >> 2] = length >> shift; + encodeString(value, ptr + 4, length + charSize); + if (destructors !== null) { + destructors.push(_free, ptr); + } + return ptr; + }, + argPackAdvance: 8, + readValueFromPointer: simpleReadValueFromPointer, + destructorFunction: function (ptr) { + _free(ptr); + }, + }); + }; + function __embind_register_value_object( + rawType, + name, + constructorSignature, + rawConstructor, + destructorSignature, + rawDestructor + ) { + structRegistrations[rawType] = { + name: readLatin1String(name), + rawConstructor: embind__requireFunction( + constructorSignature, + rawConstructor + ), + rawDestructor: embind__requireFunction( + destructorSignature, + rawDestructor + ), + fields: [], + }; + } + function __embind_register_value_object_field( + structType, + fieldName, + getterReturnType, + getterSignature, + getter, + getterContext, + setterArgumentType, + setterSignature, + setter, + setterContext + ) { + structRegistrations[structType].fields.push({ + fieldName: readLatin1String(fieldName), + getterReturnType: getterReturnType, + getter: embind__requireFunction(getterSignature, getter), + getterContext: getterContext, + setterArgumentType: setterArgumentType, + setter: embind__requireFunction(setterSignature, setter), + setterContext: setterContext, + }); + } + function __embind_register_void(rawType, name) { + name = readLatin1String(name); + registerType(rawType, { + isVoid: true, + name: name, + argPackAdvance: 0, + fromWireType: function () { + return undefined; + }, + toWireType: function (destructors, o) { + return undefined; + }, + }); + } + function __emval_incref(handle) { + if (handle > 4) { + emval_handles.get(handle).refcount += 1; + } + } + function requireRegisteredType(rawType, humanName) { + var impl = registeredTypes[rawType]; + if (undefined === impl) { + throwBindingError( + humanName + ' has unknown type ' + getTypeName(rawType) + ); + } + return impl; + } + function __emval_take_value(type, arg) { + type = requireRegisteredType(type, '_emval_take_value'); + var v = type['readValueFromPointer'](arg); + return Emval.toHandle(v); + } + var _abort = () => { + abort('native code called abort()'); + }; + var _emscripten_memcpy_big = (dest, src, num) => + HEAPU8.copyWithin(dest, src, src + num); + var getHeapMax = () => 2147483648; + var _emscripten_get_now; + _emscripten_get_now = () => performance.now(); + var growMemory = (size) => { + var b = wasmMemory.buffer; + var pages = (size - b.byteLength + 65535) >>> 16; + try { + wasmMemory.grow(pages); + updateMemoryViews(); + return 1; + } catch (e) { + err( + `growMemory: Attempted to grow heap from ${b.byteLength} bytes to ${size} bytes, but got error: ${e}` + ); + } + }; + var _emscripten_resize_heap = (requestedSize) => { + var oldSize = HEAPU8.length; + requestedSize >>>= 0; + assert(requestedSize > oldSize); + var maxHeapSize = getHeapMax(); + if (requestedSize > maxHeapSize) { + err( + `Cannot enlarge memory, asked to go up to ${requestedSize} bytes, but the limit is ${maxHeapSize} bytes!` + ); + return false; + } + var alignUp = (x, multiple) => + x + ((multiple - (x % multiple)) % multiple); + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); + overGrownHeapSize = Math.min( + overGrownHeapSize, + requestedSize + 100663296 + ); + var newSize = Math.min( + maxHeapSize, + alignUp(Math.max(requestedSize, overGrownHeapSize), 65536) + ); + var t0 = _emscripten_get_now(); + var replacement = growMemory(newSize); + var t1 = _emscripten_get_now(); + out( + `Heap resize call from ${oldSize} to ${newSize} took ${ + t1 - t0 + } msecs. Success: ${!!replacement}` + ); + if (replacement) { + return true; + } + } + err( + `Failed to grow the heap from ${oldSize} bytes to ${newSize} bytes, not enough memory!` + ); + return false; + }; + var ENV = {}; + var getExecutableName = () => thisProgram || './this.program'; + var getEnvStrings = () => { + if (!getEnvStrings.strings) { + var lang = + ( + (typeof navigator == 'object' && + navigator.languages && + navigator.languages[0]) || + 'C' + ).replace('-', '_') + '.UTF-8'; + var env = { + USER: 'web_user', + LOGNAME: 'web_user', + PATH: '/', + PWD: '/', + HOME: '/home/web_user', + LANG: lang, + _: getExecutableName(), + }; + for (var x in ENV) { + if (ENV[x] === undefined) delete env[x]; + else env[x] = ENV[x]; + } + var strings = []; + for (var x in env) { + strings.push(`${x}=${env[x]}`); + } + getEnvStrings.strings = strings; + } + return getEnvStrings.strings; + }; + var stringToAscii = (str, buffer) => { + for (var i = 0; i < str.length; ++i) { + assert(str.charCodeAt(i) === (str.charCodeAt(i) & 255)); + HEAP8[buffer++ >> 0] = str.charCodeAt(i); + checkInt8(str.charCodeAt(i)); + } + HEAP8[buffer >> 0] = 0; + checkInt8(0); + }; + var _environ_get = (__environ, environ_buf) => { + var bufSize = 0; + getEnvStrings().forEach(function (string, i) { + var ptr = environ_buf + bufSize; + HEAPU32[(__environ + i * 4) >> 2] = ptr; + checkInt32(ptr); + stringToAscii(string, ptr); + bufSize += string.length + 1; + }); + return 0; + }; + var _environ_sizes_get = (penviron_count, penviron_buf_size) => { + var strings = getEnvStrings(); + HEAPU32[penviron_count >> 2] = strings.length; + checkInt32(strings.length); + var bufSize = 0; + strings.forEach(function (string) { + bufSize += string.length + 1; + }); + HEAPU32[penviron_buf_size >> 2] = bufSize; + checkInt32(bufSize); + return 0; + }; + function _fd_close(fd) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + FS.close(stream); + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) + throw e; + return e.errno; + } + } + var doReadv = (stream, iov, iovcnt, offset) => { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAPU32[iov >> 2]; + var len = HEAPU32[(iov + 4) >> 2]; + iov += 8; + var curr = FS.read(stream, HEAP8, ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (curr < len) break; + if (typeof offset !== 'undefined') { + offset += curr; + } + } + return ret; + }; + function _fd_read(fd, iov, iovcnt, pnum) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doReadv(stream, iov, iovcnt); + HEAPU32[pnum >> 2] = num; + checkInt32(num); + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) + throw e; + return e.errno; + } + } + function convertI32PairToI53Checked(lo, hi) { + assert(lo == lo >>> 0 || lo == (lo | 0)); + assert(hi === (hi | 0)); + return (hi + 2097152) >>> 0 < 4194305 - !!lo + ? (lo >>> 0) + hi * 4294967296 + : NaN; + } + function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { + var offset = convertI32PairToI53Checked(offset_low, offset_high); + try { + if (isNaN(offset)) return 61; + var stream = SYSCALLS.getStreamFromFD(fd); + FS.llseek(stream, offset, whence); + (tempI64 = [ + stream.position >>> 0, + ((tempDouble = stream.position), + +Math.abs(tempDouble) >= 1 + ? tempDouble > 0 + ? +Math.floor(tempDouble / 4294967296) >>> 0 + : ~~+Math.ceil( + (tempDouble - +(~~tempDouble >>> 0)) / + 4294967296 + ) >>> 0 + : 0), + ]), + (HEAP32[newOffset >> 2] = tempI64[0]), + (HEAP32[(newOffset + 4) >> 2] = tempI64[1]); + checkInt64(stream.position); + if (stream.getdents && offset === 0 && whence === 0) + stream.getdents = null; + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) + throw e; + return e.errno; + } + } + var doWritev = (stream, iov, iovcnt, offset) => { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAPU32[iov >> 2]; + var len = HEAPU32[(iov + 4) >> 2]; + iov += 8; + var curr = FS.write(stream, HEAP8, ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (typeof offset !== 'undefined') { + offset += curr; + } + } + return ret; + }; + function _fd_write(fd, iov, iovcnt, pnum) { + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doWritev(stream, iov, iovcnt); + HEAPU32[pnum >> 2] = num; + checkInt32(num); + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) + throw e; + return e.errno; + } + } + var isLeapYear = (year) => + year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); + var arraySum = (array, index) => { + var sum = 0; + for (var i = 0; i <= index; sum += array[i++]) {} + return sum; + }; + var MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + var MONTH_DAYS_REGULAR = [ + 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, + ]; + var addDays = (date, days) => { + var newDate = new Date(date.getTime()); + while (days > 0) { + var leap = isLeapYear(newDate.getFullYear()); + var currentMonth = newDate.getMonth(); + var daysInCurrentMonth = ( + leap ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR + )[currentMonth]; + if (days > daysInCurrentMonth - newDate.getDate()) { + days -= daysInCurrentMonth - newDate.getDate() + 1; + newDate.setDate(1); + if (currentMonth < 11) { + newDate.setMonth(currentMonth + 1); + } else { + newDate.setMonth(0); + newDate.setFullYear(newDate.getFullYear() + 1); + } + } else { + newDate.setDate(newDate.getDate() + days); + return newDate; + } + } + return newDate; + }; + var writeArrayToMemory = (array, buffer) => { + assert( + array.length >= 0, + 'writeArrayToMemory array must have a length (should be an array or typed array)' + ); + HEAP8.set(array, buffer); + }; + var _strftime = (s, maxsize, format, tm) => { + var tm_zone = HEAP32[(tm + 40) >> 2]; + var date = { + tm_sec: HEAP32[tm >> 2], + tm_min: HEAP32[(tm + 4) >> 2], + tm_hour: HEAP32[(tm + 8) >> 2], + tm_mday: HEAP32[(tm + 12) >> 2], + tm_mon: HEAP32[(tm + 16) >> 2], + tm_year: HEAP32[(tm + 20) >> 2], + tm_wday: HEAP32[(tm + 24) >> 2], + tm_yday: HEAP32[(tm + 28) >> 2], + tm_isdst: HEAP32[(tm + 32) >> 2], + tm_gmtoff: HEAP32[(tm + 36) >> 2], + tm_zone: tm_zone ? UTF8ToString(tm_zone) : '', + }; + var pattern = UTF8ToString(format); + var EXPANSION_RULES_1 = { + '%c': '%a %b %d %H:%M:%S %Y', + '%D': '%m/%d/%y', + '%F': '%Y-%m-%d', + '%h': '%b', + '%r': '%I:%M:%S %p', + '%R': '%H:%M', + '%T': '%H:%M:%S', + '%x': '%m/%d/%y', + '%X': '%H:%M:%S', + '%Ec': '%c', + '%EC': '%C', + '%Ex': '%m/%d/%y', + '%EX': '%H:%M:%S', + '%Ey': '%y', + '%EY': '%Y', + '%Od': '%d', + '%Oe': '%e', + '%OH': '%H', + '%OI': '%I', + '%Om': '%m', + '%OM': '%M', + '%OS': '%S', + '%Ou': '%u', + '%OU': '%U', + '%OV': '%V', + '%Ow': '%w', + '%OW': '%W', + '%Oy': '%y', + }; + for (var rule in EXPANSION_RULES_1) { + pattern = pattern.replace( + new RegExp(rule, 'g'), + EXPANSION_RULES_1[rule] + ); + } + var WEEKDAYS = [ + 'Sunday', + 'Monday', + 'Tuesday', + 'Wednesday', + 'Thursday', + 'Friday', + 'Saturday', + ]; + var MONTHS = [ + 'January', + 'February', + 'March', + 'April', + 'May', + 'June', + 'July', + 'August', + 'September', + 'October', + 'November', + 'December', + ]; + function leadingSomething(value, digits, character) { + var str = + typeof value == 'number' ? value.toString() : value || ''; + while (str.length < digits) { + str = character[0] + str; + } + return str; + } + function leadingNulls(value, digits) { + return leadingSomething(value, digits, '0'); + } + function compareByDay(date1, date2) { + function sgn(value) { + return value < 0 ? -1 : value > 0 ? 1 : 0; + } + var compare; + if ( + (compare = sgn( + date1.getFullYear() - date2.getFullYear() + )) === 0 + ) { + if ( + (compare = sgn(date1.getMonth() - date2.getMonth())) === + 0 + ) { + compare = sgn(date1.getDate() - date2.getDate()); + } + } + return compare; + } + function getFirstWeekStartDate(janFourth) { + switch (janFourth.getDay()) { + case 0: + return new Date(janFourth.getFullYear() - 1, 11, 29); + case 1: + return janFourth; + case 2: + return new Date(janFourth.getFullYear(), 0, 3); + case 3: + return new Date(janFourth.getFullYear(), 0, 2); + case 4: + return new Date(janFourth.getFullYear(), 0, 1); + case 5: + return new Date(janFourth.getFullYear() - 1, 11, 31); + case 6: + return new Date(janFourth.getFullYear() - 1, 11, 30); + } + } + function getWeekBasedYear(date) { + var thisDate = addDays( + new Date(date.tm_year + 1900, 0, 1), + date.tm_yday + ); + var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4); + var janFourthNextYear = new Date( + thisDate.getFullYear() + 1, + 0, + 4 + ); + var firstWeekStartThisYear = + getFirstWeekStartDate(janFourthThisYear); + var firstWeekStartNextYear = + getFirstWeekStartDate(janFourthNextYear); + if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) { + if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) { + return thisDate.getFullYear() + 1; + } + return thisDate.getFullYear(); + } + return thisDate.getFullYear() - 1; + } + var EXPANSION_RULES_2 = { + '%a': (date) => WEEKDAYS[date.tm_wday].substring(0, 3), + '%A': (date) => WEEKDAYS[date.tm_wday], + '%b': (date) => MONTHS[date.tm_mon].substring(0, 3), + '%B': (date) => MONTHS[date.tm_mon], + '%C': (date) => { + var year = date.tm_year + 1900; + return leadingNulls((year / 100) | 0, 2); + }, + '%d': (date) => leadingNulls(date.tm_mday, 2), + '%e': (date) => leadingSomething(date.tm_mday, 2, ' '), + '%g': (date) => getWeekBasedYear(date).toString().substring(2), + '%G': (date) => getWeekBasedYear(date), + '%H': (date) => leadingNulls(date.tm_hour, 2), + '%I': (date) => { + var twelveHour = date.tm_hour; + if (twelveHour == 0) twelveHour = 12; + else if (twelveHour > 12) twelveHour -= 12; + return leadingNulls(twelveHour, 2); + }, + '%j': (date) => + leadingNulls( + date.tm_mday + + arraySum( + isLeapYear(date.tm_year + 1900) + ? MONTH_DAYS_LEAP + : MONTH_DAYS_REGULAR, + date.tm_mon - 1 + ), + 3 + ), + '%m': (date) => leadingNulls(date.tm_mon + 1, 2), + '%M': (date) => leadingNulls(date.tm_min, 2), + '%n': () => '\n', + '%p': (date) => { + if (date.tm_hour >= 0 && date.tm_hour < 12) { + return 'AM'; + } + return 'PM'; + }, + '%S': (date) => leadingNulls(date.tm_sec, 2), + '%t': () => '\t', + '%u': (date) => date.tm_wday || 7, + '%U': (date) => { + var days = date.tm_yday + 7 - date.tm_wday; + return leadingNulls(Math.floor(days / 7), 2); + }, + '%V': (date) => { + var val = Math.floor( + (date.tm_yday + 7 - ((date.tm_wday + 6) % 7)) / 7 + ); + if ((date.tm_wday + 371 - date.tm_yday - 2) % 7 <= 2) { + val++; + } + if (!val) { + val = 52; + var dec31 = (date.tm_wday + 7 - date.tm_yday - 1) % 7; + if ( + dec31 == 4 || + (dec31 == 5 && isLeapYear((date.tm_year % 400) - 1)) + ) { + val++; + } + } else if (val == 53) { + var jan1 = (date.tm_wday + 371 - date.tm_yday) % 7; + if ( + jan1 != 4 && + (jan1 != 3 || !isLeapYear(date.tm_year)) + ) + val = 1; + } + return leadingNulls(val, 2); + }, + '%w': (date) => date.tm_wday, + '%W': (date) => { + var days = date.tm_yday + 7 - ((date.tm_wday + 6) % 7); + return leadingNulls(Math.floor(days / 7), 2); + }, + '%y': (date) => (date.tm_year + 1900).toString().substring(2), + '%Y': (date) => date.tm_year + 1900, + '%z': (date) => { + var off = date.tm_gmtoff; + var ahead = off >= 0; + off = Math.abs(off) / 60; + off = (off / 60) * 100 + (off % 60); + return (ahead ? '+' : '-') + String('0000' + off).slice(-4); + }, + '%Z': (date) => date.tm_zone, + '%%': () => '%', + }; + pattern = pattern.replace(/%%/g, '\0\0'); + for (var rule in EXPANSION_RULES_2) { + if (pattern.includes(rule)) { + pattern = pattern.replace( + new RegExp(rule, 'g'), + EXPANSION_RULES_2[rule](date) + ); + } + } + pattern = pattern.replace(/\0\0/g, '%'); + var bytes = intArrayFromString(pattern, false); + if (bytes.length > maxsize) { + return 0; + } + writeArrayToMemory(bytes, s); + return bytes.length - 1; + }; + var _strftime_l = (s, maxsize, format, tm, loc) => + _strftime(s, maxsize, format, tm); + var FSNode = function (parent, name, mode, rdev) { + if (!parent) { + parent = this; + } + this.parent = parent; + this.mount = parent.mount; + this.mounted = null; + this.id = FS.nextInode++; + this.name = name; + this.mode = mode; + this.node_ops = {}; + this.stream_ops = {}; + this.rdev = rdev; + }; + var readMode = 292 | 73; + var writeMode = 146; + Object.defineProperties(FSNode.prototype, { + read: { + get: function () { + return (this.mode & readMode) === readMode; + }, + set: function (val) { + val ? (this.mode |= readMode) : (this.mode &= ~readMode); + }, + }, + write: { + get: function () { + return (this.mode & writeMode) === writeMode; + }, + set: function (val) { + val ? (this.mode |= writeMode) : (this.mode &= ~writeMode); + }, + }, + isFolder: { + get: function () { + return FS.isDir(this.mode); + }, + }, + isDevice: { + get: function () { + return FS.isChrdev(this.mode); + }, + }, + }); + FS.FSNode = FSNode; + FS.createPreloadedFile = FS_createPreloadedFile; + FS.staticInit(); + Module['FS_createPath'] = FS.createPath; + Module['FS_createDataFile'] = FS.createDataFile; + Module['FS_createPreloadedFile'] = FS.createPreloadedFile; + Module['FS_unlink'] = FS.unlink; + Module['FS_createLazyFile'] = FS.createLazyFile; + Module['FS_createDevice'] = FS.createDevice; + if (ENVIRONMENT_IS_NODE) { + NODEFS.staticInit(); + } + ERRNO_CODES = { + EPERM: 63, + ENOENT: 44, + ESRCH: 71, + EINTR: 27, + EIO: 29, + ENXIO: 60, + E2BIG: 1, + ENOEXEC: 45, + EBADF: 8, + ECHILD: 12, + EAGAIN: 6, + EWOULDBLOCK: 6, + ENOMEM: 48, + EACCES: 2, + EFAULT: 21, + ENOTBLK: 105, + EBUSY: 10, + EEXIST: 20, + EXDEV: 75, + ENODEV: 43, + ENOTDIR: 54, + EISDIR: 31, + EINVAL: 28, + ENFILE: 41, + EMFILE: 33, + ENOTTY: 59, + ETXTBSY: 74, + EFBIG: 22, + ENOSPC: 51, + ESPIPE: 70, + EROFS: 69, + EMLINK: 34, + EPIPE: 64, + EDOM: 18, + ERANGE: 68, + ENOMSG: 49, + EIDRM: 24, + ECHRNG: 106, + EL2NSYNC: 156, + EL3HLT: 107, + EL3RST: 108, + ELNRNG: 109, + EUNATCH: 110, + ENOCSI: 111, + EL2HLT: 112, + EDEADLK: 16, + ENOLCK: 46, + EBADE: 113, + EBADR: 114, + EXFULL: 115, + ENOANO: 104, + EBADRQC: 103, + EBADSLT: 102, + EDEADLOCK: 16, + EBFONT: 101, + ENOSTR: 100, + ENODATA: 116, + ETIME: 117, + ENOSR: 118, + ENONET: 119, + ENOPKG: 120, + EREMOTE: 121, + ENOLINK: 47, + EADV: 122, + ESRMNT: 123, + ECOMM: 124, + EPROTO: 65, + EMULTIHOP: 36, + EDOTDOT: 125, + EBADMSG: 9, + ENOTUNIQ: 126, + EBADFD: 127, + EREMCHG: 128, + ELIBACC: 129, + ELIBBAD: 130, + ELIBSCN: 131, + ELIBMAX: 132, + ELIBEXEC: 133, + ENOSYS: 52, + ENOTEMPTY: 55, + ENAMETOOLONG: 37, + ELOOP: 32, + EOPNOTSUPP: 138, + EPFNOSUPPORT: 139, + ECONNRESET: 15, + ENOBUFS: 42, + EAFNOSUPPORT: 5, + EPROTOTYPE: 67, + ENOTSOCK: 57, + ENOPROTOOPT: 50, + ESHUTDOWN: 140, + ECONNREFUSED: 14, + EADDRINUSE: 3, + ECONNABORTED: 13, + ENETUNREACH: 40, + ENETDOWN: 38, + ETIMEDOUT: 73, + EHOSTDOWN: 142, + EHOSTUNREACH: 23, + EINPROGRESS: 26, + EALREADY: 7, + EDESTADDRREQ: 17, + EMSGSIZE: 35, + EPROTONOSUPPORT: 66, + ESOCKTNOSUPPORT: 137, + EADDRNOTAVAIL: 4, + ENETRESET: 39, + EISCONN: 30, + ENOTCONN: 53, + ETOOMANYREFS: 141, + EUSERS: 136, + EDQUOT: 19, + ESTALE: 72, + ENOTSUP: 138, + ENOMEDIUM: 148, + EILSEQ: 25, + EOVERFLOW: 61, + ECANCELED: 11, + ENOTRECOVERABLE: 56, + EOWNERDEAD: 62, + ESTRPIPE: 135, + }; + InternalError = Module['InternalError'] = class InternalError extends ( + Error + ) { + constructor(message) { + super(message); + this.name = 'InternalError'; + } + }; + embind_init_charCodes(); + BindingError = Module['BindingError'] = class BindingError extends ( + Error + ) { + constructor(message) { + super(message); + this.name = 'BindingError'; + } + }; + init_ClassHandle(); + init_embind(); + init_RegisteredPointer(); + UnboundTypeError = Module['UnboundTypeError'] = extendError( + Error, + 'UnboundTypeError' + ); + handleAllocatorInit(); + init_emval(); + function checkIncomingModuleAPI() { + ignoredModuleProp('fetchSettings'); + } + var wasmImports = { + __assert_fail: ___assert_fail, + __handle_stack_overflow: ___handle_stack_overflow, + __syscall_fcntl64: ___syscall_fcntl64, + __syscall_ioctl: ___syscall_ioctl, + __syscall_openat: ___syscall_openat, + __throw_exception_with_stack_trace: + ___throw_exception_with_stack_trace, + _embind_finalize_value_object: __embind_finalize_value_object, + _embind_register_bigint: __embind_register_bigint, + _embind_register_bool: __embind_register_bool, + _embind_register_class: __embind_register_class, + _embind_register_class_constructor: + __embind_register_class_constructor, + _embind_register_class_function: __embind_register_class_function, + _embind_register_emval: __embind_register_emval, + _embind_register_float: __embind_register_float, + _embind_register_function: __embind_register_function, + _embind_register_integer: __embind_register_integer, + _embind_register_memory_view: __embind_register_memory_view, + _embind_register_std_string: __embind_register_std_string, + _embind_register_std_wstring: __embind_register_std_wstring, + _embind_register_value_object: __embind_register_value_object, + _embind_register_value_object_field: + __embind_register_value_object_field, + _embind_register_void: __embind_register_void, + _emval_decref: __emval_decref, + _emval_incref: __emval_incref, + _emval_take_value: __emval_take_value, + abort: _abort, + emscripten_memcpy_big: _emscripten_memcpy_big, + emscripten_resize_heap: _emscripten_resize_heap, + environ_get: _environ_get, + environ_sizes_get: _environ_sizes_get, + fd_close: _fd_close, + fd_read: _fd_read, + fd_seek: _fd_seek, + fd_write: _fd_write, + strftime_l: _strftime_l, + }; + var asm = createWasm(); + var ___wasm_call_ctors = createExportWrapper('__wasm_call_ctors'); + var _malloc = createExportWrapper('malloc'); + var _fflush = (Module['_fflush'] = createExportWrapper('fflush')); + var _free = (Module['_free'] = createExportWrapper('free')); + var ___errno_location = createExportWrapper('__errno_location'); + var ___getTypeName = createExportWrapper('__getTypeName'); + var __embind_initialize_bindings = (Module[ + '__embind_initialize_bindings' + ] = createExportWrapper('_embind_initialize_bindings')); + var _emscripten_builtin_memalign = createExportWrapper( + 'emscripten_builtin_memalign' + ); + var ___trap = function () { + return (___trap = Module['asm']['__trap']).apply(null, arguments); + }; + var setTempRet0 = createExportWrapper('setTempRet0'); + var _emscripten_stack_init = function () { + return (_emscripten_stack_init = + Module['asm']['emscripten_stack_init']).apply(null, arguments); + }; + var _emscripten_stack_get_free = function () { + return (_emscripten_stack_get_free = + Module['asm']['emscripten_stack_get_free']).apply( + null, + arguments + ); + }; + var _emscripten_stack_get_base = function () { + return (_emscripten_stack_get_base = + Module['asm']['emscripten_stack_get_base']).apply( + null, + arguments + ); + }; + var _emscripten_stack_get_end = function () { + return (_emscripten_stack_get_end = + Module['asm']['emscripten_stack_get_end']).apply( + null, + arguments + ); + }; + var stackSave = createExportWrapper('stackSave'); + var stackRestore = createExportWrapper('stackRestore'); + var stackAlloc = createExportWrapper('stackAlloc'); + var _emscripten_stack_get_current = function () { + return (_emscripten_stack_get_current = + Module['asm']['emscripten_stack_get_current']).apply( + null, + arguments + ); + }; + var ___cxa_decrement_exception_refcount = (Module[ + '___cxa_decrement_exception_refcount' + ] = createExportWrapper('__cxa_decrement_exception_refcount')); + var ___cxa_increment_exception_refcount = (Module[ + '___cxa_increment_exception_refcount' + ] = createExportWrapper('__cxa_increment_exception_refcount')); + var ___cxa_demangle = createExportWrapper('__cxa_demangle'); + var ___thrown_object_from_unwind_exception = (Module[ + '___thrown_object_from_unwind_exception' + ] = createExportWrapper('__thrown_object_from_unwind_exception')); + var ___get_exception_message = (Module['___get_exception_message'] = + createExportWrapper('__get_exception_message')); + var ___set_stack_limits = (Module['___set_stack_limits'] = + createExportWrapper('__set_stack_limits')); + var dynCall_jiji = (Module['dynCall_jiji'] = + createExportWrapper('dynCall_jiji')); + var dynCall_viijii = (Module['dynCall_viijii'] = + createExportWrapper('dynCall_viijii')); + var dynCall_iiiiij = (Module['dynCall_iiiiij'] = + createExportWrapper('dynCall_iiiiij')); + var dynCall_iiiiijj = (Module['dynCall_iiiiijj'] = + createExportWrapper('dynCall_iiiiijj')); + var dynCall_iiiiiijj = (Module['dynCall_iiiiiijj'] = + createExportWrapper('dynCall_iiiiiijj')); + function intArrayFromBase64(s) { + if ( + typeof ENVIRONMENT_IS_NODE != 'undefined' && + ENVIRONMENT_IS_NODE + ) { + var buf = Buffer.from(s, 'base64'); + return new Uint8Array( + buf['buffer'], + buf['byteOffset'], + buf['byteLength'] + ); + } + try { + var decoded = atob(s); + var bytes = new Uint8Array(decoded.length); + for (var i = 0; i < decoded.length; ++i) { + bytes[i] = decoded.charCodeAt(i); + } + return bytes; + } catch (_) { + throw new Error('Converting base64 string to bytes failed.'); + } + } + Module['addRunDependency'] = addRunDependency; + Module['removeRunDependency'] = removeRunDependency; + Module['FS_createPath'] = FS.createPath; + Module['FS_createDataFile'] = FS.createDataFile; + Module['FS_createLazyFile'] = FS.createLazyFile; + Module['FS_createDevice'] = FS.createDevice; + Module['FS_unlink'] = FS.unlink; + Module['FS_createPreloadedFile'] = FS.createPreloadedFile; + Module['FS'] = FS; + var missingLibrarySymbols = [ + 'writeI53ToI64', + 'writeI53ToI64Clamped', + 'writeI53ToI64Signaling', + 'writeI53ToU64Clamped', + 'writeI53ToU64Signaling', + 'readI53FromI64', + 'readI53FromU64', + 'convertI32PairToI53', + 'convertU32PairToI53', + 'exitJS', + 'ydayFromDate', + 'inetPton4', + 'inetNtop4', + 'inetPton6', + 'inetNtop6', + 'readSockaddr', + 'writeSockaddr', + 'getHostByName', + 'traverseStack', + 'getCallstack', + 'emscriptenLog', + 'convertPCtoSourceLocation', + 'readEmAsmArgs', + 'jstoi_q', + 'jstoi_s', + 'listenOnce', + 'autoResumeAudioContext', + 'handleException', + 'runtimeKeepalivePush', + 'runtimeKeepalivePop', + 'callUserCallback', + 'maybeExit', + 'safeSetTimeout', + 'asmjsMangle', + 'getNativeTypeSize', + 'STACK_SIZE', + 'STACK_ALIGN', + 'POINTER_SIZE', + 'ASSERTIONS', + 'getCFunc', + 'ccall', + 'cwrap', + 'uleb128Encode', + 'sigToWasmTypes', + 'generateFuncType', + 'convertJsFunctionToWasm', + 'getEmptyTableSlot', + 'updateTableMap', + 'getFunctionAddress', + 'addFunction', + 'removeFunction', + 'reallyNegative', + 'unSign', + 'strLen', + 'reSign', + 'formatString', + 'intArrayToString', + 'AsciiToString', + 'stringToNewUTF8', + 'registerKeyEventCallback', + 'maybeCStringToJsString', + 'findEventTarget', + 'findCanvasEventTarget', + 'getBoundingClientRect', + 'fillMouseEventData', + 'registerMouseEventCallback', + 'registerWheelEventCallback', + 'registerUiEventCallback', + 'registerFocusEventCallback', + 'fillDeviceOrientationEventData', + 'registerDeviceOrientationEventCallback', + 'fillDeviceMotionEventData', + 'registerDeviceMotionEventCallback', + 'screenOrientation', + 'fillOrientationChangeEventData', + 'registerOrientationChangeEventCallback', + 'fillFullscreenChangeEventData', + 'registerFullscreenChangeEventCallback', + 'JSEvents_requestFullscreen', + 'JSEvents_resizeCanvasForFullscreen', + 'registerRestoreOldStyle', + 'hideEverythingExceptGivenElement', + 'restoreHiddenElements', + 'setLetterbox', + 'softFullscreenResizeWebGLRenderTarget', + 'doRequestFullscreen', + 'fillPointerlockChangeEventData', + 'registerPointerlockChangeEventCallback', + 'registerPointerlockErrorEventCallback', + 'requestPointerLock', + 'fillVisibilityChangeEventData', + 'registerVisibilityChangeEventCallback', + 'registerTouchEventCallback', + 'fillGamepadEventData', + 'registerGamepadEventCallback', + 'registerBeforeUnloadEventCallback', + 'fillBatteryEventData', + 'battery', + 'registerBatteryEventCallback', + 'setCanvasElementSize', + 'getCanvasElementSize', + 'checkWasiClock', + 'wasiRightsToMuslOFlags', + 'wasiOFlagsToMuslOFlags', + 'createDyncallWrapper', + 'setImmediateWrapped', + 'clearImmediateWrapped', + 'polyfillSetImmediate', + 'getPromise', + 'makePromise', + 'idsToPromises', + 'makePromiseCallback', + 'setMainLoop', + 'getSocketFromFD', + 'getSocketAddress', + '_setNetworkCallback', + 'heapObjectForWebGLType', + 'heapAccessShiftForWebGLHeap', + 'webgl_enable_ANGLE_instanced_arrays', + 'webgl_enable_OES_vertex_array_object', + 'webgl_enable_WEBGL_draw_buffers', + 'webgl_enable_WEBGL_multi_draw', + 'emscriptenWebGLGet', + 'computeUnpackAlignedImageSize', + 'colorChannelsInGlTextureFormat', + 'emscriptenWebGLGetTexPixelData', + '__glGenObject', + 'emscriptenWebGLGetUniform', + 'webglGetUniformLocation', + 'webglPrepareUniformLocationsBeforeFirstUse', + 'webglGetLeftBracePos', + 'emscriptenWebGLGetVertexAttrib', + '__glGetActiveAttribOrUniform', + 'writeGLArray', + 'registerWebGlEventCallback', + 'runAndAbortIfError', + 'SDL_unicode', + 'SDL_ttfContext', + 'SDL_audio', + 'GLFW_Window', + 'ALLOC_NORMAL', + 'ALLOC_STACK', + 'allocate', + 'writeStringToMemory', + 'writeAsciiToMemory', + 'registerInheritedInstance', + 'unregisterInheritedInstance', + 'enumReadValueFromPointer', + 'validateThis', + 'getStringOrSymbol', + 'craftEmvalAllocator', + 'emval_get_global', + 'emval_lookupTypes', + 'emval_allocateDestructors', + 'emval_addMethodCaller', + ]; + missingLibrarySymbols.forEach(missingLibrarySymbol); + var unexportedSymbols = [ + 'run', + 'addOnPreRun', + 'addOnInit', + 'addOnPreMain', + 'addOnExit', + 'addOnPostRun', + 'FS_createFolder', + 'FS_createLink', + 'out', + 'err', + 'callMain', + 'abort', + 'keepRuntimeAlive', + 'wasmMemory', + 'stackAlloc', + 'stackSave', + 'stackRestore', + 'getTempRet0', + 'setTempRet0', + 'writeStackCookie', + 'checkStackCookie', + 'convertI32PairToI53Checked', + 'ptrToString', + 'zeroMemory', + 'getHeapMax', + 'growMemory', + 'ENV', + 'setStackLimits', + 'MONTH_DAYS_REGULAR', + 'MONTH_DAYS_LEAP', + 'MONTH_DAYS_REGULAR_CUMULATIVE', + 'MONTH_DAYS_LEAP_CUMULATIVE', + 'isLeapYear', + 'arraySum', + 'addDays', + 'ERRNO_CODES', + 'ERRNO_MESSAGES', + 'setErrNo', + 'DNS', + 'Protocols', + 'Sockets', + 'initRandomFill', + 'randomFill', + 'timers', + 'warnOnce', + 'UNWIND_CACHE', + 'readEmAsmArgsArray', + 'getExecutableName', + 'dynCallLegacy', + 'getDynCaller', + 'dynCall', + 'asyncLoad', + 'alignMemory', + 'mmapAlloc', + 'handleAllocatorInit', + 'HandleAllocator', + 'freeTableIndexes', + 'functionsInTableMap', + 'setValue', + 'getValue', + 'PATH', + 'PATH_FS', + 'UTF8Decoder', + 'UTF8ArrayToString', + 'UTF8ToString', + 'stringToUTF8Array', + 'stringToUTF8', + 'lengthBytesUTF8', + 'intArrayFromString', + 'stringToAscii', + 'UTF16Decoder', + 'UTF16ToString', + 'stringToUTF16', + 'lengthBytesUTF16', + 'UTF32ToString', + 'stringToUTF32', + 'lengthBytesUTF32', + 'stringToUTF8OnStack', + 'writeArrayToMemory', + 'JSEvents', + 'specialHTMLTargets', + 'currentFullscreenStrategy', + 'restoreOldWindowedStyle', + 'demangle', + 'demangleAll', + 'jsStackTrace', + 'stackTrace', + 'ExitStatus', + 'getEnvStrings', + 'doReadv', + 'doWritev', + 'promiseMap', + 'getExceptionMessageCommon', + 'getCppExceptionTag', + 'getCppExceptionThrownObjectFromWebAssemblyException', + 'incrementExceptionRefcount', + 'decrementExceptionRefcount', + 'getExceptionMessage', + 'Browser', + 'wget', + 'SYSCALLS', + 'preloadPlugins', + 'FS_modeStringToFlags', + 'FS_getMode', + 'FS_stdin_getChar_buffer', + 'FS_stdin_getChar', + 'MEMFS', + 'TTY', + 'PIPEFS', + 'SOCKFS', + 'tempFixedLengthArray', + 'miniTempWebGLFloatBuffers', + 'miniTempWebGLIntBuffers', + 'GL', + 'emscripten_webgl_power_preferences', + 'AL', + 'GLUT', + 'EGL', + 'GLEW', + 'IDBStore', + 'SDL', + 'SDL_gfx', + 'GLFW', + 'allocateUTF8', + 'allocateUTF8OnStack', + 'InternalError', + 'BindingError', + 'throwInternalError', + 'throwBindingError', + 'registeredTypes', + 'awaitingDependencies', + 'typeDependencies', + 'tupleRegistrations', + 'structRegistrations', + 'sharedRegisterType', + 'whenDependentTypesAreResolved', + 'embind_charCodes', + 'embind_init_charCodes', + 'readLatin1String', + 'getTypeName', + 'heap32VectorToArray', + 'requireRegisteredType', + 'UnboundTypeError', + 'PureVirtualError', + 'init_embind', + 'throwUnboundTypeError', + 'ensureOverloadTable', + 'exposePublicSymbol', + 'replacePublicSymbol', + 'extendError', + 'createNamedFunction', + 'embindRepr', + 'registeredInstances', + 'getBasestPointer', + 'getInheritedInstance', + 'getInheritedInstanceCount', + 'getLiveInheritedInstances', + 'registeredPointers', + 'registerType', + 'getShiftFromSize', + 'integerReadValueFromPointer', + 'floatReadValueFromPointer', + 'simpleReadValueFromPointer', + 'runDestructors', + 'newFunc', + 'craftInvokerFunction', + 'embind__requireFunction', + 'genericPointerToWireType', + 'constNoSmartPtrRawPointerToWireType', + 'nonConstNoSmartPtrRawPointerToWireType', + 'init_RegisteredPointer', + 'RegisteredPointer', + 'RegisteredPointer_getPointee', + 'RegisteredPointer_destructor', + 'RegisteredPointer_deleteObject', + 'RegisteredPointer_fromWireType', + 'runDestructor', + 'releaseClassHandle', + 'finalizationRegistry', + 'detachFinalizer_deps', + 'detachFinalizer', + 'attachFinalizer', + 'makeClassHandle', + 'init_ClassHandle', + 'ClassHandle', + 'ClassHandle_isAliasOf', + 'throwInstanceAlreadyDeleted', + 'ClassHandle_clone', + 'ClassHandle_delete', + 'deletionQueue', + 'ClassHandle_isDeleted', + 'ClassHandle_deleteLater', + 'flushPendingDeletes', + 'delayFunction', + 'setDelayFunction', + 'RegisteredClass', + 'shallowCopyInternalPointer', + 'downcastPointer', + 'upcastPointer', + 'char_0', + 'char_9', + 'makeLegalFunctionName', + 'emval_handles', + 'emval_symbols', + 'init_emval', + 'count_emval_handles', + 'Emval', + 'emval_newers', + 'emval_methodCallers', + 'emval_registeredMethods', + 'NODEFS', + ]; + unexportedSymbols.forEach(unexportedRuntimeSymbol); + var calledRun; + dependenciesFulfilled = function runCaller() { + if (!calledRun) run(); + if (!calledRun) dependenciesFulfilled = runCaller; + }; + function stackCheckInit() { + _emscripten_stack_init(); + writeStackCookie(); + } + function run() { + if (runDependencies > 0) { + return; + } + stackCheckInit(); + preRun(); + if (runDependencies > 0) { + return; + } + function doRun() { + if (calledRun) return; + calledRun = true; + Module['calledRun'] = true; + if (ABORT) return; + initRuntime(); + readyPromiseResolve(Module); + if (Module['onRuntimeInitialized']) + Module['onRuntimeInitialized'](); + assert( + !Module['_main'], + 'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]' + ); + postRun(); + } + if (Module['setStatus']) { + Module['setStatus']('Running...'); + setTimeout(function () { + setTimeout(function () { + Module['setStatus'](''); + }, 1); + doRun(); + }, 1); + } else { + doRun(); + } + checkStackCookie(); + } + if (Module['preInit']) { + if (typeof Module['preInit'] == 'function') + Module['preInit'] = [Module['preInit']]; + while (Module['preInit'].length > 0) { + Module['preInit'].pop()(); + } + } + run(); + + return moduleArg.ready; + }; +})(); +export default privateer_module; diff --git a/webapp/src/wasm/privateer.wasm b/webapp/src/wasm/privateer.wasm new file mode 100755 index 000000000..992a57df5 Binary files /dev/null and b/webapp/src/wasm/privateer.wasm differ diff --git a/webserver/tailwind.config.js b/webapp/tailwind.config.js similarity index 63% rename from webserver/tailwind.config.js rename to webapp/tailwind.config.js index d6f593d43..f2bb9e810 100644 --- a/webserver/tailwind.config.js +++ b/webapp/tailwind.config.js @@ -1,29 +1,25 @@ /** @type {import('tailwindcss').Config} */ -const colors = require('tailwindcss/colors') +const colors = require('tailwindcss/colors'); export default { - content: [ - "./index.html", - "./src/**/*.{js,ts,jsx,tsx}", - ], + content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}'], theme: { colors: { ...colors, - gray: "#D6D9E5", + gray: '#D6D9E5', primary: '#12161E', secondary: '#4a5568', tertiary: '#F4F9FF', - hover: "#e0e7ff", - darkgray: "#B6BAC6" - + hover: '#e0e7ff', + darkgray: '#B6BAC6', }, extend: { fontFamily: { body: ['OpenSans', 'sans-serif '], title: ['Poppins', 'cursive'], - } + }, }, }, plugins: [], -} \ No newline at end of file +}; diff --git a/webapp/tests/end_to_end/App.test.ts b/webapp/tests/end_to_end/App.test.ts new file mode 100644 index 000000000..6306d7315 --- /dev/null +++ b/webapp/tests/end_to_end/App.test.ts @@ -0,0 +1,22 @@ +const puppeteer = require('puppeteer'); +describe('NavBar Tests', () => { + let browser; + let page; + + beforeAll(async () => { + jest.setTimeout(35000); + browser = await puppeteer.launch({ headless: 'new' }); + page = await browser.newPage(); + }); + + it('NavBar Text loading', async () => { + await page.goto('http://localhost:5173/'); + await page.waitForSelector('#main'); + const text = await page.$eval('#main', (e) => { + return e.textContent; + }); + expect(text).toBeTruthy(); + }); + + afterAll(() => browser.close()); +}); diff --git a/webapp/tsconfig.json b/webapp/tsconfig.json new file mode 100644 index 000000000..edb8d4e1c --- /dev/null +++ b/webapp/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext", "ES2015"], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": false, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "allowImportingTsExtensions": true, + "strictNullChecks": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/webapp/tsconfig.node.json b/webapp/tsconfig.node.json new file mode 100644 index 000000000..13b35d0ba --- /dev/null +++ b/webapp/tsconfig.node.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/webapp/vite.config.ts b/webapp/vite.config.ts new file mode 100644 index 000000000..61f694f43 --- /dev/null +++ b/webapp/vite.config.ts @@ -0,0 +1,34 @@ +import { defineConfig } from 'vite'; +import react from '@vitejs/plugin-react-swc'; +import crossOriginIsolation from 'vite-plugin-cross-origin-isolation'; +import wasm from 'vite-plugin-wasm'; +import topLevelAwait from 'vite-plugin-top-level-await'; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + react(), + wasm(), + topLevelAwait(), + crossOriginIsolation(), + { + name: 'configure-response-headers', + configureServer: (server) => { + server.middlewares.use((_req, res, next) => { + res.setHeader('Cross-Origin-Opener-Policy', 'same-origin'); + res.setHeader( + 'Cross-Origin-Embedder-Policy', + 'require-corp' + ); + next(); + }); + }, + }, + ], + server: { + headers: { + 'Cross-Origin-Opener-Policy': 'same-origin', + 'Cross-Origin-Embedder-Policy': 'require-corp', + }, + }, +}); diff --git a/webserver/.eslintrc.cjs b/webserver/.eslintrc.cjs deleted file mode 100644 index d158beeb2..000000000 --- a/webserver/.eslintrc.cjs +++ /dev/null @@ -1,20 +0,0 @@ -module.exports = { - root: true, - env: {browser: true, es2020: true}, - extends: [ - 'eslint:recommended', - 'plugin:react/recommended', - 'plugin:react/jsx-runtime', - 'plugin:react-hooks/recommended', - ], - ignorePatterns: ['dist', '.eslintrc.cjs'], - parserOptions: {ecmaVersion: 'latest', sourceType: 'module'}, - settings: {react: {version: '18.2'}}, - plugins: ['react-refresh'], - rules: { - 'react-refresh/only-export-components': [ - 'warn', - {allowConstantExport: true}, - ], - }, -} diff --git a/webserver/config-overrides.js b/webserver/config-overrides.js deleted file mode 100644 index cd8c77747..000000000 --- a/webserver/config-overrides.js +++ /dev/null @@ -1,34 +0,0 @@ -/* config-overrides.js */ -const ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin'); -const path = require('path'); - -module.exports = function override(config, env) { - - config.resolve.plugins = config.resolve.plugins.filter(plugin => !(plugin instanceof ModuleScopePlugin)); - config.resolve.fallback = { - fs: false, - path: false, - crypto: false - }; - - const wasmExtensionRegExp = /\.wasm$/; - config.resolve.extensions.push('.wasm'); - config.module.rules.forEach(rule => { - (rule.oneOf || []).forEach(oneOf => { - if (oneOf.loader && oneOf.loader.indexOf('file-loader') >= 0) { - oneOf.exclude.push(wasmExtensionRegExp); - } - }); - }); - - // Add a dedicated loader for WASM - config.module.rules.push({ - test: wasmExtensionRegExp, - include: path.resolve(__dirname, 'src'), - use: [{ loader: require.resolve('wasm-loader'), options: {} }] - }); - - return config; - - return config; - } \ No newline at end of file diff --git a/webserver/index.html b/webserver/index.html deleted file mode 100644 index a57f54a2b..000000000 --- a/webserver/index.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - Privateer - - -
    - - - diff --git a/webserver/package-lock.json b/webserver/package-lock.json deleted file mode 100644 index db13015e3..000000000 --- a/webserver/package-lock.json +++ /dev/null @@ -1,8542 +0,0 @@ -{ - "name": "privateer", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "privateer", - "version": "0.0.0", - "dependencies": { - "@types/jest": "^29.5.6", - "@types/node": "^20.8.9", - "moorhen": "file:moorhen-0.5.1.tgz", - "pako": "^2.1.0", - "plotly.js": "^2.26.0", - "react": "^18.2.0", - "react-collapsed": "^4.1.2", - "react-dom": "^18.2.0", - "react-icons": "^4.11.0", - "react-inlinesvg": "^3.0.2", - "react-plotly.js": "^2.6.0", - "react-responsive-carousel": "^3.2.23", - "react-spinners": "^0.13.8", - "react-table": "^7.8.0", - "styled-components": "^6.0.6", - "vite-plugin-top-level-await": "^1.3.1" - }, - "devDependencies": { - "@types/react": "^18.2.33", - "@types/react-dom": "^18.2.14", - "@vitejs/plugin-react-swc": "^3.3.2", - "autoprefixer": "^10.4.14", - "eslint": "^8.45.0", - "eslint-plugin-react": "^7.32.2", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.3", - "postcss": "^8.4.27", - "react-router-dom": "^6.20.0", - "tailwindcss": "^3.3.3", - "typescript": "^5.2.2", - "vite": "^4.4.5", - "vite-plugin-cross-origin-isolation": "^0.1.6", - "vite-plugin-wasm": "^3.2.2" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/cli": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.22.9.tgz", - "integrity": "sha512-nb2O7AThqRo7/E53EGiuAkMaRbb7J5Qp3RvN+dmua1U+kydm0oznkhqbTEG15yk26G/C3yL6OdZjzgl+DMXVVA==", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "commander": "^4.0.1", - "convert-source-map": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.2.0", - "make-dir": "^2.1.0", - "slash": "^2.0.0" - }, - "bin": { - "babel": "bin/babel.js", - "babel-external-helpers": "bin/babel-external-helpers.js" - }, - "engines": { - "node": ">=6.9.0" - }, - "optionalDependencies": { - "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", - "chokidar": "^3.4.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", - "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/code-frame/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==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/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==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/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==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/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==" - }, - "node_modules/@babel/code-frame/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==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/code-frame/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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/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==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", - "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.9.tgz", - "integrity": "sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.9", - "@babel/helper-module-transforms": "^7.22.9", - "@babel/helpers": "^7.22.6", - "@babel/parser": "^7.22.7", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.8", - "@babel/types": "^7.22.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", - "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz", - "integrity": "sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz", - "integrity": "sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==", - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.5", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz", - "integrity": "sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz", - "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", - "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "dependencies": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", - "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", - "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", - "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", - "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-wrap-function": "^7.22.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", - "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", - "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.9.tgz", - "integrity": "sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q==", - "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz", - "integrity": "sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==", - "dependencies": { - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.6", - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==", - "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==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", - "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", - "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-external-helpers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-external-helpers/-/plugin-external-helpers-7.22.5.tgz", - "integrity": "sha512-ngnNEWxmykPk82mH4ajZT0qTztr3Je6hrMuKAslZVM8G1YZTENJSYwrIGtt6KOtznug3exmAtF4so/nPqJuA4A==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", - "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", - "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", - "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.10.tgz", - "integrity": "sha512-eueE8lvKVzq5wIObKK/7dvoeKJ+xc6TvRn6aysIjS6pSCeLy7S/eVi7pEQknZqyqvzaNKdDtem8nUNTBgDVR2g==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", - "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", - "dependencies": { - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", - "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz", - "integrity": "sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", - "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz", - "integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz", - "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes/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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", - "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz", - "integrity": "sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", - "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", - "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz", - "integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", - "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz", - "integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", - "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", - "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz", - "integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", - "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz", - "integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", - "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", - "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", - "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", - "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", - "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz", - "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==", - "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", - "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", - "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", - "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz", - "integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz", - "integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz", - "integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==", - "dependencies": { - "@babel/compat-data": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", - "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz", - "integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.10.tgz", - "integrity": "sha512-MMkQqZAZ+MGj+jGTG3OTuhKeBpNcO+0oCEbrGNEaOmiEn+1MzRyQlYsruGiU8RTK3zV6XwrVJTmwiDOyYK6J9g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", - "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", - "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz", - "integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", - "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz", - "integrity": "sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz", - "integrity": "sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", - "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz", - "integrity": "sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", - "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", - "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", - "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", - "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", - "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", - "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", - "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.9.tgz", - "integrity": "sha512-BnVR1CpKiuD0iobHPaM1iLvcwPYN2uVFAqoLVSpEDKWuOikoCv5HbKLxclhKYUXlWkX86DoZGtqI4XhbOsyrMg==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.9", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", - "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", - "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", - "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", - "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.10.tgz", - "integrity": "sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A==", - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.10", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.22.5", - "@babel/plugin-syntax-import-attributes": "^7.22.5", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.22.10", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.22.10", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.5", - "@babel/plugin-transform-classes": "^7.22.6", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.22.10", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.5", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.5", - "@babel/plugin-transform-for-of": "^7.22.5", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.5", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.5", - "@babel/plugin-transform-modules-systemjs": "^7.22.5", - "@babel/plugin-transform-modules-umd": "^7.22.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", - "@babel/plugin-transform-numeric-separator": "^7.22.5", - "@babel/plugin-transform-object-rest-spread": "^7.22.5", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.10", - "@babel/plugin-transform-parameters": "^7.22.5", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.5", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.10", - "@babel/plugin-transform-reserved-words": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/plugin-transform-spread": "^7.22.5", - "@babel/plugin-transform-sticky-regex": "^7.22.5", - "@babel/plugin-transform-template-literals": "^7.22.5", - "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.10", - "@babel/plugin-transform-unicode-property-regex": "^7.22.5", - "@babel/plugin-transform-unicode-regex": "^7.22.5", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "@babel/types": "^7.22.10", - "babel-plugin-polyfill-corejs2": "^0.4.5", - "babel-plugin-polyfill-corejs3": "^0.8.3", - "babel-plugin-polyfill-regenerator": "^0.5.2", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.5.tgz", - "integrity": "sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-transform-react-display-name": "^7.22.5", - "@babel/plugin-transform-react-jsx": "^7.22.5", - "@babel/plugin-transform-react-jsx-development": "^7.22.5", - "@babel/plugin-transform-react-pure-annotations": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz", - "integrity": "sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.5", - "@babel/plugin-transform-typescript": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" - }, - "node_modules/@babel/runtime": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.10.tgz", - "integrity": "sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", - "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@choojs/findup": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@choojs/findup/-/findup-0.2.1.tgz", - "integrity": "sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw==", - "dependencies": { - "commander": "^2.15.1" - }, - "bin": { - "findup": "bin/findup.js" - } - }, - "node_modules/@choojs/findup/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/@emotion/is-prop-valid": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", - "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", - "dependencies": { - "@emotion/memoize": "^0.8.1" - } - }, - "node_modules/@emotion/memoize": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", - "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" - }, - "node_modules/@emotion/unitless": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", - "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" - }, - "node_modules/@esbuild/android-arm": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.17.tgz", - "integrity": "sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.17.tgz", - "integrity": "sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.17.tgz", - "integrity": "sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.17.tgz", - "integrity": "sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.17.tgz", - "integrity": "sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.17.tgz", - "integrity": "sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.17.tgz", - "integrity": "sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.17.tgz", - "integrity": "sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.17.tgz", - "integrity": "sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.17.tgz", - "integrity": "sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.17.tgz", - "integrity": "sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==", - "cpu": [ - "loong64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.17.tgz", - "integrity": "sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==", - "cpu": [ - "mips64el" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.17.tgz", - "integrity": "sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.17.tgz", - "integrity": "sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.17.tgz", - "integrity": "sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.17.tgz", - "integrity": "sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.17.tgz", - "integrity": "sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.17.tgz", - "integrity": "sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.17.tgz", - "integrity": "sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.17.tgz", - "integrity": "sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.17.tgz", - "integrity": "sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.17.tgz", - "integrity": "sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==", - "cpu": [ - "x64" - ], - "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.6.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz", - "integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", - "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/js": { - "version": "8.44.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", - "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", - "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", - "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/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", - "dependencies": { - "jest-get-type": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@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==", - "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==", - "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==", - "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==" - }, - "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==", - "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==" - }, - "node_modules/@mapbox/geojson-rewind": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", - "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==", - "dependencies": { - "get-stream": "^6.0.1", - "minimist": "^1.2.6" - }, - "bin": { - "geojson-rewind": "geojson-rewind" - } - }, - "node_modules/@mapbox/geojson-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz", - "integrity": "sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==" - }, - "node_modules/@mapbox/jsonlint-lines-primitives": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", - "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@mapbox/mapbox-gl-supported": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz", - "integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==", - "peerDependencies": { - "mapbox-gl": ">=0.32.1 <2.0.0" - } - }, - "node_modules/@mapbox/point-geometry": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", - "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==" - }, - "node_modules/@mapbox/tiny-sdf": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.2.5.tgz", - "integrity": "sha512-cD8A/zJlm6fdJOk6DqPUV8mcpyJkRz2x2R+/fYcWDYG3oWbG7/L7Yl/WqQ1VZCjnL9OTIMAn6c+BC5Eru4sQEw==" - }, - "node_modules/@mapbox/unitbezier": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", - "integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==" - }, - "node_modules/@mapbox/vector-tile": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", - "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", - "dependencies": { - "@mapbox/point-geometry": "~0.1.0" - } - }, - "node_modules/@mapbox/whoots-js": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", - "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@nicolo-ribaudo/chokidar-2": { - "version": "2.1.8-no-fsevents.3", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", - "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", - "optional": 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/@plotly/d3": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@plotly/d3/-/d3-3.8.1.tgz", - "integrity": "sha512-x49ThEu1FRA00kTso4Jdfyf2byaCPLBGmLjAYQz5OzaPyLUhHesX3/Nfv2OHEhynhdy2UB39DLXq6thYe2L2kg==" - }, - "node_modules/@plotly/d3-sankey": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@plotly/d3-sankey/-/d3-sankey-0.7.2.tgz", - "integrity": "sha512-2jdVos1N3mMp3QW0k2q1ph7Gd6j5PY1YihBrwpkFnKqO+cqtZq3AdEYUeSGXMeLsBDQYiqTVcihYfk8vr5tqhw==", - "dependencies": { - "d3-array": "1", - "d3-collection": "1", - "d3-shape": "^1.2.0" - } - }, - "node_modules/@plotly/d3-sankey-circular": { - "version": "0.33.1", - "resolved": "https://registry.npmjs.org/@plotly/d3-sankey-circular/-/d3-sankey-circular-0.33.1.tgz", - "integrity": "sha512-FgBV1HEvCr3DV7RHhDsPXyryknucxtfnLwPtCKKxdolKyTFYoLX/ibEfX39iFYIL7DYbVeRtP43dbFcrHNE+KQ==", - "dependencies": { - "d3-array": "^1.2.1", - "d3-collection": "^1.0.4", - "d3-shape": "^1.2.0", - "elementary-circuits-directed-graph": "^1.0.4" - } - }, - "node_modules/@plotly/point-cluster": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@plotly/point-cluster/-/point-cluster-3.1.9.tgz", - "integrity": "sha512-MwaI6g9scKf68Orpr1pHZ597pYx9uP8UEFXLPbsCmuw3a84obwz6pnMXGc90VhgDNeNiLEdlmuK7CPo+5PIxXw==", - "dependencies": { - "array-bounds": "^1.0.1", - "binary-search-bounds": "^2.0.4", - "clamp": "^1.0.1", - "defined": "^1.0.0", - "dtype": "^2.0.0", - "flatten-vertex-data": "^1.0.2", - "is-obj": "^1.0.1", - "math-log2": "^1.0.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0" - } - }, - "node_modules/@remix-run/router": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.13.0.tgz", - "integrity": "sha512-5dMOnVnefRsl4uRnAdoWjtVTdh8e6aZqgM4puy9nmEADH72ck+uXwzpJLEKE9Q6F8ZljNewLgmTfkxUrBdv4WA==", - "dev": true, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@rollup/plugin-virtual": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-virtual/-/plugin-virtual-3.0.1.tgz", - "integrity": "sha512-fK8O0IL5+q+GrsMLuACVNk2x21g3yaw+sG2qn16SnUd3IlBsQyvWxLMGHmCmXRMecPjGRSZ/1LmZB4rjQm68og==", - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" - }, - "node_modules/@swc/core": { - "version": "1.3.71", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.71.tgz", - "integrity": "sha512-T8dqj+SV/S8laW/FGmKHhCGw1o4GRUvJ2jHfbYgEwiJpeutT9uavHvG02t39HJvObBJ52EZs/krGtni4U5928Q==", - "hasInstallScript": true, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-darwin-arm64": "1.3.71", - "@swc/core-darwin-x64": "1.3.71", - "@swc/core-linux-arm-gnueabihf": "1.3.71", - "@swc/core-linux-arm64-gnu": "1.3.71", - "@swc/core-linux-arm64-musl": "1.3.71", - "@swc/core-linux-x64-gnu": "1.3.71", - "@swc/core-linux-x64-musl": "1.3.71", - "@swc/core-win32-arm64-msvc": "1.3.71", - "@swc/core-win32-ia32-msvc": "1.3.71", - "@swc/core-win32-x64-msvc": "1.3.71" - }, - "peerDependencies": { - "@swc/helpers": "^0.5.0" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } - } - }, - "node_modules/@swc/core-darwin-arm64": { - "version": "1.3.71", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.71.tgz", - "integrity": "sha512-xOm0hDbcO2ShwQu1CjLtq3fwrG9AvhuE0s8vtBc8AsamYExHmR8bo6GQHJUtfPG1FVPk5a8xoQSd1fs09FQjLg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.3.71", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.71.tgz", - "integrity": "sha512-9sbDXBWgM22w/3Ll5kPhXMPkOiHRoqwMOyxLJBfGtIMnFlh5O+NRN3umRerK3pe4Q6/7hj2M5V+crEHYrXmuxg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.3.71", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.71.tgz", - "integrity": "sha512-boKdMZsfKvhBs0FDeqH7KQj0lfYe0wCtrL1lv50oYMEeLajY9o4U5xSmc61Sg4HRXjlbR6dlM2cFfL84t7NpAA==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.3.71", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.71.tgz", - "integrity": "sha512-yDatyHYMiOVwhyIA/LBwknPs2CUtLYWEMzPZjgLc+56PbgPs3oiEbNWeVUND5onPrfDQgK7NK1y8JeiXZqTgGQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.3.71", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.71.tgz", - "integrity": "sha512-xAdCA0L/hoa0ULL5SR4sMZCxkWk7C90DOU7wJalNVG9qNWYICfq3G7AR0E9Ohphzqyahfb5QJED/nA7N0+XwbQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.3.71", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.71.tgz", - "integrity": "sha512-j94qLXP/yqhu2afnABAq/xrJIU8TEqcNkp1TlsAeO3R2nVLYL1w4XX8GW71SPnXmd2bwF102c3Cfv/2ilf2y2A==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-musl": { - "version": "1.3.71", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.71.tgz", - "integrity": "sha512-YiyU848ql6dLlmt0BHccGAaZ36Cf61VzCAMDKID/gd72snvzWcMCHrwSRW0gEFNXHsjBJrmNl+SLYZHfqoGwUA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.3.71", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.71.tgz", - "integrity": "sha512-1UsJ+6hnIRe/PVdgDPexvgGaN4KpBncT/bAOqlWc9XC7KeBXAWcGA08LrPUz2Ei00DJXzR622IGZVEYOHNkUOw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.3.71", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.71.tgz", - "integrity": "sha512-KnuI89+zojR9lDFELdQYZpxzPZ6pBfLwJfWTSGatnpL1ZHhIsV3tK1jwqIdJK1zkRxpBwc6p6FzSZdZwCSpnJw==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.3.71", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.71.tgz", - "integrity": "sha512-Pcw7fFirpaBOZsU8fhO48ZCb7NxIjuLnLRPrHqWQ4Mapx1+w9ZNdGya2DKP9n8EAiUrJO20WDsrBNMT2MQSWkA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@turf/area": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/area/-/area-6.5.0.tgz", - "integrity": "sha512-xCZdiuojokLbQ+29qR6qoMD89hv+JAgWjLrwSEWL+3JV8IXKeNFl6XkEJz9HGkVpnXvQKJoRz4/liT+8ZZ5Jyg==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/bbox": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.5.0.tgz", - "integrity": "sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/centroid": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-6.5.0.tgz", - "integrity": "sha512-MwE1oq5E3isewPprEClbfU5pXljIK/GUOMbn22UM3IFPDJX0KeoyLNwghszkdmFp/qMGL/M13MMWvU+GNLXP/A==", - "dependencies": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/helpers": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.5.0.tgz", - "integrity": "sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==", - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/meta": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.5.0.tgz", - "integrity": "sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==", - "dependencies": { - "@turf/helpers": "^6.5.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-zONci81DZYCZjiLe0r6equvZut0b+dBRPBN5kBDjsONnutYNtJMoWQ9uR2RkL1gLG9NMTzvf+29e5RFfPbeKhQ==" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.2.tgz", - "integrity": "sha512-8toY6FgdltSdONav1XtUHl4LN1yTmLza+EuDazb/fEmRNCwjyqNVIQWs2IfC74IqjHkREs/nQ2FWq5kZU9IC0w==", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.3.tgz", - "integrity": "sha512-1nESsePMBlf0RPRffLZi5ujYh7IH1BWL4y9pr+Bn3cJBdxz+RTP8bUFljLz9HvzhhOSWKdyBZ4DIivdL6rvgZg==", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "29.5.6", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.6.tgz", - "integrity": "sha512-/t9NnzkOpXb4Nfvg17ieHE6EeSjDS2SGSpNYfoLbUAeL/EOueU/RSdOWFpfQTXBEM7BguYW1XQ0EbM+6RlIh6w==", - "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" - } - }, - "node_modules/@types/node": { - "version": "20.8.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.9.tgz", - "integrity": "sha512-UzykFsT3FhHb1h7yD4CA4YhBHq545JC0YnEz41xkipN88eKQtL6rSgocL5tbAP6Ola9Izm/Aw4Ora8He4x0BHg==", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", - "dev": true - }, - "node_modules/@types/react": { - "version": "18.2.33", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.33.tgz", - "integrity": "sha512-v+I7S+hu3PIBoVkKGpSYYpiBT1ijqEzWpzQD62/jm4K74hPpSP7FF9BnKG6+fg2+62weJYkkBWDJlZt5JO/9hg==", - "dev": true, - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "18.2.14", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.14.tgz", - "integrity": "sha512-V835xgdSVmyQmI1KLV2BEIUgqEuinxp9O4G6g3FqO/SqLac049E53aysv0oEFD2kHfejeKU+ZqL2bcFWj9gLAQ==", - "dev": true, - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/scheduler": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", - "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==", - "dev": true - }, - "node_modules/@types/stack-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.2.tgz", - "integrity": "sha512-g7CK9nHdwjK2n0ymT2CW698FuWJRIx+RP6embAzZ2Qi8/ilIrA1Imt2LVSeHUzKvpoi7BhmmQcXz95eS0f2JXw==" - }, - "node_modules/@types/stylis": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.0.tgz", - "integrity": "sha512-n4sx2bqL0mW1tvDf/loQ+aMX7GQD3lc3fkCMC55VFNDu/vBOabO+LTIeXKM14xK0ppk5TUGcWRjiSpIlUpghKw==" - }, - "node_modules/@types/yargs": { - "version": "17.0.29", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.29.tgz", - "integrity": "sha512-nacjqA3ee9zRF/++a3FUY1suHTFKZeHba2n8WeDw9cCVdmzmHpIxyzOJBcpHvvEmS8E9KqWlSnWHUkOrkhWcvA==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.2", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.2.tgz", - "integrity": "sha512-5qcvofLPbfjmBfKaLfj/+f+Sbd6pN4zl7w7VSVI5uz7m9QZTuB2aZAa2uo1wHFBNN2x6g/SoTkXmd8mQnQF2Cw==" - }, - "node_modules/@vitejs/plugin-react-swc": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.3.2.tgz", - "integrity": "sha512-VJFWY5sfoZerQRvJrh518h3AcQt6f/yTuWn4/TRB+dqmYU0NX1qz7qM5Wfd+gOQqUzQW4gxKqKN3KpE/P3+zrA==", - "dev": true, - "dependencies": { - "@swc/core": "^1.3.61" - }, - "peerDependencies": { - "vite": "^4" - } - }, - "node_modules/abs-svg-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", - "integrity": "sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==" - }, - "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "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/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/almost-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/almost-equal/-/almost-equal-1.1.0.tgz", - "integrity": "sha512-0V/PkoculFl5+0Lp47JoxUcO0xSxhIBvm+BxHdD/OgXNmdRpRHCFnKVuUoWyS9EzQP+otSGv0m9Lb4yVkQBn2A==" - }, - "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==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "devOptional": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "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-bounds": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-bounds/-/array-bounds-1.0.1.tgz", - "integrity": "sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ==" - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-normalize": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array-normalize/-/array-normalize-1.1.4.tgz", - "integrity": "sha512-fCp0wKFLjvSPmCn4F5Tiw4M3lpMZoHlCjfcs7nNzuj3vqQQ1/a8cgB9DXcpDSn18c+coLnaW7rqfcYCvKbyJXg==", - "dependencies": { - "array-bounds": "^1.0.0" - } - }, - "node_modules/array-range": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-range/-/array-range-1.0.1.tgz", - "integrity": "sha512-shdaI1zT3CVNL2hnx9c0JMc0ZogGaxDs5e85akgHWKYa0yVbIyp06Ind3dVkTj/uuFrzaHBOyqFzo+VV6aXgtA==" - }, - "node_modules/array-rearrange": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/array-rearrange/-/array-rearrange-2.2.2.tgz", - "integrity": "sha512-UfobP5N12Qm4Qu4fwLDIi2v6+wZsSf6snYSxAMeKhrh37YGnNWZPRmVEKc/2wfms53TLQnzfpG8wCx2Y/6NG1w==" - }, - "node_modules/array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", - "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.1.3" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz", - "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.14", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", - "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - } - ], - "dependencies": { - "browserslist": "^4.21.5", - "caniuse-lite": "^1.0.30001464", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", - "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.2", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz", - "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2", - "core-js-compat": "^3.31.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", - "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-styled-components": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz", - "integrity": "sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==", - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "lodash": "^4.17.21", - "picomatch": "^2.3.1" - }, - "peerDependencies": { - "styled-components": ">= 2" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "devOptional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/binary-search-bounds": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.5.tgz", - "integrity": "sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA==" - }, - "node_modules/bit-twiddle": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz", - "integrity": "sha512-B9UhK0DKFZhoTFcfvAzhqsjStvGJp9vYWf3+6SNTtdSQnvIgfkHbgHrg/e4+TH71N2GDu8tpmCVoyfrL1d7ntA==" - }, - "node_modules/bitmap-sdf": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bitmap-sdf/-/bitmap-sdf-1.0.4.tgz", - "integrity": "sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==" - }, - "node_modules/bl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", - "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", - "dependencies": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/camelize": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", - "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001517", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz", - "integrity": "sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==", - "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/canvas-fit": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/canvas-fit/-/canvas-fit-1.5.0.tgz", - "integrity": "sha512-onIcjRpz69/Hx5bB5HGbYKUF2uC6QT6Gp+pfpGm3A7mPfcluSLV5v4Zu+oflDUwLdUw0rLIBhUbi0v8hM4FJQQ==", - "dependencies": { - "element-size": "^1.1.1" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "devOptional": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/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==", - "devOptional": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/clamp": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", - "integrity": "sha512-kgMuFyE78OC6Dyu3Dy7vcx4uy97EIbVxJB/B0eJ3bUNAkwdNcxYzgKltnyADiYwsR7SEqkkUPsEUT//OVS6XMA==" - }, - "node_modules/classnames": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", - "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" - }, - "node_modules/color-alpha": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/color-alpha/-/color-alpha-1.0.4.tgz", - "integrity": "sha512-lr8/t5NPozTSqli+duAN+x+no/2WaKTeWvxhHGN+aXT6AJ8vPlzLa7UriyjWak0pSC2jHol9JgjBYnnHsGha9A==", - "dependencies": { - "color-parse": "^1.3.8" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-id": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/color-id/-/color-id-1.1.0.tgz", - "integrity": "sha512-2iRtAn6dC/6/G7bBIo0uupVrIne1NsQJvJxZOBCzQOfk7jRq97feaDZ3RdzuHakRXXnHGNwglto3pqtRx1sX0g==", - "dependencies": { - "clamp": "^1.0.1" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/color-normalize": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/color-normalize/-/color-normalize-1.5.0.tgz", - "integrity": "sha512-rUT/HDXMr6RFffrR53oX3HGWkDOP9goSAQGBkUaAYKjOE2JxozccdGyufageWDlInRAjm/jYPrf/Y38oa+7obw==", - "dependencies": { - "clamp": "^1.0.1", - "color-rgba": "^2.1.1", - "dtype": "^2.0.0" - } - }, - "node_modules/color-parse": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.3.8.tgz", - "integrity": "sha512-1Y79qFv0n1xair3lNMTNeoFvmc3nirMVBij24zbs1f13+7fPpQClMg5b4AuKXLt3szj7BRlHMCXHplkce6XlmA==", - "dependencies": { - "color-name": "^1.0.0", - "defined": "^1.0.0", - "is-plain-obj": "^1.1.0" - } - }, - "node_modules/color-rgba": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-2.1.1.tgz", - "integrity": "sha512-VaX97wsqrMwLSOR6H7rU1Doa2zyVdmShabKrPEIFywLlHoibgD3QW9Dw6fSqM4+H/LfjprDNAUUW31qEQcGzNw==", - "dependencies": { - "clamp": "^1.0.1", - "color-parse": "^1.3.8", - "color-space": "^1.14.6" - } - }, - "node_modules/color-space": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/color-space/-/color-space-1.16.0.tgz", - "integrity": "sha512-A6WMiFzunQ8KEPFmj02OnnoUnqhmSaHaZ/0LVFcPTdlvm8+3aMJ5x1HRHy3bDHPkovkf4sS0f4wsVvwk71fKkg==", - "dependencies": { - "hsluv": "^0.0.3", - "mumath": "^3.3.4" - } - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" - }, - "node_modules/core-js-compat": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.0.tgz", - "integrity": "sha512-7a9a3D1k4UCVKnLhrgALyFcP7YCsLOQIxPd0dKjf/6GuPcgyiGP70ewWdCGrSK7evyhymi0qO4EqCmSJofDeYw==", - "dependencies": { - "browserslist": "^4.21.9" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/country-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/country-regex/-/country-regex-1.1.0.tgz", - "integrity": "sha512-iSPlClZP8vX7MC3/u6s3lrDuoQyhQukh5LyABJ3hvfzbQ3Yyayd4fp04zjLnfi267B/B2FkumcWWgrbban7sSA==" - }, - "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/css-color-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", - "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", - "engines": { - "node": ">=4" - } - }, - "node_modules/css-font": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-font/-/css-font-1.2.0.tgz", - "integrity": "sha512-V4U4Wps4dPDACJ4WpgofJ2RT5Yqwe1lEH6wlOOaIxMi0gTjdIijsc5FmxQlZ7ZZyKQkkutqqvULOp07l9c7ssA==", - "dependencies": { - "css-font-size-keywords": "^1.0.0", - "css-font-stretch-keywords": "^1.0.1", - "css-font-style-keywords": "^1.0.1", - "css-font-weight-keywords": "^1.0.0", - "css-global-keywords": "^1.0.1", - "css-system-font-keywords": "^1.0.0", - "pick-by-alias": "^1.2.0", - "string-split-by": "^1.0.0", - "unquote": "^1.1.0" - } - }, - "node_modules/css-font-size-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz", - "integrity": "sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q==" - }, - "node_modules/css-font-stretch-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz", - "integrity": "sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg==" - }, - "node_modules/css-font-style-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz", - "integrity": "sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg==" - }, - "node_modules/css-font-weight-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz", - "integrity": "sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA==" - }, - "node_modules/css-global-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-global-keywords/-/css-global-keywords-1.0.1.tgz", - "integrity": "sha512-X1xgQhkZ9n94WDwntqst5D/FKkmiU0GlJSFZSV3kLvyJ1WC5VeyoXDOuleUD+SIuH9C7W05is++0Woh0CGfKjQ==" - }, - "node_modules/css-system-font-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz", - "integrity": "sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA==" - }, - "node_modules/css-to-react-native": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", - "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", - "dependencies": { - "camelize": "^1.0.0", - "css-color-keywords": "^1.0.0", - "postcss-value-parser": "^4.0.2" - } - }, - "node_modules/csscolorparser": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", - "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==" - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - }, - "node_modules/d3-collection": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", - "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" - }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dispatch": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", - "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" - }, - "node_modules/d3-force": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", - "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", - "dependencies": { - "d3-collection": "1", - "d3-dispatch": "1", - "d3-quadtree": "1", - "d3-timer": "1" - } - }, - "node_modules/d3-format": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", - "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" - }, - "node_modules/d3-geo": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", - "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", - "dependencies": { - "d3-array": "1" - } - }, - "node_modules/d3-geo-projection": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-2.9.0.tgz", - "integrity": "sha512-ZULvK/zBn87of5rWAfFMc9mJOipeSo57O+BBitsKIXmU4rTVAnX1kSsJkE0R+TxY8pGNoM1nbyRRE7GYHhdOEQ==", - "dependencies": { - "commander": "2", - "d3-array": "1", - "d3-geo": "^1.12.0", - "resolve": "^1.1.10" - }, - "bin": { - "geo2svg": "bin/geo2svg", - "geograticule": "bin/geograticule", - "geoproject": "bin/geoproject", - "geoquantize": "bin/geoquantize", - "geostitch": "bin/geostitch" - } - }, - "node_modules/d3-geo-projection/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/d3-geo-projection/node_modules/resolve": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", - "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/d3-hierarchy": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", - "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" - }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" - }, - "node_modules/d3-quadtree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", - "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" - }, - "node_modules/d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", - "dependencies": { - "d3-path": "1" - } - }, - "node_modules/d3-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", - "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" - }, - "node_modules/d3-time-format": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", - "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", - "dependencies": { - "d3-time": "1" - } - }, - "node_modules/d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", - "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - }, - "node_modules/define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", - "dev": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/defined": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", - "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/detect-kerning": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-kerning/-/detect-kerning-2.1.2.tgz", - "integrity": "sha512-I3JIbrnKPAntNLl1I6TpSQQdQ4AutYzv/sKMFKbepawV/hlH0GmYKhUoOEMd4xqaUHT+Bm0f4127lh5qs1m1tw==" - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, - "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/draw-svg-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/draw-svg-path/-/draw-svg-path-1.0.0.tgz", - "integrity": "sha512-P8j3IHxcgRMcY6sDzr0QvJDLzBnJJqpTG33UZ2Pvp8rw0apCHhJCWqYprqrXjrgHnJ6tuhP1iTJSAodPDHxwkg==", - "dependencies": { - "abs-svg-path": "~0.1.1", - "normalize-svg-path": "~0.1.0" - } - }, - "node_modules/dtype": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", - "integrity": "sha512-s2YVcLKdFGS0hpFqJaTwscsyt0E8nNFdmo73Ocd81xNPj4URI4rj6D60A+vFMIw7BXWlb4yRkEwfBqcZzPGiZg==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/dup": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dup/-/dup-1.0.0.tgz", - "integrity": "sha512-Bz5jxMMC0wgp23Zm15ip1x8IhYRqJvF3nFC0UInJUDkN1z4uNPk9jTnfCUJXbOGiQ1JbXLQsiV41Fb+HXcj5BA==" - }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/earcut": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", - "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.474", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.474.tgz", - "integrity": "sha512-GsFT9gtxkFMkpHf13UeN/RFbWdLQVs4DMxA1aQv4xdUAT2qyXEoAQ0hodl2sUvWmztOlicM1UYnNPcoMdzQB5A==" - }, - "node_modules/element-size": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/element-size/-/element-size-1.1.1.tgz", - "integrity": "sha512-eaN+GMOq/Q+BIWy0ybsgpcYImjGIdNLyjLFJU4XsLHXYQao5jCNb36GyN6C2qwmDDYSfIBmKpPpr4VnBdLCsPQ==" - }, - "node_modules/elementary-circuits-directed-graph": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/elementary-circuits-directed-graph/-/elementary-circuits-directed-graph-1.3.1.tgz", - "integrity": "sha512-ZEiB5qkn2adYmpXGnJKkxT8uJHlW/mxmBpmeqawEHzPxh9HkLD4/1mFYX5l0On+f6rcPIt8/EWlRU2Vo3fX6dQ==", - "dependencies": { - "strongly-connected-components": "^1.0.1" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/es-abstract": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz", - "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.1", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.1", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.0", - "safe-array-concat": "^1.0.0", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/esbuild": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.17.tgz", - "integrity": "sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==", - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.18.17", - "@esbuild/android-arm64": "0.18.17", - "@esbuild/android-x64": "0.18.17", - "@esbuild/darwin-arm64": "0.18.17", - "@esbuild/darwin-x64": "0.18.17", - "@esbuild/freebsd-arm64": "0.18.17", - "@esbuild/freebsd-x64": "0.18.17", - "@esbuild/linux-arm": "0.18.17", - "@esbuild/linux-arm64": "0.18.17", - "@esbuild/linux-ia32": "0.18.17", - "@esbuild/linux-loong64": "0.18.17", - "@esbuild/linux-mips64el": "0.18.17", - "@esbuild/linux-ppc64": "0.18.17", - "@esbuild/linux-riscv64": "0.18.17", - "@esbuild/linux-s390x": "0.18.17", - "@esbuild/linux-x64": "0.18.17", - "@esbuild/netbsd-x64": "0.18.17", - "@esbuild/openbsd-x64": "0.18.17", - "@esbuild/sunos-x64": "0.18.17", - "@esbuild/win32-arm64": "0.18.17", - "@esbuild/win32-ia32": "0.18.17", - "@esbuild/win32-x64": "0.18.17" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "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/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=4.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.45.0.tgz", - "integrity": "sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.1.0", - "@eslint/js": "8.44.0", - "@humanwhocodes/config-array": "^0.11.10", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.6.0", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "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-plugin-react": { - "version": "7.33.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.0.tgz", - "integrity": "sha512-qewL/8P34WkY8jAqdQxsiL82pDUeT7nhs8IsuXgfgnsEloKCT4miAV9N9kGtx7/KM9NH/NCGUE7Edt9iGxLXFw==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", - "doctrine": "^2.1.0", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.8" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", - "dev": true, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" - } - }, - "node_modules/eslint-plugin-react-refresh": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.3.tgz", - "integrity": "sha512-Hh0wv8bUNY877+sI0BlCUlsS0TYYQqvzEwJsJJPM2WF4RnTStSnSR3zdJYa2nPOJgg3UghXi54lVyMSmpCalzA==", - "dev": true, - "peerDependencies": { - "eslint": ">=7" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.1.tgz", - "integrity": "sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==", - "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-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/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "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/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/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/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/exenv": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", - "integrity": "sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==" - }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", - "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dependencies": { - "type": "^2.7.2" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" - }, - "node_modules/falafel": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.5.tgz", - "integrity": "sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==", - "dependencies": { - "acorn": "^7.1.1", - "isarray": "^2.0.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/falafel/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.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-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "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-isnumeric": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-isnumeric/-/fast-isnumeric-1.1.4.tgz", - "integrity": "sha512-1mM8qOr2LYz8zGaUdmiqRDiuue00Dxjgcb1NQR7TnhLVh6sQyngP9xvLo7Sl7LZpP/sk5eb+bcyWXw530NTBZw==", - "dependencies": { - "is-string-blank": "^1.0.1" - } - }, - "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==" - }, - "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==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "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-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/flatten-vertex-data": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flatten-vertex-data/-/flatten-vertex-data-1.0.2.tgz", - "integrity": "sha512-BvCBFK2NZqerFTdMDgqfHBwxYWnxeCkwONsw6PvBMcUXqo8U/KDWwmXhqx1x2kLIg7DqIsJfOaJFOmlua3Lxuw==", - "dependencies": { - "dtype": "^2.0.0" - } - }, - "node_modules/font-atlas": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/font-atlas/-/font-atlas-2.1.0.tgz", - "integrity": "sha512-kP3AmvX+HJpW4w3d+PiPR2X6E1yvsBXt2yhuCw+yReO9F1WYhvZwx3c95DGZGwg9xYzDGrgJYa885xmVA+28Cg==", - "dependencies": { - "css-font": "^1.0.0" - } - }, - "node_modules/font-measure": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/font-measure/-/font-measure-1.2.2.tgz", - "integrity": "sha512-mRLEpdrWzKe9hbfaF3Qpr06TAjquuBVP5cHy4b3hyeNdjc9i0PO6HniGsX5vjL5OWv7+Bd++NiooNpT/s8BvIA==", - "dependencies": { - "css-font": "^1.2.0" - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://www.patreon.com/infusion" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/geojson-vt": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", - "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==" - }, - "node_modules/get-canvas-context": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz", - "integrity": "sha512-LnpfLf/TNzr9zVOGiIY6aKCz8EKuXmlYNV7CM2pUjBa/B+c2I15tS7KLySep75+FuerJdmArvJLcsAXWEy2H0A==" - }, - "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gl-mat4": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gl-mat4/-/gl-mat4-1.2.0.tgz", - "integrity": "sha512-sT5C0pwB1/e9G9AvAoLsoaJtbMGjfd/jfxo8jMCKqYYEnjZuFvqV5rehqar0538EmssjdDeiEWnKyBSTw7quoA==" - }, - "node_modules/gl-matrix": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", - "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" - }, - "node_modules/gl-text": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/gl-text/-/gl-text-1.3.1.tgz", - "integrity": "sha512-/f5gcEMiZd+UTBJLTl3D+CkCB/0UFGTx3nflH8ZmyWcLkZhsZ1+Xx5YYkw2rgWAzgPeE35xCqBuHSoMKQVsR+w==", - "dependencies": { - "bit-twiddle": "^1.0.2", - "color-normalize": "^1.5.0", - "css-font": "^1.2.0", - "detect-kerning": "^2.1.2", - "es6-weak-map": "^2.0.3", - "flatten-vertex-data": "^1.0.2", - "font-atlas": "^2.1.0", - "font-measure": "^1.2.2", - "gl-util": "^3.1.2", - "is-plain-obj": "^1.1.0", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "parse-unit": "^1.0.1", - "pick-by-alias": "^1.2.0", - "regl": "^2.0.0", - "to-px": "^1.0.1", - "typedarray-pool": "^1.1.0" - } - }, - "node_modules/gl-util": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/gl-util/-/gl-util-3.1.3.tgz", - "integrity": "sha512-dvRTggw5MSkJnCbh74jZzSoTOGnVYK+Bt+Ckqm39CVcl6+zSsxqWk4lr5NKhkqXHL6qvZAU9h17ZF8mIskY9mA==", - "dependencies": { - "is-browser": "^2.0.1", - "is-firefox": "^1.0.3", - "is-plain-obj": "^1.1.0", - "number-is-integer": "^1.0.1", - "object-assign": "^4.1.0", - "pick-by-alias": "^1.2.0", - "weak-map": "^1.0.5" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "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/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glsl-inject-defines": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz", - "integrity": "sha512-W49jIhuDtF6w+7wCMcClk27a2hq8znvHtlGnrYkSWEr8tHe9eA2dcnohlcAmxLYBSpSSdzOkRdyPTrx9fw49+A==", - "dependencies": { - "glsl-token-inject-block": "^1.0.0", - "glsl-token-string": "^1.0.1", - "glsl-tokenizer": "^2.0.2" - } - }, - "node_modules/glsl-resolve": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/glsl-resolve/-/glsl-resolve-0.0.1.tgz", - "integrity": "sha512-xxFNsfnhZTK9NBhzJjSBGX6IOqYpvBHxxmo+4vapiljyGNCY0Bekzn0firQkQrazK59c1hYxMDxYS8MDlhw4gA==", - "dependencies": { - "resolve": "^0.6.1", - "xtend": "^2.1.2" - } - }, - "node_modules/glsl-resolve/node_modules/resolve": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz", - "integrity": "sha512-UHBY3viPlJKf85YijDUcikKX6tmF4SokIDp518ZDVT92JNDcG5uKIthaT/owt3Sar0lwtOafsQuwrg22/v2Dwg==" - }, - "node_modules/glsl-resolve/node_modules/xtend": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", - "integrity": "sha512-SLt5uylT+4aoXxXuwtQp5ZnMMzhDb1Xkg4pEqc00WUJCQifPfV9Ub1VrNhp9kXkrjZD2I2Hl8WnjP37jzZLPZw==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/glsl-token-assignments": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/glsl-token-assignments/-/glsl-token-assignments-2.0.2.tgz", - "integrity": "sha512-OwXrxixCyHzzA0U2g4btSNAyB2Dx8XrztY5aVUCjRSh4/D0WoJn8Qdps7Xub3sz6zE73W3szLrmWtQ7QMpeHEQ==" - }, - "node_modules/glsl-token-defines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glsl-token-defines/-/glsl-token-defines-1.0.0.tgz", - "integrity": "sha512-Vb5QMVeLjmOwvvOJuPNg3vnRlffscq2/qvIuTpMzuO/7s5kT+63iL6Dfo2FYLWbzuiycWpbC0/KV0biqFwHxaQ==", - "dependencies": { - "glsl-tokenizer": "^2.0.0" - } - }, - "node_modules/glsl-token-depth": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/glsl-token-depth/-/glsl-token-depth-1.1.2.tgz", - "integrity": "sha512-eQnIBLc7vFf8axF9aoi/xW37LSWd2hCQr/3sZui8aBJnksq9C7zMeUYHVJWMhFzXrBU7fgIqni4EhXVW4/krpg==" - }, - "node_modules/glsl-token-descope": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glsl-token-descope/-/glsl-token-descope-1.0.2.tgz", - "integrity": "sha512-kS2PTWkvi/YOeicVjXGgX5j7+8N7e56srNDEHDTVZ1dcESmbmpmgrnpjPcjxJjMxh56mSXYoFdZqb90gXkGjQw==", - "dependencies": { - "glsl-token-assignments": "^2.0.0", - "glsl-token-depth": "^1.1.0", - "glsl-token-properties": "^1.0.0", - "glsl-token-scope": "^1.1.0" - } - }, - "node_modules/glsl-token-inject-block": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/glsl-token-inject-block/-/glsl-token-inject-block-1.1.0.tgz", - "integrity": "sha512-q/m+ukdUBuHCOtLhSr0uFb/qYQr4/oKrPSdIK2C4TD+qLaJvqM9wfXIF/OOBjuSA3pUoYHurVRNao6LTVVUPWA==" - }, - "node_modules/glsl-token-properties": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glsl-token-properties/-/glsl-token-properties-1.0.1.tgz", - "integrity": "sha512-dSeW1cOIzbuUoYH0y+nxzwK9S9O3wsjttkq5ij9ZGw0OS41BirKJzzH48VLm8qLg+au6b0sINxGC0IrGwtQUcA==" - }, - "node_modules/glsl-token-scope": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/glsl-token-scope/-/glsl-token-scope-1.1.2.tgz", - "integrity": "sha512-YKyOMk1B/tz9BwYUdfDoHvMIYTGtVv2vbDSLh94PT4+f87z21FVdou1KNKgF+nECBTo0fJ20dpm0B1vZB1Q03A==" - }, - "node_modules/glsl-token-string": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glsl-token-string/-/glsl-token-string-1.0.1.tgz", - "integrity": "sha512-1mtQ47Uxd47wrovl+T6RshKGkRRCYWhnELmkEcUAPALWGTFe2XZpH3r45XAwL2B6v+l0KNsCnoaZCSnhzKEksg==" - }, - "node_modules/glsl-token-whitespace-trim": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glsl-token-whitespace-trim/-/glsl-token-whitespace-trim-1.0.0.tgz", - "integrity": "sha512-ZJtsPut/aDaUdLUNtmBYhaCmhIjpKNg7IgZSfX5wFReMc2vnj8zok+gB/3Quqs0TsBSX/fGnqUUYZDqyuc2xLQ==" - }, - "node_modules/glsl-tokenizer": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/glsl-tokenizer/-/glsl-tokenizer-2.1.5.tgz", - "integrity": "sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==", - "dependencies": { - "through2": "^0.6.3" - } - }, - "node_modules/glsl-tokenizer/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/glsl-tokenizer/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/glsl-tokenizer/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "node_modules/glsl-tokenizer/node_modules/through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", - "dependencies": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - }, - "node_modules/glslify": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/glslify/-/glslify-7.1.1.tgz", - "integrity": "sha512-bud98CJ6kGZcP9Yxcsi7Iz647wuDz3oN+IZsjCRi5X1PI7t/xPKeL0mOwXJjo+CRZMqvq0CkSJiywCcY7kVYog==", - "dependencies": { - "bl": "^2.2.1", - "concat-stream": "^1.5.2", - "duplexify": "^3.4.5", - "falafel": "^2.1.0", - "from2": "^2.3.0", - "glsl-resolve": "0.0.1", - "glsl-token-whitespace-trim": "^1.0.0", - "glslify-bundle": "^5.0.0", - "glslify-deps": "^1.2.5", - "minimist": "^1.2.5", - "resolve": "^1.1.5", - "stack-trace": "0.0.9", - "static-eval": "^2.0.5", - "through2": "^2.0.1", - "xtend": "^4.0.0" - }, - "bin": { - "glslify": "bin.js" - } - }, - "node_modules/glslify-bundle": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-5.1.1.tgz", - "integrity": "sha512-plaAOQPv62M1r3OsWf2UbjN0hUYAB7Aph5bfH58VxJZJhloRNbxOL9tl/7H71K7OLJoSJ2ZqWOKk3ttQ6wy24A==", - "dependencies": { - "glsl-inject-defines": "^1.0.1", - "glsl-token-defines": "^1.0.0", - "glsl-token-depth": "^1.1.1", - "glsl-token-descope": "^1.0.2", - "glsl-token-scope": "^1.1.1", - "glsl-token-string": "^1.0.1", - "glsl-token-whitespace-trim": "^1.0.0", - "glsl-tokenizer": "^2.0.2", - "murmurhash-js": "^1.0.0", - "shallow-copy": "0.0.1" - } - }, - "node_modules/glslify-deps": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/glslify-deps/-/glslify-deps-1.3.2.tgz", - "integrity": "sha512-7S7IkHWygJRjcawveXQjRXLO2FTjijPDYC7QfZyAQanY+yGLCFHYnPtsGT9bdyHiwPTw/5a1m1M9hamT2aBpag==", - "dependencies": { - "@choojs/findup": "^0.2.0", - "events": "^3.2.0", - "glsl-resolve": "0.0.1", - "glsl-tokenizer": "^2.0.0", - "graceful-fs": "^4.1.2", - "inherits": "^2.0.1", - "map-limit": "0.0.1", - "resolve": "^1.0.0" - } - }, - "node_modules/glslify-deps/node_modules/resolve": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", - "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glslify/node_modules/resolve": { - "version": "1.22.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", - "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/grid-index": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", - "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==" - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-hover": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-hover/-/has-hover-1.0.1.tgz", - "integrity": "sha512-0G6w7LnlcpyDzpeGUTuT0CEw05+QlMuGVk1IHNAlHrGJITGodjZu3x8BNDUMfKJSZXNB2ZAclqc1bvrd+uUpfg==", - "dependencies": { - "is-browser": "^2.0.1" - } - }, - "node_modules/has-passive-events": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-passive-events/-/has-passive-events-1.0.0.tgz", - "integrity": "sha512-2vSj6IeIsgvsRMyeQ0JaCX5Q3lX4zMn5HpoVc7MEhQ6pv8Iq9rsXjsp+E5ZwaT7T0xhMT0KmU8gtt1EFVdbJiw==", - "dependencies": { - "is-browser": "^2.0.1" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hsluv": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/hsluv/-/hsluv-0.0.3.tgz", - "integrity": "sha512-08iL2VyCRbkQKBySkSh6m8zMUa3sADAxGVWs3Z1aPcUkTJeK0ETG4Fc27tEmQBGUAXZjIsXOZqBvacuVNSC/fQ==" - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "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/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/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "devOptional": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-browser/-/is-browser-2.1.0.tgz", - "integrity": "sha512-F5rTJxDQ2sW81fcfOR1GnCXT6sVJC104fCyfj+mjpwNEwaPYSn5fte5jiHmBg3DHsIoL/l8Kvw5VN5SsTRcRFQ==" - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-firefox": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-firefox/-/is-firefox-1.0.3.tgz", - "integrity": "sha512-6Q9ITjvWIm0Xdqv+5U12wgOKEM2KoBw4Y926m0OFkvlCxnbG94HKAsVz8w3fWcfAS5YA2fJORXX1dLrkprCCxA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "devOptional": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-iexplorer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-iexplorer/-/is-iexplorer-1.0.0.tgz", - "integrity": "sha512-YeLzceuwg3K6O0MLM3UyUUjKAlyULetwryFp1mHy1I5PfArK0AEqlfa+MR4gkJjcbuJXoDJCvXbyqZVf5CR2Sg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-mobile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-4.0.0.tgz", - "integrity": "sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew==" - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", - "engines": { - "node": ">=0.10.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": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string-blank": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-string-blank/-/is-string-blank-1.0.1.tgz", - "integrity": "sha512-9H+ZBCVs3L9OYqv8nuUAzpcT9OTgMD1yAWrG7ihlnibdkbtB850heAmYWxHuXc4CHy4lKeK69tN+ny1K7gBIrw==" - }, - "node_modules/is-svg-path": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-svg-path/-/is-svg-path-1.0.2.tgz", - "integrity": "sha512-Lj4vePmqpPR1ZnRctHv8ltSh1OrSxHkhUkd7wi+VQdcdP15/KvQFyk7LhNuM7ZW0EVbJz8kZLVmL9quLrfq4Kg==" - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dev": true, - "dependencies": { - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, - "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/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jiti": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.19.1.tgz", - "integrity": "sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==", - "dev": true, - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "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==", - "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==", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.4.tgz", - "integrity": "sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/kdbush": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", - "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==" - }, - "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/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/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": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "optional": true, - "peer": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/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==", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/map-limit": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", - "integrity": "sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==", - "dependencies": { - "once": "~1.3.0" - } - }, - "node_modules/map-limit/node_modules/once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/mapbox-gl": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.10.1.tgz", - "integrity": "sha512-0aHt+lFUpYfvh0kMIqXqNXqoYMuhuAsMlw87TbhWrw78Tx2zfuPI0Lx31/YPUgJ+Ire0tzQ4JnuBL7acDNXmMg==", - "dependencies": { - "@mapbox/geojson-rewind": "^0.5.0", - "@mapbox/geojson-types": "^1.0.2", - "@mapbox/jsonlint-lines-primitives": "^2.0.2", - "@mapbox/mapbox-gl-supported": "^1.5.0", - "@mapbox/point-geometry": "^0.1.0", - "@mapbox/tiny-sdf": "^1.1.1", - "@mapbox/unitbezier": "^0.0.0", - "@mapbox/vector-tile": "^1.3.1", - "@mapbox/whoots-js": "^3.1.0", - "csscolorparser": "~1.0.3", - "earcut": "^2.2.2", - "geojson-vt": "^3.2.1", - "gl-matrix": "^3.2.1", - "grid-index": "^1.1.0", - "minimist": "^1.2.5", - "murmurhash-js": "^1.0.0", - "pbf": "^3.2.1", - "potpack": "^1.0.1", - "quickselect": "^2.0.0", - "rw": "^1.3.3", - "supercluster": "^7.0.0", - "tinyqueue": "^2.0.3", - "vt-pbf": "^3.1.1" - }, - "engines": { - "node": ">=6.4.0" - } - }, - "node_modules/math-log2": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-log2/-/math-log2-1.0.1.tgz", - "integrity": "sha512-9W0yGtkaMAkf74XGYVy4Dqw3YUMnTNB2eeiw9aQbUl4A3KmuCEHTt2DgAB07ENzOYAjsYSAYufkAq0Zd+jU7zA==", - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.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==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/moorhen": { - "version": "0.5.1", - "resolved": "file:moorhen-0.5.1.tgz", - "integrity": "sha512-SH7F2Hkl/2u8tqF2n0Fd8K/jUasbdK0tjycTuL+WWyZeXFQU8H6d3KLg9VOPiDALtb8jszBhzkgEdJNIvb90PQ==" - }, - "node_modules/mouse-change": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/mouse-change/-/mouse-change-1.4.0.tgz", - "integrity": "sha512-vpN0s+zLL2ykyyUDh+fayu9Xkor5v/zRD9jhSqjRS1cJTGS0+oakVZzNm5n19JvvEj0you+MXlYTpNxUDQUjkQ==", - "dependencies": { - "mouse-event": "^1.0.0" - } - }, - "node_modules/mouse-event": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/mouse-event/-/mouse-event-1.0.5.tgz", - "integrity": "sha512-ItUxtL2IkeSKSp9cyaX2JLUuKk2uMoxBg4bbOWVd29+CskYJR9BGsUqtXenNzKbnDshvupjUewDIYVrOB6NmGw==" - }, - "node_modules/mouse-event-offset": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mouse-event-offset/-/mouse-event-offset-3.0.2.tgz", - "integrity": "sha512-s9sqOs5B1Ykox3Xo8b3Ss2IQju4UwlW6LSR+Q5FXWpprJ5fzMLefIIItr3PH8RwzfGy6gxs/4GAmiNuZScE25w==" - }, - "node_modules/mouse-wheel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mouse-wheel/-/mouse-wheel-1.2.0.tgz", - "integrity": "sha512-+OfYBiUOCTWcTECES49neZwL5AoGkXE+lFjIvzwNCnYRlso+EnfvovcBxGoyQ0yQt806eSPjS675K0EwWknXmw==", - "dependencies": { - "right-now": "^1.0.0", - "signum": "^1.0.0", - "to-px": "^1.0.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==" - }, - "node_modules/mumath": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/mumath/-/mumath-3.3.4.tgz", - "integrity": "sha512-VAFIOG6rsxoc7q/IaY3jdjmrsuX9f15KlRLYTHmixASBZkZEKC1IFqE2BC5CdhXmK6WLM1Re33z//AGmeRI6FA==", - "deprecated": "Redundant dependency in your project.", - "dependencies": { - "almost-equal": "^1.1.0" - } - }, - "node_modules/murmurhash-js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", - "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==" - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/native-promise-only": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz", - "integrity": "sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg==" - }, - "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/needle": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", - "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", - "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/needle/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-svg-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-0.1.0.tgz", - "integrity": "sha512-1/kmYej2iedi5+ROxkRESL/pI02pkg0OBnaR4hJkSIX6+ORzepwbuUXfrdZaPjysTsJInj0Rj5NuX027+dMBvA==" - }, - "node_modules/number-is-integer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-integer/-/number-is-integer-1.0.1.tgz", - "integrity": "sha512-Dq3iuiFBkrbmuQjGFFF3zckXNCQoSD37/SdSbgcBailUx6knDvDwb5CympBgcoWHy36sfS12u74MHYkXyHq6bg==", - "dependencies": { - "is-finite": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", - "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.hasown": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", - "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "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/pako": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" - }, - "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/parenthesis": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/parenthesis/-/parenthesis-3.1.8.tgz", - "integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw==" - }, - "node_modules/parse-rect": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parse-rect/-/parse-rect-1.2.0.tgz", - "integrity": "sha512-4QZ6KYbnE6RTwg9E0HpLchUM9EZt6DnDxajFZZDSV4p/12ZJEvPO702DZpGvRYEPo00yKDys7jASi+/w7aO8LA==", - "dependencies": { - "pick-by-alias": "^1.2.0" - } - }, - "node_modules/parse-svg-path": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", - "integrity": "sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==" - }, - "node_modules/parse-unit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz", - "integrity": "sha512-hrqldJHokR3Qj88EIlV/kAyAi/G5R2+R56TBANxNMy0uPlYcttx0jnMW6Yx5KsKPSbC3KddM/7qQm3+0wEXKxg==" - }, - "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==", - "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-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/pbf": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", - "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", - "dependencies": { - "ieee754": "^1.1.12", - "resolve-protobuf-schema": "^2.1.0" - }, - "bin": { - "pbf": "bin/pbf" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - }, - "node_modules/pick-by-alias": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pick-by-alias/-/pick-by-alias-1.2.0.tgz", - "integrity": "sha512-ESj2+eBxhGrcA1azgHs7lARG5+5iLakc/6nlfbpjcLl00HuuUOIuORhYXN4D1HfvMSKuVtFQjAlnwi1JHEeDIw==" - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "engines": { - "node": ">=6" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/plotly.js": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-2.26.0.tgz", - "integrity": "sha512-FRIi4Tek9SDZRv2y0ONuPjojkAnUFC7mIOgBeBw2qtBHYoPWGbpUqz4nWK8BoRhFYUg53lsrgGQWzntSeeX8IQ==", - "dependencies": { - "@plotly/d3": "3.8.1", - "@plotly/d3-sankey": "0.7.2", - "@plotly/d3-sankey-circular": "0.33.1", - "@turf/area": "^6.4.0", - "@turf/bbox": "^6.4.0", - "@turf/centroid": "^6.0.2", - "canvas-fit": "^1.5.0", - "color-alpha": "1.0.4", - "color-normalize": "1.5.0", - "color-parse": "1.3.8", - "color-rgba": "2.1.1", - "country-regex": "^1.1.0", - "d3-force": "^1.2.1", - "d3-format": "^1.4.5", - "d3-geo": "^1.12.1", - "d3-geo-projection": "^2.9.0", - "d3-hierarchy": "^1.1.9", - "d3-interpolate": "^3.0.1", - "d3-time": "^1.1.0", - "d3-time-format": "^2.2.3", - "fast-isnumeric": "^1.1.4", - "gl-mat4": "^1.2.0", - "gl-text": "^1.3.1", - "glslify": "^7.1.1", - "has-hover": "^1.0.1", - "has-passive-events": "^1.0.0", - "is-mobile": "^4.0.0", - "mapbox-gl": "1.10.1", - "mouse-change": "^1.4.0", - "mouse-event-offset": "^3.0.2", - "mouse-wheel": "^1.2.0", - "native-promise-only": "^0.8.1", - "parse-svg-path": "^0.1.2", - "point-in-polygon": "^1.1.0", - "polybooljs": "^1.2.0", - "probe-image-size": "^7.2.3", - "regl": "npm:@plotly/regl@^2.1.2", - "regl-error2d": "^2.0.12", - "regl-line2d": "^3.1.2", - "regl-scatter2d": "^3.2.9", - "regl-splom": "^1.0.14", - "strongly-connected-components": "^1.0.1", - "superscript-text": "^1.0.0", - "svg-path-sdf": "^1.1.3", - "tinycolor2": "^1.4.2", - "to-px": "1.0.1", - "topojson-client": "^3.1.0", - "webgl-context": "^2.2.0", - "world-calendars": "^1.0.3" - } - }, - "node_modules/point-in-polygon": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.1.0.tgz", - "integrity": "sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==" - }, - "node_modules/polybooljs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/polybooljs/-/polybooljs-1.2.0.tgz", - "integrity": "sha512-mKjR5nolISvF+q2BtC1fi/llpxBPTQ3wLWN8+ldzdw2Hocpc8C72ZqnamCM4Z6z+68GVVjkeM01WJegQmZ8MEQ==" - }, - "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-import/node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "dev": true, - "dependencies": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", - "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", - "dev": true, - "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" - }, - "engines": { - "node": ">= 14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.11" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, - "node_modules/potpack": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz", - "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==" - }, - "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/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/pretty-format/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - }, - "node_modules/probe-image-size": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.2.3.tgz", - "integrity": "sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==", - "dependencies": { - "lodash.merge": "^4.6.2", - "needle": "^2.5.2", - "stream-parser": "~0.3.1" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/protocol-buffers-schema": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", - "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==" - }, - "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/quickselect": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" - }, - "node_modules/raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "dependencies": { - "performance-now": "^2.1.0" - } - }, - "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-collapsed": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/react-collapsed/-/react-collapsed-4.1.2.tgz", - "integrity": "sha512-vusqVnW/VbFCKJx29KNTnjJrwCbV7k3bB/FiO9/0Fj7JNoNarkU1xU7yK4FZHqPW0Q2izB7o6fYzG16zgdDNMQ==", - "dependencies": { - "tiny-warning": "^1.0.3" - }, - "peerDependencies": { - "react": "^16.9.0 || ^17 || ^18", - "react-dom": "^16.9.0 || ^17 || ^18" - } - }, - "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" - }, - "peerDependencies": { - "react": "^18.2.0" - } - }, - "node_modules/react-easy-swipe": { - "version": "0.0.21", - "resolved": "https://registry.npmjs.org/react-easy-swipe/-/react-easy-swipe-0.0.21.tgz", - "integrity": "sha512-OeR2jAxdoqUMHIn/nS9fgreI5hSpgGoL5ezdal4+oO7YSSgJR8ga+PkYGJrSrJ9MKlPcQjMQXnketrD7WNmNsg==", - "dependencies": { - "prop-types": "^15.5.8" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/react-from-dom": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/react-from-dom/-/react-from-dom-0.6.2.tgz", - "integrity": "sha512-qvWWTL/4xw4k/Dywd41RBpLQUSq97csuv15qrxN+izNeLYlD9wn5W8LspbfYe5CWbaSdkZ72BsaYBPQf2x4VbQ==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-icons": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.11.0.tgz", - "integrity": "sha512-V+4khzYcE5EBk/BvcuYRq6V/osf11ODUM2J8hg2FDSswRrGvqiYUYPRy4OdrWaQOBj4NcpJfmHZLNaD+VH0TyA==", - "peerDependencies": { - "react": "*" - } - }, - "node_modules/react-inlinesvg": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/react-inlinesvg/-/react-inlinesvg-3.0.2.tgz", - "integrity": "sha512-BEzkpMGQwEY68fgaouY7ZWvAUPb8jbj7dE9iDbWZxstDhMuz9qfpxNgvGSENKcDMdpq/XHduSk/LAmNKin4nKw==", - "dependencies": { - "exenv": "^1.2.2", - "react-from-dom": "^0.6.2" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/react-plotly.js": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/react-plotly.js/-/react-plotly.js-2.6.0.tgz", - "integrity": "sha512-g93xcyhAVCSt9kV1svqG1clAEdL6k3U+jjuSzfTV7owaSU9Go6Ph8bl25J+jKfKvIGAEYpe4qj++WHJuc9IaeA==", - "dependencies": { - "prop-types": "^15.8.1" - }, - "peerDependencies": { - "plotly.js": ">1.34.0", - "react": ">0.13.0" - } - }, - "node_modules/react-responsive-carousel": { - "version": "3.2.23", - "resolved": "https://registry.npmjs.org/react-responsive-carousel/-/react-responsive-carousel-3.2.23.tgz", - "integrity": "sha512-pqJLsBaKHWJhw/ItODgbVoziR2z4lpcJg+YwmRlSk4rKH32VE633mAtZZ9kDXjy4wFO+pgUZmDKPsPe1fPmHCg==", - "dependencies": { - "classnames": "^2.2.5", - "prop-types": "^15.5.8", - "react-easy-swipe": "^0.0.21" - } - }, - "node_modules/react-router": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.20.0.tgz", - "integrity": "sha512-pVvzsSsgUxxtuNfTHC4IxjATs10UaAtvLGVSA1tbUE4GDaOSU1Esu2xF5nWLz7KPiMuW8BJWuPFdlGYJ7/rW0w==", - "dev": true, - "dependencies": { - "@remix-run/router": "1.13.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/react-router-dom": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.20.0.tgz", - "integrity": "sha512-CbcKjEyiSVpA6UtCHOIYLUYn/UJfwzp55va4yEfpk7JBN3GPqWfHrdLkAvNCcpXr8QoihcDMuk0dzWZxtlB/mQ==", - "dev": true, - "dependencies": { - "@remix-run/router": "1.13.0", - "react-router": "6.20.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" - } - }, - "node_modules/react-spinners": { - "version": "0.13.8", - "resolved": "https://registry.npmjs.org/react-spinners/-/react-spinners-0.13.8.tgz", - "integrity": "sha512-3e+k56lUkPj0vb5NDXPVFAOkPC//XyhKPJjvcGjyMNPWsBKpplfeyialP74G7H7+It7KzhtET+MvGqbKgAqpZA==", - "peerDependencies": { - "react": "^16.0.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-table": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/react-table/-/react-table-7.8.0.tgz", - "integrity": "sha512-hNaz4ygkZO4bESeFfnfOft73iBUj8K5oKi1EcSHPAibEydfsX2MyU6Z8KCr3mv3C9Kqqh71U+DhZkFvibbnPbA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": "^16.8.3 || ^17.0.0-0 || ^18.0.0" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/read-cache/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "devOptional": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", - "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/regl": { - "name": "@plotly/regl", - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@plotly/regl/-/regl-2.1.2.tgz", - "integrity": "sha512-Mdk+vUACbQvjd0m/1JJjOOafmkp/EpmHjISsopEz5Av44CBq7rPC05HHNbYGKVyNUF2zmEoBS/TT0pd0SPFFyw==" - }, - "node_modules/regl-error2d": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/regl-error2d/-/regl-error2d-2.0.12.tgz", - "integrity": "sha512-r7BUprZoPO9AbyqM5qlJesrSRkl+hZnVKWKsVp7YhOl/3RIpi4UDGASGJY0puQ96u5fBYw/OlqV24IGcgJ0McA==", - "dependencies": { - "array-bounds": "^1.0.1", - "color-normalize": "^1.5.0", - "flatten-vertex-data": "^1.0.2", - "object-assign": "^4.1.1", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.1.0", - "update-diff": "^1.1.0" - } - }, - "node_modules/regl-line2d": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/regl-line2d/-/regl-line2d-3.1.2.tgz", - "integrity": "sha512-nmT7WWS/WxmXAQMkgaMKWXaVmwJ65KCrjbqHGOUjjqQi6shfT96YbBOvelXwO9hG7/hjvbzjtQ2UO0L3e7YaXQ==", - "dependencies": { - "array-bounds": "^1.0.1", - "array-find-index": "^1.0.2", - "array-normalize": "^1.1.4", - "color-normalize": "^1.5.0", - "earcut": "^2.1.5", - "es6-weak-map": "^2.0.3", - "flatten-vertex-data": "^1.0.2", - "glslify": "^7.0.0", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.1.0" - } - }, - "node_modules/regl-scatter2d": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/regl-scatter2d/-/regl-scatter2d-3.2.9.tgz", - "integrity": "sha512-PNrXs+xaCClKpiB2b3HZ2j3qXQXhC5kcTh/Nfgx9rLO0EpEhab0BSQDqAsbdbpdf+pSHSJvbgitB7ulbGeQ+Fg==", - "dependencies": { - "@plotly/point-cluster": "^3.1.9", - "array-range": "^1.0.1", - "array-rearrange": "^2.2.2", - "clamp": "^1.0.1", - "color-id": "^1.1.0", - "color-normalize": "^1.5.0", - "color-rgba": "^2.1.1", - "flatten-vertex-data": "^1.0.2", - "glslify": "^7.0.0", - "is-iexplorer": "^1.0.0", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.1.0", - "update-diff": "^1.1.0" - } - }, - "node_modules/regl-splom": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/regl-splom/-/regl-splom-1.0.14.tgz", - "integrity": "sha512-OiLqjmPRYbd7kDlHC6/zDf6L8lxgDC65BhC8JirhP4ykrK4x22ZyS+BnY8EUinXKDeMgmpRwCvUmk7BK4Nweuw==", - "dependencies": { - "array-bounds": "^1.0.1", - "array-range": "^1.0.1", - "color-alpha": "^1.0.4", - "flatten-vertex-data": "^1.0.2", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "raf": "^3.4.1", - "regl-scatter2d": "^3.2.3" - } - }, - "node_modules/resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-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/resolve-protobuf-schema": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", - "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", - "dependencies": { - "protocol-buffers-schema": "^3.3.1" - } - }, - "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/right-now": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz", - "integrity": "sha512-DA8+YS+sMIVpbsuKgy+Z67L9Lxb1p05mNxRpDPNksPDEFir4vmBlUtuN9jkTGn9YMMdlBuK7XQgFiz6ws+yhSg==" - }, - "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/rollup": { - "version": "3.26.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.26.3.tgz", - "integrity": "sha512-7Tin0C8l86TkpcMtXvQu6saWH93nhG3dGQ1/+l5V2TDMceTxO7kDiK6GzbfLWNNxqJXm591PcEZUozZm51ogwQ==", - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "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/rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" - }, - "node_modules/safe-array-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", - "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/shallow-copy": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", - "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==" - }, - "node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" - }, - "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/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signum": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/signum/-/signum-1.0.0.tgz", - "integrity": "sha512-yodFGwcyt59XRh7w5W3jPcIQb3Bwi21suEfT7MAWnBX3iCdklJpgDgvGT9o04UonglZN5SNMfJFkHIR/jO8GHw==" - }, - "node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "engines": { - "node": ">=6" - } - }, - "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==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stack-trace": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", - "integrity": "sha512-vjUc6sfgtgY0dxCdnc40mK6Oftjo9+2K8H/NG81TMhgL392FtiPA9tn9RLyTxXmTLPJPjF3VyzFp6bsWFLisMQ==", - "engines": { - "node": "*" - } - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/static-eval": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz", - "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==", - "dependencies": { - "escodegen": "^1.11.1" - } - }, - "node_modules/stream-parser": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", - "integrity": "sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==", - "dependencies": { - "debug": "2" - } - }, - "node_modules/stream-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/stream-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/string-split-by": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string-split-by/-/string-split-by-1.0.0.tgz", - "integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==", - "dependencies": { - "parenthesis": "^3.1.5" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", - "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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-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/strongly-connected-components": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strongly-connected-components/-/strongly-connected-components-1.0.1.tgz", - "integrity": "sha512-i0TFx4wPcO0FwX+4RkLJi1MxmcTv90jNZgxMu9XRnMXMeFUY1VJlIoXpZunPUvUUqbCT1pg5PEkFqqpcaElNaA==" - }, - "node_modules/styled-components": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.0.6.tgz", - "integrity": "sha512-gkToLizJyiaRLGlPzfzvBY4DoC/fAKnRulstNXv/zXyvqKVaIQNHFbufjM1sspwqd77azcpnWuoZBL4O+oqxVw==", - "dependencies": { - "@babel/cli": "^7.21.0", - "@babel/core": "^7.21.0", - "@babel/helper-module-imports": "^7.18.6", - "@babel/plugin-external-helpers": "^7.18.6", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", - "@babel/preset-env": "^7.20.2", - "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.21.0", - "@babel/traverse": "^7.21.2", - "@emotion/is-prop-valid": "^1.2.1", - "@emotion/unitless": "^0.8.0", - "@types/stylis": "^4.0.2", - "css-to-react-native": "^3.2.0", - "csstype": "^3.1.2", - "postcss": "^8.4.23", - "shallowequal": "^1.1.0", - "stylis": "^4.3.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/styled-components" - }, - "peerDependencies": { - "babel-plugin-styled-components": ">= 2", - "react": ">= 16.8.0", - "react-dom": ">= 16.8.0" - }, - "peerDependenciesMeta": { - "babel-plugin-styled-components": { - "optional": true - } - } - }, - "node_modules/stylis": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.0.tgz", - "integrity": "sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==" - }, - "node_modules/sucrase": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", - "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "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/supercluster": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz", - "integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==", - "dependencies": { - "kdbush": "^3.0.0" - } - }, - "node_modules/superscript-text": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/superscript-text/-/superscript-text-1.0.0.tgz", - "integrity": "sha512-gwu8l5MtRZ6koO0icVTlmN5pm7Dhh1+Xpe9O4x6ObMAsW+3jPbW14d1DsBq1F4wiI+WOFjXF35pslgec/G8yCQ==" - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-arc-to-cubic-bezier": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz", - "integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==" - }, - "node_modules/svg-path-bounds": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/svg-path-bounds/-/svg-path-bounds-1.0.2.tgz", - "integrity": "sha512-H4/uAgLWrppIC0kHsb2/dWUYSmb4GE5UqH06uqWBcg6LBjX2fu0A8+JrO2/FJPZiSsNOKZAhyFFgsLTdYUvSqQ==", - "dependencies": { - "abs-svg-path": "^0.1.1", - "is-svg-path": "^1.0.1", - "normalize-svg-path": "^1.0.0", - "parse-svg-path": "^0.1.2" - } - }, - "node_modules/svg-path-bounds/node_modules/normalize-svg-path": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-1.1.0.tgz", - "integrity": "sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg==", - "dependencies": { - "svg-arc-to-cubic-bezier": "^3.0.0" - } - }, - "node_modules/svg-path-sdf": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/svg-path-sdf/-/svg-path-sdf-1.1.3.tgz", - "integrity": "sha512-vJJjVq/R5lSr2KLfVXVAStktfcfa1pNFjFOgyJnzZFXlO/fDZ5DmM8FpnSKKzLPfEYTVeXuVBTHF296TpxuJVg==", - "dependencies": { - "bitmap-sdf": "^1.0.0", - "draw-svg-path": "^1.0.0", - "is-svg-path": "^1.0.1", - "parse-svg-path": "^0.1.2", - "svg-path-bounds": "^1.0.1" - } - }, - "node_modules/tailwindcss": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", - "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", - "dev": true, - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.12", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.18.2", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tailwindcss/node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "dev": true, - "dependencies": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/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/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" - }, - "node_modules/tinycolor2": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", - "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" - }, - "node_modules/tinyqueue": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", - "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" - }, - "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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-float32": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/to-float32/-/to-float32-1.1.0.tgz", - "integrity": "sha512-keDnAusn/vc+R3iEiSDw8TOF7gPiTLdK1ArvWtYbJQiVfmRg6i/CAvbKq3uIS0vWroAC7ZecN3DjQKw3aSklUg==" - }, - "node_modules/to-px": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-px/-/to-px-1.0.1.tgz", - "integrity": "sha512-2y3LjBeIZYL19e5gczp14/uRWFDtDUErJPVN3VU9a7SJO+RjGRtYR47aMN2bZgGlxvW4ZcEz2ddUPVHXcMfuXw==", - "dependencies": { - "parse-unit": "^1.0.1" - } - }, - "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==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/topojson-client": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", - "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", - "dependencies": { - "commander": "2" - }, - "bin": { - "topo2geo": "bin/topo2geo", - "topomerge": "bin/topomerge", - "topoquantize": "bin/topoquantize" - } - }, - "node_modules/topojson-client/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true - }, - "node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "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/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" - }, - "node_modules/typedarray-pool": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/typedarray-pool/-/typedarray-pool-1.2.0.tgz", - "integrity": "sha512-YTSQbzX43yvtpfRtIDAYygoYtgT+Rpjuxy9iOpczrjpXLgGoyG7aS5USJXV2d3nn8uHTeb9rXDvzS27zUg5KYQ==", - "dependencies": { - "bit-twiddle": "^1.0.0", - "dup": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" - }, - "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==", - "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/update-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-diff/-/update-diff-1.1.0.tgz", - "integrity": "sha512-rCiBPiHxZwT4+sBhEbChzpO5hYHjm91kScWgdHf4Qeafs6Ba7MBl+d9GlGv72bcTZQO0sLmtQS1pHSWoCLtN/A==" - }, - "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/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/vite": { - "version": "4.4.7", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.7.tgz", - "integrity": "sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw==", - "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.26", - "rollup": "^3.25.2" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite-plugin-cross-origin-isolation": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/vite-plugin-cross-origin-isolation/-/vite-plugin-cross-origin-isolation-0.1.6.tgz", - "integrity": "sha512-OY0naW9nPUDrKTffYnY7FRYXOgZdHoNwMGpPxUmj/n32mGZi01fcq+J536jkmwGWX7DLT95XBQVHHbrAJzTvrw==", - "dev": true - }, - "node_modules/vite-plugin-top-level-await": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/vite-plugin-top-level-await/-/vite-plugin-top-level-await-1.3.1.tgz", - "integrity": "sha512-55M1h4NAwkrpxPNOJIBzKZFihqLUzIgnElLSmPNPMR2Fn9+JHKaNg3sVX1Fq+VgvuBksQYxiD3OnwQAUu7kaPQ==", - "dependencies": { - "@rollup/plugin-virtual": "^3.0.1", - "@swc/core": "^1.3.10", - "uuid": "^9.0.0" - }, - "peerDependencies": { - "vite": ">=2.8" - } - }, - "node_modules/vite-plugin-wasm": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/vite-plugin-wasm/-/vite-plugin-wasm-3.2.2.tgz", - "integrity": "sha512-cdbBUNR850AEoMd5nvLmnyeq63CSfoP1ctD/L2vLk/5+wsgAPlAVAzUK5nGKWO/jtehNlrSSHLteN+gFQw7VOA==", - "dev": true, - "peerDependencies": { - "vite": "^2 || ^3 || ^4" - } - }, - "node_modules/vt-pbf": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", - "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", - "dependencies": { - "@mapbox/point-geometry": "0.1.0", - "@mapbox/vector-tile": "^1.3.1", - "pbf": "^3.2.1" - } - }, - "node_modules/weak-map": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.8.tgz", - "integrity": "sha512-lNR9aAefbGPpHO7AEnY0hCFjz1eTkWCXYvkTRrTHs9qv8zJp+SkVYpzfLIFXQQiG3tVvbNFQgVg2bQS8YGgxyw==" - }, - "node_modules/webgl-context": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/webgl-context/-/webgl-context-2.2.0.tgz", - "integrity": "sha512-q/fGIivtqTT7PEoF07axFIlHNk/XCPaYpq64btnepopSWvKNFkoORlQYgqDigBIuGA1ExnFd/GnSUnBNEPQY7Q==", - "dependencies": { - "get-canvas-context": "^1.0.1" - } - }, - "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-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", - "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/world-calendars": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/world-calendars/-/world-calendars-1.0.3.tgz", - "integrity": "sha512-sAjLZkBnsbHkHWVhrsCU5Sa/EVuf9QqgvrN8zyJ2L/F9FR9Oc6CvVK0674+PGAtmmmYQMH98tCUSO4QLQv3/TQ==", - "dependencies": { - "object-assign": "^4.1.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/yaml": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", - "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, - "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/webserver/package.json b/webserver/package.json deleted file mode 100644 index a9b3e2b1d..000000000 --- a/webserver/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "privateer", - "private": true, - "version": "0.0.0", - "type": "module", - "scripts": { - "dev": "vite", - "build": "vite build", - "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0", - "preview": "vite preview" - }, - "dependencies": { - "@types/jest": "^29.5.6", - "@types/node": "^20.8.9", - "moorhen": "file:moorhen-0.5.1.tgz", - "pako": "^2.1.0", - "plotly.js": "^2.26.0", - "react": "^18.2.0", - "react-collapsed": "^4.1.2", - "react-dom": "^18.2.0", - "react-icons": "^4.11.0", - "react-inlinesvg": "^3.0.2", - "react-plotly.js": "^2.6.0", - "react-responsive-carousel": "^3.2.23", - "react-spinners": "^0.13.8", - "react-table": "^7.8.0", - "styled-components": "^6.0.6", - "vite-plugin-top-level-await": "^1.3.1" - }, - "devDependencies": { - "@types/react": "^18.2.33", - "@types/react-dom": "^18.2.14", - "@vitejs/plugin-react-swc": "^3.3.2", - "autoprefixer": "^10.4.14", - "eslint": "^8.45.0", - "eslint-plugin-react": "^7.32.2", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.3", - "postcss": "^8.4.27", - "react-router-dom": "^6.20.0", - "tailwindcss": "^3.3.3", - "typescript": "^5.2.2", - "vite": "^4.4.5", - "vite-plugin-cross-origin-isolation": "^0.1.6", - "vite-plugin-wasm": "^3.2.2" - } -} diff --git a/webserver/public/baby-gru/CootWorker.js b/webserver/public/baby-gru/CootWorker.js deleted file mode 100644 index d9faa3665..000000000 --- a/webserver/public/baby-gru/CootWorker.js +++ /dev/null @@ -1 +0,0 @@ -var cootModule,molecules_container,ccp4Module;importScripts("./wasm/moorhen.js"),importScripts("./wasm/web_example.js");var guid=function(){var e=Date.now();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(a){var t=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"===a?t:3&t|8).toString(16)}))},print=function(e){console.log(e),postMessage({consoleMessage:JSON.stringify(e)})},instancedMeshToMeshData=function(e,a,t,o){void 0===t&&(t=!1),void 0===o&&(o=1e4);for(var s=[],r=[],n=[],i=[],l=[],c=[],d=[],_=[],m=[],u=e.geom,p=e.markup,g=u.size(),h=0;h0)for(var U=0;U0)for(U=0;Uo)){M.push(j[0]),M.push(j[1]),M.push(j[2]),O=H.position,T.push(O[0]),T.push(O[1]),T.push(O[2]),B=H.colour,b.push(B[0]),b.push(B[1]),b.push(B[2]),b.push(B[3]);var G=H.orientation;z.push(G[0][0]),z.push(G[0][1]),z.push(G[0][2]),z.push(G[0][3]),z.push(G[1][0]),z.push(G[1][1]),z.push(G[1][2]),z.push(G[1][3]),z.push(G[2][0]),z.push(G[2][1]),z.push(G[2][2]),z.push(G[2][3]),z.push(G[3][0]),z.push(G[3][1]),z.push(G[3][2]),z.push(G[3][3]),H.delete()}}L.delete(),I.delete(),n.push(S),r.push(v),s.push(y),i.push(M),c.push(T),d.push(z),l.push(b),_.push(!0),f?m.push("PERFECT_SPHERES"):m.push("TRIANGLES")}u.delete();var K=simpleMeshToMeshData(p);return e.delete(),K.idx_tri.length>0&&K.idx_tri[0].length>0&&K.idx_tri[0][0].length>0?t?{prim_types:[m,K.prim_types[0]],idx_tri:[s,K.idx_tri[0]],vert_tri:[c,K.vert_tri[0]],norm_tri:[n,K.norm_tri[0]],col_tri:[l,K.col_tri[0]],instance_use_colors:[_,null],instance_sizes:[i,null],instance_origins:[c,null],instance_orientations:[d,null]}:{prim_types:[m,K.prim_types[0]],idx_tri:[s,K.idx_tri[0]],vert_tri:[r,K.vert_tri[0]],norm_tri:[n,K.norm_tri[0]],col_tri:[l,K.col_tri[0]],instance_use_colors:[_,null],instance_sizes:[i,null],instance_origins:[c,null],instance_orientations:[d,null]}:{prim_types:[m],idx_tri:[s],vert_tri:[r],norm_tri:[n],col_tri:[l],instance_use_colors:[_],instance_sizes:[i],instance_origins:[c],instance_orientations:[d]}},simpleMeshToMeshData=function(e,a){void 0===a&&(a=!1);for(var t=e.vertices,o=e.triangles,s=[],r=[],n=[],i=[],l=o.size(),c=0;c0){var a=e[0].label.split("/"),t=a[3].split("."),s=t[0],r=t[1];r=r||"";var n=new cootModule.moved_residue_t(a[2],parseInt(s),r);e.forEach((function(e){var a=new cootModule.moved_atom_t(e.name,e.alt_loc,e.x,e.y,e.z,-1);n.add_atom(a),a.delete()})),o.push_back(n),n.delete()}})),t+=molecules_container.new_positions_for_atoms_in_residues(e,o),o.delete(),t},read_mtz=function(e,a,t){var o=guid(),s=new Uint8Array(e);cootModule.FS_createDataFile(".","".concat(o,".mtz"),s,!0,!0);var r="./".concat(o,".mtz"),n=[r,t.F,t.PHI,"",!1,t.isDifference],i=molecules_container.read_mtz.apply(molecules_container,n);return cootModule.FS_unlink(r),i},associate_data_mtz_file_with_map=function(e,a,t,o,s){var r=new Uint8Array(a.data);cootModule.FS_createDataFile(".","".concat(a.fileName,".mtz"),r,!0,!0);var n="./".concat(a.fileName,".mtz"),i=[e,n,t,o,s];return molecules_container.associate_data_mtz_file_with_map.apply(molecules_container,i),n},read_ccp4_map=function(e,a,t){var o=guid(),s=new Uint8Array(e);cootModule.FS_createDataFile(".","".concat(o,".map"),s,!0,!0);var r="./".concat(o,".map"),n=[r,t],i=molecules_container.read_ccp4_map.apply(molecules_container,n);return cootModule.FS_unlink(r),i},doColourTest=function(e){console.log("DEBUG: Start test...");var a={0:{cid:"//A/1-10/",rgb:[255,0,0]},1:{cid:"//A/11-20/",rgb:[0,255,0]},2:{cid:"//A/21-30/",rgb:[0,0,255]}},t=new cootModule.MapIntFloat3;for(var o in Object.keys(a))t[o]=a[o].rgb;var s=new cootModule.VectorStringUInt_pair;for(var o in Object.keys(a)){var r={first:a[o].cid,second:parseInt(o)};s.push_back(r)}console.log("DEBUG: Running molecules_container.set_user_defined_bond_colours"),molecules_container.set_user_defined_bond_colours(e,t),console.log("DEBUG: Running molecules_container.set_user_defined_atom_colour_by_residue"),molecules_container.set_user_defined_atom_colour_by_residue(e,s),s.delete(),t.delete()};onmessage=function(e){if("CootInitialize"===e.data.message)createRSRModule({locateFile:function(e){return"./wasm/".concat(e)},onRuntimeInitialized:function(){},mainScriptUrlOrBlob:"moorhen.js",print,printErr:print}).then((function(a){postMessage({consoleMessage:"Initialized molecules_container",message:e.data.message,messageId:e.data.messageId}),(molecules_container=new(cootModule=a).molecules_container_js(!1)).set_show_timings(!1),molecules_container.fill_rotamer_probability_tables(),molecules_container.set_map_sampling_rate(1.7),cootModule.FS.mkdir("COOT_BACKUP")})).catch((function(e){console.log(e),print(e)})),createCCP4Module({locateFile:function(e){return"./wasm/".concat(e)},onRuntimeInitialized:function(){},mainScriptUrlOrBlob:"web_example.js",print,printErr:print}).then((function(e){ccp4Module=e})).catch((function(e){console.log(e),print(e)}));else if("get_atoms"===e.data.message){var a=guid(),t="./".concat(a,".pdb");"pdb"===e.data.format?molecules_container.writePDBASCII(e.data.molNo,t):"mmcif"===e.data.format?molecules_container.writeCIFASCII(e.data.molNo,t):console.log("Unrecognised format... ".concat(e.data.format));var o=cootModule.FS.readFile(t,{encoding:"utf8"});cootModule.FS_unlink(t),postMessage({messageId:e.data.messageId,myTimeStamp:e.data.myTimeStamp,consoleMessage:"Fetched coordinates of molecule ".concat(e.data.molNo),message:e.data.message,result:{molNo:e.data.molNo,pdbData:o}})}else if("get_mtz_data"===e.data.message){var s=cootModule.FS.readFile(e.data.fileName,{encoding:"binary"});postMessage({messageId:e.data.messageId,myTimeStamp:e.data.myTimeStamp,consoleMessage:"Fetched mtz data for map ".concat(e.data.molNo),message:e.data.message,result:{molNo:e.data.molNo,mtzData:s}})}else if("get_map"===e.data.message){a=guid(),t="./".concat(a,".map"),molecules_container.writeCCP4Map(e.data.molNo,t);var r=cootModule.FS.readFile(t,{encoding:"binary"});cootModule.FS_unlink(t),postMessage({messageId:e.data.messageId,myTimeStamp:e.data.myTimeStamp,consoleMessage:"Fetched map of map ".concat(e.data.molNo),message:e.data.message,result:{molNo:e.data.molNo,mapData:r.buffer}})}else if("read_mtz"===e.data.message)try{a=guid(),cootModule.FS_createDataFile(".","".concat(a,".mtz"),e.data.data,!0,!0,!0),t="./".concat(a,".mtz");var n=molecules_container.read_mtz(t,"FWT","PHWT","",!1,!1);cootModule.FS_unlink(t),postMessage({messageId:e.data.messageId,myTimeStamp:e.data.myTimeStamp,consoleMessage:"Read map MTZ as molecule ".concat(n),message:e.data.message,result:{molNo:n,name:e.data.name}})}catch(e){print(e)}else if("get_rama"===e.data.message){a=guid(),t="./".concat(a,".pdb"),molecules_container.writePDBASCII(e.data.molNo,t);var i=cootModule.getRamachandranData(t,e.data.chainId);cootModule.FS_unlink(t);for(var l=[],c=0;c{var r="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0;return"undefined"!=typeof __filename&&(r=r||__filename),function(t={}){var e,n,o=void 0!==t?t:{};o.ready=new Promise(((r,t)=>{e=r,n=t}));var a,i,s,u=Object.assign({},o),c="./this.program",l="object"==typeof window,f="function"==typeof importScripts,d="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,h="";if(d){var p=require("fs"),m=require("path");h=f?m.dirname(h)+"/":__dirname+"/",a=(r,t)=>(r=I(r)?new URL(r):m.normalize(r),p.readFileSync(r,t?void 0:"utf8")),s=r=>{var t=a(r,!0);return t.buffer||(t=new Uint8Array(t)),t},i=(r,t,e,n=!0)=>{r=I(r)?new URL(r):m.normalize(r),p.readFile(r,n?void 0:"utf8",((r,o)=>{r?e(r):t(n?o.buffer:o)}))},!o.thisProgram&&process.argv.length>1&&(c=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),o.inspect=()=>"[Emscripten Module object]"}else(l||f)&&(f?h=self.location.href:"undefined"!=typeof document&&document.currentScript&&(h=document.currentScript.src),r&&(h=r),h=0!==h.indexOf("blob:")?h.substr(0,h.replace(/[?#].*/,"").lastIndexOf("/")+1):"",a=r=>{var t=new XMLHttpRequest;return t.open("GET",r,!1),t.send(null),t.responseText},f&&(s=r=>{var t=new XMLHttpRequest;return t.open("GET",r,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),i=(r,t,e)=>{var n=new XMLHttpRequest;n.open("GET",r,!0),n.responseType="arraybuffer",n.onload=()=>{200==n.status||0==n.status&&n.response?t(n.response):e()},n.onerror=e,n.send(null)});var v,y=o.print||console.log.bind(console),w=o.printErr||console.error.bind(console);Object.assign(o,u),u=null,o.arguments&&o.arguments,o.thisProgram&&(c=o.thisProgram),o.quit&&o.quit,o.wasmBinary&&(v=o.wasmBinary),o.noExitRuntime,"object"!=typeof WebAssembly&&H("no native wasm support detected");var g,b,E,_,k,$,P,C,T,D=!1;function F(r,t){r||H(t)}var S=[],A=[],j=[],M=0,O=null,R=null;function x(r){M++,o.monitorRunDependencies&&o.monitorRunDependencies(M)}function z(r){if(M--,o.monitorRunDependencies&&o.monitorRunDependencies(M),0==M&&(null!==O&&(clearInterval(O),O=null),R)){var t=R;R=null,t()}}function H(r){o.onAbort&&o.onAbort(r),w(r="Aborted("+r+")"),D=!0,r+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(r);throw n(t),t}var W,N,U,L;function B(r){return r.startsWith("data:application/octet-stream;base64,")}function I(r){return r.startsWith("file://")}function V(r){try{if(r==W&&v)return new Uint8Array(v);if(s)return s(r);throw"both async and sync fetching of the wasm failed"}catch(r){H(r)}}function q(r,t,e){return function(r){if(!v&&(l||f)){if("function"==typeof fetch&&!I(r))return fetch(r,{credentials:"same-origin"}).then((t=>{if(!t.ok)throw"failed to load wasm binary file at '"+r+"'";return t.arrayBuffer()})).catch((()=>V(r)));if(i)return new Promise(((t,e)=>{i(r,(r=>t(new Uint8Array(r))),e)}))}return Promise.resolve().then((()=>V(r)))}(r).then((r=>WebAssembly.instantiate(r,t))).then((r=>r)).then(e,(r=>{w("failed to asynchronously prepare wasm: "+r),H(r)}))}function Y(r){for(;r.length>0;)r.shift()(o)}B(W="RDKit_minimal.wasm")||(N=W,W=o.locateFile?o.locateFile(N,h):h+N);var X=[],G=0,K=0;function J(r){this.excPtr=r,this.ptr=r-24,this.set_type=function(r){$[this.ptr+4>>2]=r},this.get_type=function(){return $[this.ptr+4>>2]},this.set_destructor=function(r){$[this.ptr+8>>2]=r},this.get_destructor=function(){return $[this.ptr+8>>2]},this.set_caught=function(r){r=r?1:0,g[this.ptr+12>>0]=r},this.get_caught=function(){return 0!=g[this.ptr+12>>0]},this.set_rethrown=function(r){r=r?1:0,g[this.ptr+13>>0]=r},this.get_rethrown=function(){return 0!=g[this.ptr+13>>0]},this.init=function(r,t){this.set_adjusted_ptr(0),this.set_type(r),this.set_destructor(t)},this.set_adjusted_ptr=function(r){$[this.ptr+16>>2]=r},this.get_adjusted_ptr=function(){return $[this.ptr+16>>2]},this.get_exception_ptr=function(){if(oe(this.get_type()))return $[this.excPtr>>2];var r=this.get_adjusted_ptr();return 0!==r?r:this.excPtr}}function Z(){var r=K;if(!r)return Kt(0),0;var t=new J(r);t.set_adjusted_ptr(r);var e=t.get_type();if(!e)return Kt(0),r;for(var n=0;n"/"===r.charAt(0),splitPath:r=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(r).slice(1),normalizeArray:(r,t)=>{for(var e=0,n=r.length-1;n>=0;n--){var o=r[n];"."===o?r.splice(n,1):".."===o?(r.splice(n,1),e++):e&&(r.splice(n,1),e--)}if(t)for(;e;e--)r.unshift("..");return r},normalize:r=>{var t=er.isAbs(r),e="/"===r.substr(-1);return(r=er.normalizeArray(r.split("/").filter((r=>!!r)),!t).join("/"))||t||(r="."),r&&e&&(r+="/"),(t?"/":"")+r},dirname:r=>{var t=er.splitPath(r),e=t[0],n=t[1];return e||n?(n&&(n=n.substr(0,n.length-1)),e+n):"."},basename:r=>{if("/"===r)return"/";var t=(r=(r=er.normalize(r)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?r:r.substr(t+1)},join:function(){var r=Array.prototype.slice.call(arguments);return er.normalize(r.join("/"))},join2:(r,t)=>er.normalize(r+"/"+t)};function nr(r){return(nr=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return r=>crypto.getRandomValues(r);if(d)try{var r=require("crypto");if(r.randomFillSync)return t=>r.randomFillSync(t);var t=r.randomBytes;return r=>(r.set(t(r.byteLength)),r)}catch(r){}H("initRandomDevice")}())(r)}var or={resolve:function(){for(var r="",t=!1,e=arguments.length-1;e>=-1&&!t;e--){var n=e>=0?arguments[e]:mr.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";r=n+"/"+r,t=er.isAbs(n)}return(t?"/":"")+(r=er.normalizeArray(r.split("/").filter((r=>!!r)),!t).join("/"))||"."},relative:(r,t)=>{function e(r){for(var t=0;t=0&&""===r[e];e--);return t>e?[]:r.slice(t,e-t+1)}r=or.resolve(r).substr(1),t=or.resolve(t).substr(1);for(var n=e(r.split("/")),o=e(t.split("/")),a=Math.min(n.length,o.length),i=a,s=0;s=55296&&n<=57343?(t+=4,++e):t+=3}return t}function ir(r,t,e,n){if(!(n>0))return 0;for(var o=e,a=e+n-1,i=0;i=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&r.charCodeAt(++i)),s<=127){if(e>=a)break;t[e++]=s}else if(s<=2047){if(e+1>=a)break;t[e++]=192|s>>6,t[e++]=128|63&s}else if(s<=65535){if(e+2>=a)break;t[e++]=224|s>>12,t[e++]=128|s>>6&63,t[e++]=128|63&s}else{if(e+3>=a)break;t[e++]=240|s>>18,t[e++]=128|s>>12&63,t[e++]=128|s>>6&63,t[e++]=128|63&s}}return t[e]=0,e-o}function sr(r,t,e){var n=e>0?e:ar(r)+1,o=new Array(n),a=ir(r,o,0,o.length);return t&&(o.length=a),o}var ur="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function cr(r,t,e){for(var n=t+e,o=t;r[o]&&!(o>=n);)++o;if(o-t>16&&r.buffer&&ur)return ur.decode(r.subarray(t,o));for(var a="";t>10,56320|1023&c)}}else a+=String.fromCharCode((31&i)<<6|s)}else a+=String.fromCharCode(i)}return a}var lr={ttys:[],init:function(){},shutdown:function(){},register:function(r,t){lr.ttys[r]={input:[],output:[],ops:t},mr.registerDevice(r,lr.stream_ops)},stream_ops:{open:function(r){var t=lr.ttys[r.node.rdev];if(!t)throw new mr.ErrnoError(43);r.tty=t,r.seekable=!1},close:function(r){r.tty.ops.fsync(r.tty)},fsync:function(r){r.tty.ops.fsync(r.tty)},read:function(r,t,e,n,o){if(!r.tty||!r.tty.ops.get_char)throw new mr.ErrnoError(60);for(var a=0,i=0;i0?e.slice(0,n).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(t=window.prompt("Input: "))&&(t+="\n"):"function"==typeof readline&&null!==(t=readline())&&(t+="\n");if(!t)return null;r.input=sr(t,!0)}return r.input.shift()},put_char:function(r,t){null===t||10===t?(y(cr(r.output,0)),r.output=[]):0!=t&&r.output.push(t)},fsync:function(r){r.output&&r.output.length>0&&(y(cr(r.output,0)),r.output=[])}},default_tty1_ops:{put_char:function(r,t){null===t||10===t?(w(cr(r.output,0)),r.output=[]):0!=t&&r.output.push(t)},fsync:function(r){r.output&&r.output.length>0&&(w(cr(r.output,0)),r.output=[])}}};function fr(r){H()}var dr={ops_table:null,mount:function(r){return dr.createNode(null,"/",16895,0)},createNode:function(r,t,e,n){if(mr.isBlkdev(e)||mr.isFIFO(e))throw new mr.ErrnoError(63);dr.ops_table||(dr.ops_table={dir:{node:{getattr:dr.node_ops.getattr,setattr:dr.node_ops.setattr,lookup:dr.node_ops.lookup,mknod:dr.node_ops.mknod,rename:dr.node_ops.rename,unlink:dr.node_ops.unlink,rmdir:dr.node_ops.rmdir,readdir:dr.node_ops.readdir,symlink:dr.node_ops.symlink},stream:{llseek:dr.stream_ops.llseek}},file:{node:{getattr:dr.node_ops.getattr,setattr:dr.node_ops.setattr},stream:{llseek:dr.stream_ops.llseek,read:dr.stream_ops.read,write:dr.stream_ops.write,allocate:dr.stream_ops.allocate,mmap:dr.stream_ops.mmap,msync:dr.stream_ops.msync}},link:{node:{getattr:dr.node_ops.getattr,setattr:dr.node_ops.setattr,readlink:dr.node_ops.readlink},stream:{}},chrdev:{node:{getattr:dr.node_ops.getattr,setattr:dr.node_ops.setattr},stream:mr.chrdev_stream_ops}});var o=mr.createNode(r,t,e,n);return mr.isDir(o.mode)?(o.node_ops=dr.ops_table.dir.node,o.stream_ops=dr.ops_table.dir.stream,o.contents={}):mr.isFile(o.mode)?(o.node_ops=dr.ops_table.file.node,o.stream_ops=dr.ops_table.file.stream,o.usedBytes=0,o.contents=null):mr.isLink(o.mode)?(o.node_ops=dr.ops_table.link.node,o.stream_ops=dr.ops_table.link.stream):mr.isChrdev(o.mode)&&(o.node_ops=dr.ops_table.chrdev.node,o.stream_ops=dr.ops_table.chrdev.stream),o.timestamp=Date.now(),r&&(r.contents[t]=o,r.timestamp=o.timestamp),o},getFileDataAsTypedArray:function(r){return r.contents?r.contents.subarray?r.contents.subarray(0,r.usedBytes):new Uint8Array(r.contents):new Uint8Array(0)},expandFileStorage:function(r,t){var e=r.contents?r.contents.length:0;if(!(e>=t)){t=Math.max(t,e*(e<1048576?2:1.125)>>>0),0!=e&&(t=Math.max(t,256));var n=r.contents;r.contents=new Uint8Array(t),r.usedBytes>0&&r.contents.set(n.subarray(0,r.usedBytes),0)}},resizeFileStorage:function(r,t){if(r.usedBytes!=t)if(0==t)r.contents=null,r.usedBytes=0;else{var e=r.contents;r.contents=new Uint8Array(t),e&&r.contents.set(e.subarray(0,Math.min(t,r.usedBytes))),r.usedBytes=t}},node_ops:{getattr:function(r){var t={};return t.dev=mr.isChrdev(r.mode)?r.id:1,t.ino=r.id,t.mode=r.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=r.rdev,mr.isDir(r.mode)?t.size=4096:mr.isFile(r.mode)?t.size=r.usedBytes:mr.isLink(r.mode)?t.size=r.link.length:t.size=0,t.atime=new Date(r.timestamp),t.mtime=new Date(r.timestamp),t.ctime=new Date(r.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr:function(r,t){void 0!==t.mode&&(r.mode=t.mode),void 0!==t.timestamp&&(r.timestamp=t.timestamp),void 0!==t.size&&dr.resizeFileStorage(r,t.size)},lookup:function(r,t){throw mr.genericErrors[44]},mknod:function(r,t,e,n){return dr.createNode(r,t,e,n)},rename:function(r,t,e){if(mr.isDir(r.mode)){var n;try{n=mr.lookupNode(t,e)}catch(r){}if(n)for(var o in n.contents)throw new mr.ErrnoError(55)}delete r.parent.contents[r.name],r.parent.timestamp=Date.now(),r.name=e,t.contents[e]=r,t.timestamp=r.parent.timestamp,r.parent=t},unlink:function(r,t){delete r.contents[t],r.timestamp=Date.now()},rmdir:function(r,t){var e=mr.lookupNode(r,t);for(var n in e.contents)throw new mr.ErrnoError(55);delete r.contents[t],r.timestamp=Date.now()},readdir:function(r){var t=[".",".."];for(var e in r.contents)r.contents.hasOwnProperty(e)&&t.push(e);return t},symlink:function(r,t,e){var n=dr.createNode(r,t,41471,0);return n.link=e,n},readlink:function(r){if(!mr.isLink(r.mode))throw new mr.ErrnoError(28);return r.link}},stream_ops:{read:function(r,t,e,n,o){var a=r.node.contents;if(o>=r.node.usedBytes)return 0;var i=Math.min(r.node.usedBytes-o,n);if(i>8&&a.subarray)t.set(a.subarray(o,o+i),e);else for(var s=0;s0||e+t{if(!(r=or.resolve(r)))return{path:"",node:null};if((t=Object.assign({follow_mount:!0,recurse_count:0},t)).recurse_count>8)throw new mr.ErrnoError(32);for(var e=r.split("/").filter((r=>!!r)),n=mr.root,o="/",a=0;a40)throw new mr.ErrnoError(32)}}return{path:o,node:n}},getPath:r=>{for(var t;;){if(mr.isRoot(r)){var e=r.mount.mountpoint;return t?"/"!==e[e.length-1]?`${e}/${t}`:e+t:e}t=t?`${r.name}/${t}`:r.name,r=r.parent}},hashName:(r,t)=>{for(var e=0,n=0;n>>0)%mr.nameTable.length},hashAddNode:r=>{var t=mr.hashName(r.parent.id,r.name);r.name_next=mr.nameTable[t],mr.nameTable[t]=r},hashRemoveNode:r=>{var t=mr.hashName(r.parent.id,r.name);if(mr.nameTable[t]===r)mr.nameTable[t]=r.name_next;else for(var e=mr.nameTable[t];e;){if(e.name_next===r){e.name_next=r.name_next;break}e=e.name_next}},lookupNode:(r,t)=>{var e=mr.mayLookup(r);if(e)throw new mr.ErrnoError(e,r);for(var n=mr.hashName(r.id,t),o=mr.nameTable[n];o;o=o.name_next){var a=o.name;if(o.parent.id===r.id&&a===t)return o}return mr.lookup(r,t)},createNode:(r,t,e,n)=>{var o=new mr.FSNode(r,t,e,n);return mr.hashAddNode(o),o},destroyNode:r=>{mr.hashRemoveNode(r)},isRoot:r=>r===r.parent,isMountpoint:r=>!!r.mounted,isFile:r=>32768==(61440&r),isDir:r=>16384==(61440&r),isLink:r=>40960==(61440&r),isChrdev:r=>8192==(61440&r),isBlkdev:r=>24576==(61440&r),isFIFO:r=>4096==(61440&r),isSocket:r=>49152==(49152&r),flagsToPermissionString:r=>{var t=["r","w","rw"][3&r];return 512&r&&(t+="w"),t},nodePermissions:(r,t)=>mr.ignorePermissions||(!t.includes("r")||292&r.mode)&&(!t.includes("w")||146&r.mode)&&(!t.includes("x")||73&r.mode)?0:2,mayLookup:r=>mr.nodePermissions(r,"x")||(r.node_ops.lookup?0:2),mayCreate:(r,t)=>{try{return mr.lookupNode(r,t),20}catch(r){}return mr.nodePermissions(r,"wx")},mayDelete:(r,t,e)=>{var n;try{n=mr.lookupNode(r,t)}catch(r){return r.errno}var o=mr.nodePermissions(r,"wx");if(o)return o;if(e){if(!mr.isDir(n.mode))return 54;if(mr.isRoot(n)||mr.getPath(n)===mr.cwd())return 10}else if(mr.isDir(n.mode))return 31;return 0},mayOpen:(r,t)=>r?mr.isLink(r.mode)?32:mr.isDir(r.mode)&&("r"!==mr.flagsToPermissionString(t)||512&t)?31:mr.nodePermissions(r,mr.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd:(r=0,t=mr.MAX_OPEN_FDS)=>{for(var e=r;e<=t;e++)if(!mr.streams[e])return e;throw new mr.ErrnoError(33)},getStream:r=>mr.streams[r],createStream:(r,t,e)=>{mr.FSStream||(mr.FSStream=function(){this.shared={}},mr.FSStream.prototype={},Object.defineProperties(mr.FSStream.prototype,{object:{get:function(){return this.node},set:function(r){this.node=r}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}},flags:{get:function(){return this.shared.flags},set:function(r){this.shared.flags=r}},position:{get:function(){return this.shared.position},set:function(r){this.shared.position=r}}})),r=Object.assign(new mr.FSStream,r);var n=mr.nextfd(t,e);return r.fd=n,mr.streams[n]=r,r},closeStream:r=>{mr.streams[r]=null},chrdev_stream_ops:{open:r=>{var t=mr.getDevice(r.node.rdev);r.stream_ops=t.stream_ops,r.stream_ops.open&&r.stream_ops.open(r)},llseek:()=>{throw new mr.ErrnoError(70)}},major:r=>r>>8,minor:r=>255&r,makedev:(r,t)=>r<<8|t,registerDevice:(r,t)=>{mr.devices[r]={stream_ops:t}},getDevice:r=>mr.devices[r],getMounts:r=>{for(var t=[],e=[r];e.length;){var n=e.pop();t.push(n),e.push.apply(e,n.mounts)}return t},syncfs:(r,t)=>{"function"==typeof r&&(t=r,r=!1),mr.syncFSRequests++,mr.syncFSRequests>1&&w(`warning: ${mr.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var e=mr.getMounts(mr.root.mount),n=0;function o(r){return mr.syncFSRequests--,t(r)}function a(r){if(r)return a.errored?void 0:(a.errored=!0,o(r));++n>=e.length&&o(null)}e.forEach((t=>{if(!t.type.syncfs)return a(null);t.type.syncfs(t,r,a)}))},mount:(r,t,e)=>{var n,o="/"===e,a=!e;if(o&&mr.root)throw new mr.ErrnoError(10);if(!o&&!a){var i=mr.lookupPath(e,{follow_mount:!1});if(e=i.path,n=i.node,mr.isMountpoint(n))throw new mr.ErrnoError(10);if(!mr.isDir(n.mode))throw new mr.ErrnoError(54)}var s={type:r,opts:t,mountpoint:e,mounts:[]},u=r.mount(s);return u.mount=s,s.root=u,o?mr.root=u:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),u},unmount:r=>{var t=mr.lookupPath(r,{follow_mount:!1});if(!mr.isMountpoint(t.node))throw new mr.ErrnoError(28);var e=t.node,n=e.mounted,o=mr.getMounts(n);Object.keys(mr.nameTable).forEach((r=>{for(var t=mr.nameTable[r];t;){var e=t.name_next;o.includes(t.mount)&&mr.destroyNode(t),t=e}})),e.mounted=null;var a=e.mount.mounts.indexOf(n);e.mount.mounts.splice(a,1)},lookup:(r,t)=>r.node_ops.lookup(r,t),mknod:(r,t,e)=>{var n=mr.lookupPath(r,{parent:!0}).node,o=er.basename(r);if(!o||"."===o||".."===o)throw new mr.ErrnoError(28);var a=mr.mayCreate(n,o);if(a)throw new mr.ErrnoError(a);if(!n.node_ops.mknod)throw new mr.ErrnoError(63);return n.node_ops.mknod(n,o,t,e)},create:(r,t)=>(t=void 0!==t?t:438,t&=4095,t|=32768,mr.mknod(r,t,0)),mkdir:(r,t)=>(t=void 0!==t?t:511,t&=1023,t|=16384,mr.mknod(r,t,0)),mkdirTree:(r,t)=>{for(var e=r.split("/"),n="",o=0;o(void 0===e&&(e=t,t=438),t|=8192,mr.mknod(r,t,e)),symlink:(r,t)=>{if(!or.resolve(r))throw new mr.ErrnoError(44);var e=mr.lookupPath(t,{parent:!0}).node;if(!e)throw new mr.ErrnoError(44);var n=er.basename(t),o=mr.mayCreate(e,n);if(o)throw new mr.ErrnoError(o);if(!e.node_ops.symlink)throw new mr.ErrnoError(63);return e.node_ops.symlink(e,n,r)},rename:(r,t)=>{var e,n,o=er.dirname(r),a=er.dirname(t),i=er.basename(r),s=er.basename(t);if(e=mr.lookupPath(r,{parent:!0}).node,n=mr.lookupPath(t,{parent:!0}).node,!e||!n)throw new mr.ErrnoError(44);if(e.mount!==n.mount)throw new mr.ErrnoError(75);var u,c=mr.lookupNode(e,i),l=or.relative(r,a);if("."!==l.charAt(0))throw new mr.ErrnoError(28);if("."!==(l=or.relative(t,o)).charAt(0))throw new mr.ErrnoError(55);try{u=mr.lookupNode(n,s)}catch(r){}if(c!==u){var f=mr.isDir(c.mode),d=mr.mayDelete(e,i,f);if(d)throw new mr.ErrnoError(d);if(d=u?mr.mayDelete(n,s,f):mr.mayCreate(n,s))throw new mr.ErrnoError(d);if(!e.node_ops.rename)throw new mr.ErrnoError(63);if(mr.isMountpoint(c)||u&&mr.isMountpoint(u))throw new mr.ErrnoError(10);if(n!==e&&(d=mr.nodePermissions(e,"w")))throw new mr.ErrnoError(d);mr.hashRemoveNode(c);try{e.node_ops.rename(c,n,s)}catch(r){throw r}finally{mr.hashAddNode(c)}}},rmdir:r=>{var t=mr.lookupPath(r,{parent:!0}).node,e=er.basename(r),n=mr.lookupNode(t,e),o=mr.mayDelete(t,e,!0);if(o)throw new mr.ErrnoError(o);if(!t.node_ops.rmdir)throw new mr.ErrnoError(63);if(mr.isMountpoint(n))throw new mr.ErrnoError(10);t.node_ops.rmdir(t,e),mr.destroyNode(n)},readdir:r=>{var t=mr.lookupPath(r,{follow:!0}).node;if(!t.node_ops.readdir)throw new mr.ErrnoError(54);return t.node_ops.readdir(t)},unlink:r=>{var t=mr.lookupPath(r,{parent:!0}).node;if(!t)throw new mr.ErrnoError(44);var e=er.basename(r),n=mr.lookupNode(t,e),o=mr.mayDelete(t,e,!1);if(o)throw new mr.ErrnoError(o);if(!t.node_ops.unlink)throw new mr.ErrnoError(63);if(mr.isMountpoint(n))throw new mr.ErrnoError(10);t.node_ops.unlink(t,e),mr.destroyNode(n)},readlink:r=>{var t=mr.lookupPath(r).node;if(!t)throw new mr.ErrnoError(44);if(!t.node_ops.readlink)throw new mr.ErrnoError(28);return or.resolve(mr.getPath(t.parent),t.node_ops.readlink(t))},stat:(r,t)=>{var e=mr.lookupPath(r,{follow:!t}).node;if(!e)throw new mr.ErrnoError(44);if(!e.node_ops.getattr)throw new mr.ErrnoError(63);return e.node_ops.getattr(e)},lstat:r=>mr.stat(r,!0),chmod:(r,t,e)=>{var n;if(!(n="string"==typeof r?mr.lookupPath(r,{follow:!e}).node:r).node_ops.setattr)throw new mr.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:(r,t)=>{mr.chmod(r,t,!0)},fchmod:(r,t)=>{var e=mr.getStream(r);if(!e)throw new mr.ErrnoError(8);mr.chmod(e.node,t)},chown:(r,t,e,n)=>{var o;if(!(o="string"==typeof r?mr.lookupPath(r,{follow:!n}).node:r).node_ops.setattr)throw new mr.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:(r,t,e)=>{mr.chown(r,t,e,!0)},fchown:(r,t,e)=>{var n=mr.getStream(r);if(!n)throw new mr.ErrnoError(8);mr.chown(n.node,t,e)},truncate:(r,t)=>{if(t<0)throw new mr.ErrnoError(28);var e;if(!(e="string"==typeof r?mr.lookupPath(r,{follow:!0}).node:r).node_ops.setattr)throw new mr.ErrnoError(63);if(mr.isDir(e.mode))throw new mr.ErrnoError(31);if(!mr.isFile(e.mode))throw new mr.ErrnoError(28);var n=mr.nodePermissions(e,"w");if(n)throw new mr.ErrnoError(n);e.node_ops.setattr(e,{size:t,timestamp:Date.now()})},ftruncate:(r,t)=>{var e=mr.getStream(r);if(!e)throw new mr.ErrnoError(8);if(0==(2097155&e.flags))throw new mr.ErrnoError(28);mr.truncate(e.node,t)},utime:(r,t,e)=>{var n=mr.lookupPath(r,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(t,e)})},open:(r,t,e)=>{if(""===r)throw new mr.ErrnoError(44);var n;if(e=void 0===e?438:e,e=64&(t="string"==typeof t?function(r){var t={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[r];if(void 0===t)throw new Error(`Unknown file open mode: ${r}`);return t}(t):t)?4095&e|32768:0,"object"==typeof r)n=r;else{r=er.normalize(r);try{n=mr.lookupPath(r,{follow:!(131072&t)}).node}catch(r){}}var a=!1;if(64&t)if(n){if(128&t)throw new mr.ErrnoError(20)}else n=mr.mknod(r,e,0),a=!0;if(!n)throw new mr.ErrnoError(44);if(mr.isChrdev(n.mode)&&(t&=-513),65536&t&&!mr.isDir(n.mode))throw new mr.ErrnoError(54);if(!a){var i=mr.mayOpen(n,t);if(i)throw new mr.ErrnoError(i)}512&t&&!a&&mr.truncate(n,0),t&=-131713;var s=mr.createStream({node:n,path:mr.getPath(n),flags:t,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return s.stream_ops.open&&s.stream_ops.open(s),!o.logReadFiles||1&t||(mr.readFiles||(mr.readFiles={}),r in mr.readFiles||(mr.readFiles[r]=1)),s},close:r=>{if(mr.isClosed(r))throw new mr.ErrnoError(8);r.getdents&&(r.getdents=null);try{r.stream_ops.close&&r.stream_ops.close(r)}catch(r){throw r}finally{mr.closeStream(r.fd)}r.fd=null},isClosed:r=>null===r.fd,llseek:(r,t,e)=>{if(mr.isClosed(r))throw new mr.ErrnoError(8);if(!r.seekable||!r.stream_ops.llseek)throw new mr.ErrnoError(70);if(0!=e&&1!=e&&2!=e)throw new mr.ErrnoError(28);return r.position=r.stream_ops.llseek(r,t,e),r.ungotten=[],r.position},read:(r,t,e,n,o)=>{if(n<0||o<0)throw new mr.ErrnoError(28);if(mr.isClosed(r))throw new mr.ErrnoError(8);if(1==(2097155&r.flags))throw new mr.ErrnoError(8);if(mr.isDir(r.node.mode))throw new mr.ErrnoError(31);if(!r.stream_ops.read)throw new mr.ErrnoError(28);var a=void 0!==o;if(a){if(!r.seekable)throw new mr.ErrnoError(70)}else o=r.position;var i=r.stream_ops.read(r,t,e,n,o);return a||(r.position+=i),i},write:(r,t,e,n,o,a)=>{if(n<0||o<0)throw new mr.ErrnoError(28);if(mr.isClosed(r))throw new mr.ErrnoError(8);if(0==(2097155&r.flags))throw new mr.ErrnoError(8);if(mr.isDir(r.node.mode))throw new mr.ErrnoError(31);if(!r.stream_ops.write)throw new mr.ErrnoError(28);r.seekable&&1024&r.flags&&mr.llseek(r,0,2);var i=void 0!==o;if(i){if(!r.seekable)throw new mr.ErrnoError(70)}else o=r.position;var s=r.stream_ops.write(r,t,e,n,o,a);return i||(r.position+=s),s},allocate:(r,t,e)=>{if(mr.isClosed(r))throw new mr.ErrnoError(8);if(t<0||e<=0)throw new mr.ErrnoError(28);if(0==(2097155&r.flags))throw new mr.ErrnoError(8);if(!mr.isFile(r.node.mode)&&!mr.isDir(r.node.mode))throw new mr.ErrnoError(43);if(!r.stream_ops.allocate)throw new mr.ErrnoError(138);r.stream_ops.allocate(r,t,e)},mmap:(r,t,e,n,o)=>{if(0!=(2&n)&&0==(2&o)&&2!=(2097155&r.flags))throw new mr.ErrnoError(2);if(1==(2097155&r.flags))throw new mr.ErrnoError(2);if(!r.stream_ops.mmap)throw new mr.ErrnoError(43);return r.stream_ops.mmap(r,t,e,n,o)},msync:(r,t,e,n,o)=>r.stream_ops.msync?r.stream_ops.msync(r,t,e,n,o):0,munmap:r=>0,ioctl:(r,t,e)=>{if(!r.stream_ops.ioctl)throw new mr.ErrnoError(59);return r.stream_ops.ioctl(r,t,e)},readFile:(r,t={})=>{if(t.flags=t.flags||0,t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error(`Invalid encoding type "${t.encoding}"`);var e,n=mr.open(r,t.flags),o=mr.stat(r).size,a=new Uint8Array(o);return mr.read(n,a,0,o,0),"utf8"===t.encoding?e=cr(a,0):"binary"===t.encoding&&(e=a),mr.close(n),e},writeFile:(r,t,e={})=>{e.flags=e.flags||577;var n=mr.open(r,e.flags,e.mode);if("string"==typeof t){var o=new Uint8Array(ar(t)+1),a=ir(t,o,0,o.length);mr.write(n,o,0,a,void 0,e.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");mr.write(n,t,0,t.byteLength,void 0,e.canOwn)}mr.close(n)},cwd:()=>mr.currentPath,chdir:r=>{var t=mr.lookupPath(r,{follow:!0});if(null===t.node)throw new mr.ErrnoError(44);if(!mr.isDir(t.node.mode))throw new mr.ErrnoError(54);var e=mr.nodePermissions(t.node,"x");if(e)throw new mr.ErrnoError(e);mr.currentPath=t.path},createDefaultDirectories:()=>{mr.mkdir("/tmp"),mr.mkdir("/home"),mr.mkdir("/home/web_user")},createDefaultDevices:()=>{mr.mkdir("/dev"),mr.registerDevice(mr.makedev(1,3),{read:()=>0,write:(r,t,e,n,o)=>n}),mr.mkdev("/dev/null",mr.makedev(1,3)),lr.register(mr.makedev(5,0),lr.default_tty_ops),lr.register(mr.makedev(6,0),lr.default_tty1_ops),mr.mkdev("/dev/tty",mr.makedev(5,0)),mr.mkdev("/dev/tty1",mr.makedev(6,0));var r=new Uint8Array(1024),t=0,e=()=>(0===t&&(t=nr(r).byteLength),r[--t]);mr.createDevice("/dev","random",e),mr.createDevice("/dev","urandom",e),mr.mkdir("/dev/shm"),mr.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{mr.mkdir("/proc");var r=mr.mkdir("/proc/self");mr.mkdir("/proc/self/fd"),mr.mount({mount:()=>{var t=mr.createNode(r,"fd",16895,73);return t.node_ops={lookup:(r,t)=>{var e=+t,n=mr.getStream(e);if(!n)throw new mr.ErrnoError(8);var o={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>n.path}};return o.parent=o,o}},t}},{},"/proc/self/fd")},createStandardStreams:()=>{o.stdin?mr.createDevice("/dev","stdin",o.stdin):mr.symlink("/dev/tty","/dev/stdin"),o.stdout?mr.createDevice("/dev","stdout",null,o.stdout):mr.symlink("/dev/tty","/dev/stdout"),o.stderr?mr.createDevice("/dev","stderr",null,o.stderr):mr.symlink("/dev/tty1","/dev/stderr"),mr.open("/dev/stdin",0),mr.open("/dev/stdout",1),mr.open("/dev/stderr",1)},ensureErrnoError:()=>{mr.ErrnoError||(mr.ErrnoError=function(r,t){this.name="ErrnoError",this.node=t,this.setErrno=function(r){this.errno=r},this.setErrno(r),this.message="FS error"},mr.ErrnoError.prototype=new Error,mr.ErrnoError.prototype.constructor=mr.ErrnoError,[44].forEach((r=>{mr.genericErrors[r]=new mr.ErrnoError(r),mr.genericErrors[r].stack=""})))},staticInit:()=>{mr.ensureErrnoError(),mr.nameTable=new Array(4096),mr.mount(dr,{},"/"),mr.createDefaultDirectories(),mr.createDefaultDevices(),mr.createSpecialDirectories(),mr.filesystems={MEMFS:dr}},init:(r,t,e)=>{mr.init.initialized=!0,mr.ensureErrnoError(),o.stdin=r||o.stdin,o.stdout=t||o.stdout,o.stderr=e||o.stderr,mr.createStandardStreams()},quit:()=>{mr.init.initialized=!1;for(var r=0;r{var e=mr.analyzePath(r,t);return e.exists?e.object:null},analyzePath:(r,t)=>{try{r=(n=mr.lookupPath(r,{follow:!t})).path}catch(r){}var e={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=mr.lookupPath(r,{parent:!0});e.parentExists=!0,e.parentPath=n.path,e.parentObject=n.node,e.name=er.basename(r),n=mr.lookupPath(r,{follow:!t}),e.exists=!0,e.path=n.path,e.object=n.node,e.name=n.node.name,e.isRoot="/"===n.path}catch(r){e.error=r.errno}return e},createPath:(r,t,e,n)=>{r="string"==typeof r?r:mr.getPath(r);for(var o=t.split("/").reverse();o.length;){var a=o.pop();if(a){var i=er.join2(r,a);try{mr.mkdir(i)}catch(r){}r=i}}return i},createFile:(r,t,e,n,o)=>{var a=er.join2("string"==typeof r?r:mr.getPath(r),t),i=pr(n,o);return mr.create(a,i)},createDataFile:(r,t,e,n,o,a)=>{var i=t;r&&(r="string"==typeof r?r:mr.getPath(r),i=t?er.join2(r,t):r);var s=pr(n,o),u=mr.create(i,s);if(e){if("string"==typeof e){for(var c=new Array(e.length),l=0,f=e.length;l{var o=er.join2("string"==typeof r?r:mr.getPath(r),t),a=pr(!!e,!!n);mr.createDevice.major||(mr.createDevice.major=64);var i=mr.makedev(mr.createDevice.major++,0);return mr.registerDevice(i,{open:r=>{r.seekable=!1},close:r=>{n&&n.buffer&&n.buffer.length&&n(10)},read:(r,t,n,o,a)=>{for(var i=0,s=0;s{for(var i=0;i{if(r.isDevice||r.isFolder||r.link||r.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!a)throw new Error("Cannot load without read() or XMLHttpRequest.");try{r.contents=sr(a(r.url),!0),r.usedBytes=r.contents.length}catch(r){throw new mr.ErrnoError(29)}},createLazyFile:(r,t,e,n,o)=>{function a(){this.lengthKnown=!1,this.chunks=[]}if(a.prototype.get=function(r){if(!(r>this.length-1||r<0)){var t=r%this.chunkSize,e=r/this.chunkSize|0;return this.getter(e)[t]}},a.prototype.setDataGetter=function(r){this.getter=r},a.prototype.cacheLength=function(){var r=new XMLHttpRequest;if(r.open("HEAD",e,!1),r.send(null),!(r.status>=200&&r.status<300||304===r.status))throw new Error("Couldn't load "+e+". Status: "+r.status);var t,n=Number(r.getResponseHeader("Content-length")),o=(t=r.getResponseHeader("Accept-Ranges"))&&"bytes"===t,a=(t=r.getResponseHeader("Content-Encoding"))&&"gzip"===t,i=1048576;o||(i=n);var s=this;s.setDataGetter((r=>{var t=r*i,o=(r+1)*i-1;if(o=Math.min(o,n-1),void 0===s.chunks[r]&&(s.chunks[r]=((r,t)=>{if(r>t)throw new Error("invalid range ("+r+", "+t+") or no bytes requested!");if(t>n-1)throw new Error("only "+n+" bytes available! programmer error!");var o=new XMLHttpRequest;if(o.open("GET",e,!1),n!==i&&o.setRequestHeader("Range","bytes="+r+"-"+t),o.responseType="arraybuffer",o.overrideMimeType&&o.overrideMimeType("text/plain; charset=x-user-defined"),o.send(null),!(o.status>=200&&o.status<300||304===o.status))throw new Error("Couldn't load "+e+". Status: "+o.status);return void 0!==o.response?new Uint8Array(o.response||[]):sr(o.responseText||"",!0)})(t,o)),void 0===s.chunks[r])throw new Error("doXHR failed!");return s.chunks[r]})),!a&&n||(i=n=1,n=this.getter(0).length,i=n,y("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=i,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!f)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var i=new a;Object.defineProperties(i,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var s={isDevice:!1,contents:i}}else s={isDevice:!1,url:e};var u=mr.createFile(r,t,s,n,o);s.contents?u.contents=s.contents:s.url&&(u.contents=null,u.url=s.url),Object.defineProperties(u,{usedBytes:{get:function(){return this.contents.length}}});var c={};function l(r,t,e,n,o){var a=r.node.contents;if(o>=a.length)return 0;var i=Math.min(a.length-o,n);if(a.slice)for(var s=0;s{var t=u.stream_ops[r];c[r]=function(){return mr.forceLoadFile(u),t.apply(null,arguments)}})),c.read=(r,t,e,n,o)=>(mr.forceLoadFile(u),l(r,t,e,n,o)),c.mmap=(r,t,e,n,o)=>{mr.forceLoadFile(u);var a=fr();if(!a)throw new mr.ErrnoError(48);return l(r,g,a,t,e),{ptr:a,allocated:!0}},u.stream_ops=c,u}};function vr(r,t){return r?cr(b,r,t):""}var yr={DEFAULT_POLLMASK:5,calculateAt:function(r,t,e){if(er.isAbs(t))return t;var n;if(n=-100===r?mr.cwd():yr.getStreamFromFD(r).path,0==t.length){if(!e)throw new mr.ErrnoError(44);return n}return er.join2(n,t)},doStat:function(r,t,e){try{var n=r(t)}catch(r){if(r&&r.node&&er.normalize(t)!==er.normalize(mr.getPath(r.node)))return-54;throw r}k[e>>2]=n.dev,k[e+8>>2]=n.ino,k[e+12>>2]=n.mode,$[e+16>>2]=n.nlink,k[e+20>>2]=n.uid,k[e+24>>2]=n.gid,k[e+28>>2]=n.rdev,L=[n.size>>>0,(U=n.size,+Math.abs(U)>=1?U>0?+Math.floor(U/4294967296)>>>0:~~+Math.ceil((U-+(~~U>>>0))/4294967296)>>>0:0)],k[e+40>>2]=L[0],k[e+44>>2]=L[1],k[e+48>>2]=4096,k[e+52>>2]=n.blocks;var o=n.atime.getTime(),a=n.mtime.getTime(),i=n.ctime.getTime();return L=[Math.floor(o/1e3)>>>0,(U=Math.floor(o/1e3),+Math.abs(U)>=1?U>0?+Math.floor(U/4294967296)>>>0:~~+Math.ceil((U-+(~~U>>>0))/4294967296)>>>0:0)],k[e+56>>2]=L[0],k[e+60>>2]=L[1],$[e+64>>2]=o%1e3*1e3,L=[Math.floor(a/1e3)>>>0,(U=Math.floor(a/1e3),+Math.abs(U)>=1?U>0?+Math.floor(U/4294967296)>>>0:~~+Math.ceil((U-+(~~U>>>0))/4294967296)>>>0:0)],k[e+72>>2]=L[0],k[e+76>>2]=L[1],$[e+80>>2]=a%1e3*1e3,L=[Math.floor(i/1e3)>>>0,(U=Math.floor(i/1e3),+Math.abs(U)>=1?U>0?+Math.floor(U/4294967296)>>>0:~~+Math.ceil((U-+(~~U>>>0))/4294967296)>>>0:0)],k[e+88>>2]=L[0],k[e+92>>2]=L[1],$[e+96>>2]=i%1e3*1e3,L=[n.ino>>>0,(U=n.ino,+Math.abs(U)>=1?U>0?+Math.floor(U/4294967296)>>>0:~~+Math.ceil((U-+(~~U>>>0))/4294967296)>>>0:0)],k[e+104>>2]=L[0],k[e+108>>2]=L[1],0},doMsync:function(r,t,e,n,o){if(!mr.isFile(t.node.mode))throw new mr.ErrnoError(43);if(2&n)return 0;var a=b.slice(r,r+e);mr.msync(t,a,o,e,n)},varargs:void 0,get:function(){return yr.varargs+=4,k[yr.varargs-4>>2]},getStr:function(r){return vr(r)},getStreamFromFD:function(r){var t=mr.getStream(r);if(!t)throw new mr.ErrnoError(8);return t}};function wr(r){switch(r){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${r}`)}}var gr=void 0;function br(r){for(var t="",e=r;b[e];)t+=gr[b[e++]];return t}var Er={},_r={},kr={},$r=48,Pr=57;function Cr(r){if(void 0===r)return"_unknown";var t=(r=r.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=$r&&t<=Pr?`_${r}`:r}function Tr(r,t){return{[r=Cr(r)]:function(){return t.apply(this,arguments)}}[r]}function Dr(r,t){var e=Tr(t,(function(r){this.name=t,this.message=r;var e=new Error(r).stack;void 0!==e&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))}));return e.prototype=Object.create(r.prototype),e.prototype.constructor=e,e.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`},e}var Fr=void 0;function Sr(r){throw new Fr(r)}var Ar=void 0;function jr(r){throw new Ar(r)}function Mr(r,t,e){function n(t){var n=e(t);n.length!==r.length&&jr("Mismatched type converter count");for(var o=0;o{_r.hasOwnProperty(r)?o[t]=_r[r]:(a.push(r),Er.hasOwnProperty(r)||(Er[r]=[]),Er[r].push((()=>{o[t]=_r[r],++i===a.length&&n(o)})))})),0===a.length&&n(o)}function Or(r,t,e={}){if(!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var n=t.name;if(r||Sr(`type "${n}" must have a positive integer typeid pointer`),_r.hasOwnProperty(r)){if(e.ignoreDuplicateRegistrations)return;Sr(`Cannot register type '${n}' twice`)}if(_r[r]=t,delete kr[r],Er.hasOwnProperty(r)){var o=Er[r];delete Er[r],o.forEach((r=>r()))}}function Rr(r){Sr(r.$$.ptrType.registeredClass.name+" instance already deleted")}var xr=!1;function zr(r){}function Hr(r){r.count.value-=1,0===r.count.value&&function(r){r.smartPtr?r.smartPtrType.rawDestructor(r.smartPtr):r.ptrType.registeredClass.rawDestructor(r.ptr)}(r)}function Wr(r,t,e){if(t===e)return r;if(void 0===e.baseClass)return null;var n=Wr(r,t,e.baseClass);return null===n?null:e.downcast(n)}var Nr={};var Ur=[];function Lr(){for(;Ur.length;){var r=Ur.pop();r.$$.deleteScheduled=!1,r.delete()}}var Br=void 0;var Ir={};function Vr(r,t){return t.ptrType&&t.ptr||jr("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&jr("Both smartPtrType and smartPtr must be specified"),t.count={value:1},qr(Object.create(r,{$$:{value:t}}))}function qr(r){return"undefined"==typeof FinalizationRegistry?(qr=r=>r,r):(xr=new FinalizationRegistry((r=>{Hr(r.$$)})),qr=r=>{var t=r.$$;if(t.smartPtr){var e={$$:t};xr.register(r,e,r)}return r},zr=r=>xr.unregister(r),qr(r))}function Yr(){}function Xr(r,t,e){if(void 0===r[t].overloadTable){var n=r[t];r[t]=function(){return r[t].overloadTable.hasOwnProperty(arguments.length)||Sr(`Function '${e}' called with an invalid number of arguments (${arguments.length}) - expects one of (${r[t].overloadTable})!`),r[t].overloadTable[arguments.length].apply(this,arguments)},r[t].overloadTable=[],r[t].overloadTable[n.argCount]=n}}function Gr(r,t,e){o.hasOwnProperty(r)?((void 0===e||void 0!==o[r].overloadTable&&void 0!==o[r].overloadTable[e])&&Sr(`Cannot register public name '${r}' twice`),Xr(o,r,r),o.hasOwnProperty(e)&&Sr(`Cannot register multiple overloads of a function with the same number of arguments (${e})!`),o[r].overloadTable[e]=t):(o[r]=t,void 0!==e&&(o[r].numArguments=e))}function Kr(r,t,e,n,o,a,i,s){this.name=r,this.constructor=t,this.instancePrototype=e,this.rawDestructor=n,this.baseClass=o,this.getActualType=a,this.upcast=i,this.downcast=s,this.pureVirtualFunctions=[]}function Jr(r,t,e){for(;t!==e;)t.upcast||Sr(`Expected null or instance of ${e.name}, got an instance of ${t.name}`),r=t.upcast(r),t=t.baseClass;return r}function Zr(r,t){if(null===t)return this.isReference&&Sr(`null is not a valid ${this.name}`),0;t.$$||Sr(`Cannot pass "${yt(t)}" as a ${this.name}`),t.$$.ptr||Sr(`Cannot pass deleted object as a pointer of type ${this.name}`);var e=t.$$.ptrType.registeredClass;return Jr(t.$$.ptr,e,this.registeredClass)}function Qr(r,t){var e;if(null===t)return this.isReference&&Sr(`null is not a valid ${this.name}`),this.isSmartPointer?(e=this.rawConstructor(),null!==r&&r.push(this.rawDestructor,e),e):0;t.$$||Sr(`Cannot pass "${yt(t)}" as a ${this.name}`),t.$$.ptr||Sr(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&t.$$.ptrType.isConst&&Sr(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);var n=t.$$.ptrType.registeredClass;if(e=Jr(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&Sr("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?e=t.$$.smartPtr:Sr(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:e=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)e=t.$$.smartPtr;else{var o=t.clone();e=this.rawShare(e,vt.toHandle((function(){o.delete()}))),null!==r&&r.push(this.rawDestructor,e)}break;default:Sr("Unsupporting sharing policy")}return e}function rt(r,t){if(null===t)return this.isReference&&Sr(`null is not a valid ${this.name}`),0;t.$$||Sr(`Cannot pass "${yt(t)}" as a ${this.name}`),t.$$.ptr||Sr(`Cannot pass deleted object as a pointer of type ${this.name}`),t.$$.ptrType.isConst&&Sr(`Cannot convert argument of type ${t.$$.ptrType.name} to parameter type ${this.name}`);var e=t.$$.ptrType.registeredClass;return Jr(t.$$.ptr,e,this.registeredClass)}function tt(r){return this.fromWireType(k[r>>2])}function et(r,t,e,n,o,a,i,s,u,c,l){this.name=r,this.registeredClass=t,this.isReference=e,this.isConst=n,this.isSmartPointer=o,this.pointeeType=a,this.sharingPolicy=i,this.rawGetPointee=s,this.rawConstructor=u,this.rawShare=c,this.rawDestructor=l,o||void 0!==t.baseClass?this.toWireType=Qr:n?(this.toWireType=Zr,this.destructorFunction=null):(this.toWireType=rt,this.destructorFunction=null)}function nt(r,t,e){o.hasOwnProperty(r)||jr("Replacing nonexistant public symbol"),void 0!==o[r].overloadTable&&void 0!==e?o[r].overloadTable[e]=t:(o[r]=t,o[r].argCount=e)}var ot=[];function at(r){var t=ot[r];return t||(r>=ot.length&&(ot.length=r+1),ot[r]=t=T.get(r)),t}function it(r,t){var e,n,a,i=(r=br(r)).includes("j")?(e=r,n=t,a=[],function(){return a.length=0,Object.assign(a,arguments),function(r,t,e){return r.includes("j")?function(r,t,e){var n=o["dynCall_"+r];return e&&e.length?n.apply(null,[t].concat(e)):n.call(null,t)}(r,t,e):at(t).apply(null,e)}(e,n,a)}):at(t);return"function"!=typeof i&&Sr(`unknown function pointer with signature ${r}: ${t}`),i}var st=void 0;function ut(r){var t=Jt(r),e=br(t);return Xt(t),e}function ct(r,t){var e=[],n={};throw t.forEach((function r(t){n[t]||_r[t]||(kr[t]?kr[t].forEach(r):(e.push(t),n[t]=!0))})),new st(`${r}: `+e.map(ut).join([", "]))}function lt(r,t){for(var e=[],n=0;n>2]);return e}function ft(r){for(;r.length;){var t=r.pop();r.pop()(t)}}function dt(r,t){if(!(r instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof r} which is not a function`);var e=Tr(r.name||"unknownFunctionName",(function(){}));e.prototype=r.prototype;var n=new e,o=r.apply(n,t);return o instanceof Object?o:n}function ht(r,t,e,n,o,a){var i=t.length;i<2&&Sr("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var s=null!==t[1]&&null!==e,u=!1,c=1;c0?", ":"")+d),h+=(l||a?"var rv = ":"")+"invoker(fn"+(d.length>0?", ":"")+d+");\n",u)h+="runDestructors(destructors);\n";else for(c=s?1:2;c=pt.reserved&&0==--pt.get(r).refcount&&pt.free(r)}var vt={toValue:r=>(r||Sr("Cannot use deleted val. handle = "+r),pt.get(r).value),toHandle:r=>{switch(r){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return pt.allocate({refcount:1,value:r})}}};function yt(r){if(null===r)return"null";var t=typeof r;return"object"===t||"array"===t||"function"===t?r.toString():""+r}function wt(r,t){switch(t){case 2:return function(r){return this.fromWireType(P[r>>2])};case 3:return function(r){return this.fromWireType(C[r>>3])};default:throw new TypeError("Unknown float type: "+r)}}function gt(r,t,e){switch(t){case 0:return e?function(r){return g[r]}:function(r){return b[r]};case 1:return e?function(r){return E[r>>1]}:function(r){return _[r>>1]};case 2:return e?function(r){return k[r>>2]}:function(r){return $[r>>2]};default:throw new TypeError("Unknown integer type: "+r)}}function bt(r,t,e){return ir(r,b,t,e)}var Et="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function _t(r,t){for(var e=r,n=e>>1,o=n+t/2;!(n>=o)&&_[n];)++n;if((e=n<<1)-r>32&&Et)return Et.decode(b.subarray(r,e));for(var a="",i=0;!(i>=t/2);++i){var s=E[r+2*i>>1];if(0==s)break;a+=String.fromCharCode(s)}return a}function kt(r,t,e){if(void 0===e&&(e=2147483647),e<2)return 0;for(var n=t,o=(e-=2)<2*r.length?e/2:r.length,a=0;a>1]=i,t+=2}return E[t>>1]=0,t-n}function $t(r){return 2*r.length}function Pt(r,t){for(var e=0,n="";!(e>=t/4);){var o=k[r+4*e>>2];if(0==o)break;if(++e,o>=65536){var a=o-65536;n+=String.fromCharCode(55296|a>>10,56320|1023&a)}else n+=String.fromCharCode(o)}return n}function Ct(r,t,e){if(void 0===e&&(e=2147483647),e<4)return 0;for(var n=t,o=n+e-4,a=0;a=55296&&i<=57343&&(i=65536+((1023&i)<<10)|1023&r.charCodeAt(++a)),k[t>>2]=i,(t+=4)+4>o)break}return k[t>>2]=0,t-n}function Tt(r){for(var t=0,e=0;e=55296&&n<=57343&&++e,t+=4}return t}function Dt(r,t){var e=_r[r];return void 0===e&&Sr(t+" has unknown type "+ut(r)),e}var Ft={};function St(r){var t=Ft[r];return void 0===t?br(r):t}var At=[];function jt(){return"object"==typeof globalThis?globalThis:Function("return this")()}var Mt=[],Ot={};function Rt(r){return r%4==0&&(r%100!=0||r%400==0)}var xt=[0,31,60,91,121,152,182,213,244,274,305,335],zt=[0,31,59,90,120,151,181,212,243,273,304,334];function Ht(r){var t=ar(r)+1,e=Yt(t);return e&&bt(r,e,t),e}var Wt={};function Nt(){if(!Nt.strings){var r={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:c||"./this.program"};for(var t in Wt)void 0===Wt[t]?delete r[t]:r[t]=Wt[t];var e=[];for(var t in r)e.push(t+"="+r[t]);Nt.strings=e}return Nt.strings}var Ut=[31,29,31,30,31,30,31,31,30,31,30,31],Lt=[31,28,31,30,31,30,31,31,30,31,30,31];function Bt(r,t,e,n){var o=k[n+40>>2],a={tm_sec:k[n>>2],tm_min:k[n+4>>2],tm_hour:k[n+8>>2],tm_mday:k[n+12>>2],tm_mon:k[n+16>>2],tm_year:k[n+20>>2],tm_wday:k[n+24>>2],tm_yday:k[n+28>>2],tm_isdst:k[n+32>>2],tm_gmtoff:k[n+36>>2],tm_zone:o?vr(o):""},i=vr(e),s={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var u in s)i=i.replace(new RegExp(u,"g"),s[u]);var c=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],l=["January","February","March","April","May","June","July","August","September","October","November","December"];function f(r,t,e){for(var n="number"==typeof r?r.toString():r||"";n.length0?1:0}var n;return 0===(n=e(r.getFullYear()-t.getFullYear()))&&0===(n=e(r.getMonth()-t.getMonth()))&&(n=e(r.getDate()-t.getDate())),n}function p(r){switch(r.getDay()){case 0:return new Date(r.getFullYear()-1,11,29);case 1:return r;case 2:return new Date(r.getFullYear(),0,3);case 3:return new Date(r.getFullYear(),0,2);case 4:return new Date(r.getFullYear(),0,1);case 5:return new Date(r.getFullYear()-1,11,31);case 6:return new Date(r.getFullYear()-1,11,30)}}function m(r){var t=function(r,t){for(var e=new Date(r.getTime());t>0;){var n=Rt(e.getFullYear()),o=e.getMonth(),a=(n?Ut:Lt)[o];if(!(t>a-e.getDate()))return e.setDate(e.getDate()+t),e;t-=a-e.getDate()+1,e.setDate(1),o<11?e.setMonth(o+1):(e.setMonth(0),e.setFullYear(e.getFullYear()+1))}return e}(new Date(r.tm_year+1900,0,1),r.tm_yday),e=new Date(t.getFullYear(),0,4),n=new Date(t.getFullYear()+1,0,4),o=p(e),a=p(n);return h(o,t)<=0?h(a,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var v={"%a":function(r){return c[r.tm_wday].substring(0,3)},"%A":function(r){return c[r.tm_wday]},"%b":function(r){return l[r.tm_mon].substring(0,3)},"%B":function(r){return l[r.tm_mon]},"%C":function(r){return d((r.tm_year+1900)/100|0,2)},"%d":function(r){return d(r.tm_mday,2)},"%e":function(r){return f(r.tm_mday,2," ")},"%g":function(r){return m(r).toString().substring(2)},"%G":function(r){return m(r)},"%H":function(r){return d(r.tm_hour,2)},"%I":function(r){var t=r.tm_hour;return 0==t?t=12:t>12&&(t-=12),d(t,2)},"%j":function(r){return d(r.tm_mday+function(r,t){for(var e=0,n=0;n<=t;e+=r[n++]);return e}(Rt(r.tm_year+1900)?Ut:Lt,r.tm_mon-1),3)},"%m":function(r){return d(r.tm_mon+1,2)},"%M":function(r){return d(r.tm_min,2)},"%n":function(){return"\n"},"%p":function(r){return r.tm_hour>=0&&r.tm_hour<12?"AM":"PM"},"%S":function(r){return d(r.tm_sec,2)},"%t":function(){return"\t"},"%u":function(r){return r.tm_wday||7},"%U":function(r){var t=r.tm_yday+7-r.tm_wday;return d(Math.floor(t/7),2)},"%V":function(r){var t=Math.floor((r.tm_yday+7-(r.tm_wday+6)%7)/7);if((r.tm_wday+371-r.tm_yday-2)%7<=2&&t++,t){if(53==t){var e=(r.tm_wday+371-r.tm_yday)%7;4==e||3==e&&Rt(r.tm_year)||(t=1)}}else{t=52;var n=(r.tm_wday+7-r.tm_yday-1)%7;(4==n||5==n&&Rt(r.tm_year%400-1))&&t++}return d(t,2)},"%w":function(r){return r.tm_wday},"%W":function(r){var t=r.tm_yday+7-(r.tm_wday+6)%7;return d(Math.floor(t/7),2)},"%y":function(r){return(r.tm_year+1900).toString().substring(2)},"%Y":function(r){return r.tm_year+1900},"%z":function(r){var t=r.tm_gmtoff,e=t>=0;return t=(t=Math.abs(t)/60)/60*100+t%60,(e?"+":"-")+String("0000"+t).slice(-4)},"%Z":function(r){return r.tm_zone},"%%":function(){return"%"}};for(var u in i=i.replace(/%%/g,"\0\0"),v)i.includes(u)&&(i=i.replace(new RegExp(u,"g"),v[u](a)));var y,w,b=sr(i=i.replace(/\0\0/g,"%"),!1);return b.length>t?0:(y=b,w=r,g.set(y,w),b.length-1)}var It=function(r,t,e,n){r||(r=this),this.parent=r,this.mount=r.mount,this.mounted=null,this.id=mr.nextInode++,this.name=t,this.mode=e,this.node_ops={},this.stream_ops={},this.rdev=n};Object.defineProperties(It.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(r){r?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(r){r?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return mr.isDir(this.mode)}},isDevice:{get:function(){return mr.isChrdev(this.mode)}}}),mr.FSNode=It,mr.createPreloadedFile=function(r,t,e,n,o,a,s,u,c,l){var f=t?or.resolve(er.join2(r,t)):r;function d(e){function i(e){l&&l(),u||mr.createDataFile(r,t,e,n,o,c),a&&a(),z()}(function(r,t,e,n){"undefined"!=typeof Browser&&Browser.init();var o=!1;return hr.forEach((function(a){o||a.canHandle(t)&&(a.handle(r,t,e,n),o=!0)})),o})(e,f,i,(()=>{s&&s(),z()}))||i(e)}x(),"string"==typeof e?function(r,t,e,n){var o=`al ${r}`;i(r,(t=>{F(t,`Loading data file "${r}" failed (no arrayBuffer).`),d(new Uint8Array(t)),o&&z()}),(t=>{if(!e)throw`Loading data file "${r}" failed.`;e()})),o&&x()}(e,0,s):d(e)},mr.staticInit(),function(){for(var r=new Array(256),t=0;t<256;++t)r[t]=String.fromCharCode(t);gr=r}(),Fr=o.BindingError=Dr(Error,"BindingError"),Ar=o.InternalError=Dr(Error,"InternalError"),Yr.prototype.isAliasOf=function(r){if(!(this instanceof Yr))return!1;if(!(r instanceof Yr))return!1;for(var t=this.$$.ptrType.registeredClass,e=this.$$.ptr,n=r.$$.ptrType.registeredClass,o=r.$$.ptr;t.baseClass;)e=t.upcast(e),t=t.baseClass;for(;n.baseClass;)o=n.upcast(o),n=n.baseClass;return t===n&&e===o},Yr.prototype.clone=function(){if(this.$$.ptr||Rr(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var r,t=qr(Object.create(Object.getPrototypeOf(this),{$$:{value:(r=this.$$,{count:r.count,deleteScheduled:r.deleteScheduled,preservePointerOnDelete:r.preservePointerOnDelete,ptr:r.ptr,ptrType:r.ptrType,smartPtr:r.smartPtr,smartPtrType:r.smartPtrType})}}));return t.$$.count.value+=1,t.$$.deleteScheduled=!1,t},Yr.prototype.delete=function(){this.$$.ptr||Rr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Sr("Object already scheduled for deletion"),zr(this),Hr(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},Yr.prototype.isDeleted=function(){return!this.$$.ptr},Yr.prototype.deleteLater=function(){return this.$$.ptr||Rr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Sr("Object already scheduled for deletion"),Ur.push(this),1===Ur.length&&Br&&Br(Lr),this.$$.deleteScheduled=!0,this},o.getInheritedInstanceCount=function(){return Object.keys(Ir).length},o.getLiveInheritedInstances=function(){var r=[];for(var t in Ir)Ir.hasOwnProperty(t)&&r.push(Ir[t]);return r},o.flushPendingDeletes=Lr,o.setDelayFunction=function(r){Br=r,Ur.length&&Br&&Br(Lr)},et.prototype.getPointee=function(r){return this.rawGetPointee&&(r=this.rawGetPointee(r)),r},et.prototype.destructor=function(r){this.rawDestructor&&this.rawDestructor(r)},et.prototype.argPackAdvance=8,et.prototype.readValueFromPointer=tt,et.prototype.deleteObject=function(r){null!==r&&r.delete()},et.prototype.fromWireType=function(r){var t=this.getPointee(r);if(!t)return this.destructor(r),null;var e=function(r,t){return t=function(r,t){for(void 0===t&&Sr("ptr should not be undefined");r.baseClass;)t=r.upcast(t),r=r.baseClass;return t}(r,t),Ir[t]}(this.registeredClass,t);if(void 0!==e){if(0===e.$$.count.value)return e.$$.ptr=t,e.$$.smartPtr=r,e.clone();var n=e.clone();return this.destructor(r),n}function o(){return this.isSmartPointer?Vr(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:r}):Vr(this.registeredClass.instancePrototype,{ptrType:this,ptr:r})}var a,i=this.registeredClass.getActualType(t),s=Nr[i];if(!s)return o.call(this);a=this.isConst?s.constPointerType:s.pointerType;var u=Wr(t,this.registeredClass,a.registeredClass);return null===u?o.call(this):this.isSmartPointer?Vr(a.registeredClass.instancePrototype,{ptrType:a,ptr:u,smartPtrType:this,smartPtr:r}):Vr(a.registeredClass.instancePrototype,{ptrType:a,ptr:u})},st=o.UnboundTypeError=Dr(Error,"UnboundTypeError"),pt.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),pt.reserved=pt.allocated.length,o.count_emval_handles=function(){for(var r=0,t=pt.reserved;t>1]=2,0;case 16:case 8:default:return-28;case 9:return 28,k[Gt()>>2]=28,-1}}catch(r){if(void 0===mr||"ErrnoError"!==r.name)throw r;return-r.errno}},Gb:function(r,t,e){yr.varargs=e;try{var n=yr.getStreamFromFD(r);switch(t){case 21509:case 21505:case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:case 21523:case 21524:return n.tty?0:-59;case 21519:if(!n.tty)return-59;var o=yr.get();return k[o>>2]=0,0;case 21520:return n.tty?-28:-59;case 21531:return o=yr.get(),mr.ioctl(n,t,o);default:return-28}}catch(r){if(void 0===mr||"ErrnoError"!==r.name)throw r;return-r.errno}},Ib:function(r,t,e,n){yr.varargs=n;try{t=yr.getStr(t),t=yr.calculateAt(r,t);var o=n?yr.get():0;return mr.open(t,e,o).fd}catch(r){if(void 0===mr||"ErrnoError"!==r.name)throw r;return-r.errno}},nb:function(r,t,e,n,o){},Lb:function(r,t,e,n,o){var a=wr(e);Or(r,{name:t=br(t),fromWireType:function(r){return!!r},toWireType:function(r,t){return t?n:o},argPackAdvance:8,readValueFromPointer:function(r){var n;if(1===e)n=g;else if(2===e)n=E;else{if(4!==e)throw new TypeError("Unknown boolean type size: "+t);n=k}return this.fromWireType(n[r>>a])},destructorFunction:null})},fa:function(r,t,e,n,o,a,i,s,u,c,l,f,d){l=br(l),a=it(o,a),s&&(s=it(i,s)),c&&(c=it(u,c)),d=it(f,d);var h=Cr(l);Gr(h,(function(){ct(`Cannot construct ${l} due to unbound types`,[n])})),Mr([r,t,e],n?[n]:[],(function(t){var e,o;t=t[0],o=n?(e=t.registeredClass).instancePrototype:Yr.prototype;var i=Tr(h,(function(){if(Object.getPrototypeOf(this)!==u)throw new Fr("Use 'new' to construct "+l);if(void 0===f.constructor_body)throw new Fr(l+" has no accessible constructor");var r=f.constructor_body[arguments.length];if(void 0===r)throw new Fr(`Tried to invoke ctor of ${l} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(f.constructor_body).toString()}) parameters instead!`);return r.apply(this,arguments)})),u=Object.create(o,{constructor:{value:i}});i.prototype=u;var f=new Kr(l,i,u,d,e,a,s,c);f.baseClass&&(void 0===f.baseClass.__derivedClasses&&(f.baseClass.__derivedClasses=[]),f.baseClass.__derivedClasses.push(f));var p=new et(l,f,!0,!1,!1),m=new et(l+"*",f,!1,!1,!1),v=new et(l+" const*",f,!1,!0,!1);return Nr[r]={pointerType:m,constPointerType:v},nt(h,i),[p,m,v]}))},ta:function(r,t,e,n,o,a){F(t>0);var i=lt(t,e);o=it(n,o),Mr([],[r],(function(r){var e=`constructor ${(r=r[0]).name}`;if(void 0===r.registeredClass.constructor_body&&(r.registeredClass.constructor_body=[]),void 0!==r.registeredClass.constructor_body[t-1])throw new Fr(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${r.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return r.registeredClass.constructor_body[t-1]=()=>{ct(`Cannot construct ${r.name} due to unbound types`,i)},Mr([],i,(function(n){return n.splice(1,0,null),r.registeredClass.constructor_body[t-1]=ht(e,n,null,o,a),[]})),[]}))},u:function(r,t,e,n,o,a,i,s,u){var c=lt(e,n);t=br(t),a=it(o,a),Mr([],[r],(function(r){var n=`${(r=r[0]).name}.${t}`;function o(){ct(`Cannot call ${n} due to unbound types`,c)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),s&&r.registeredClass.pureVirtualFunctions.push(t);var l=r.registeredClass.instancePrototype,f=l[t];return void 0===f||void 0===f.overloadTable&&f.className!==r.name&&f.argCount===e-2?(o.argCount=e-2,o.className=r.name,l[t]=o):(Xr(l,t,n),l[t].overloadTable[e-2]=o),Mr([],c,(function(o){var s=ht(n,o,r,a,i,u);return void 0===l[t].overloadTable?(s.argCount=e-2,l[t]=s):l[t].overloadTable[e-2]=s,[]})),[]}))},Kb:function(r,t){Or(r,{name:t=br(t),fromWireType:function(r){var t=vt.toValue(r);return mt(r),t},toWireType:function(r,t){return vt.toHandle(t)},argPackAdvance:8,readValueFromPointer:tt,destructorFunction:null})},Qa:function(r,t,e){var n=wr(e);Or(r,{name:t=br(t),fromWireType:function(r){return r},toWireType:function(r,t){return t},argPackAdvance:8,readValueFromPointer:wt(t,n),destructorFunction:null})},L:function(r,t,e,n,o,a,i){var s=lt(t,e);r=br(r),o=it(n,o),Gr(r,(function(){ct(`Cannot call ${r} due to unbound types`,s)}),t-1),Mr([],s,(function(e){var n=[e[0],null].concat(e.slice(1));return nt(r,ht(r,n,null,o,a,i),t-1),[]}))},Q:function(r,t,e,n,o){t=br(t),-1===o&&(o=4294967295);var a=wr(e),i=r=>r;if(0===n){var s=32-8*e;i=r=>r<>>s}var u=t.includes("unsigned");Or(r,{name:t,fromWireType:i,toWireType:u?function(r,t){return this.name,t>>>0}:function(r,t){return this.name,t},argPackAdvance:8,readValueFromPointer:gt(t,a,0!==n),destructorFunction:null})},I:function(r,t,e){var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function o(r){var t=$,e=t[r>>=2],o=t[r+1];return new n(t.buffer,o,e)}Or(r,{name:e=br(e),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},Pa:function(r,t){var e="std::string"===(t=br(t));Or(r,{name:t,fromWireType:function(r){var t,n=$[r>>2],o=r+4;if(e)for(var a=o,i=0;i<=n;++i){var s=o+i;if(i==n||0==b[s]){var u=vr(a,s-a);void 0===t?t=u:(t+=String.fromCharCode(0),t+=u),a=s+1}}else{var c=new Array(n);for(i=0;i>2]=n,e&&o)bt(t,i,n+1);else if(o)for(var s=0;s255&&(Xt(i),Sr("String has UTF-16 code units that do not fit in 8 bits")),b[i+s]=u}else for(s=0;s_,s=1):4===t&&(n=Pt,o=Ct,i=Tt,a=()=>$,s=2),Or(r,{name:e,fromWireType:function(r){for(var e,o=$[r>>2],i=a(),u=r+4,c=0;c<=o;++c){var l=r+4+c*t;if(c==o||0==i[l>>s]){var f=n(u,l-u);void 0===e?e=f:(e+=String.fromCharCode(0),e+=f),u=l+t}}return Xt(r),e},toWireType:function(r,n){"string"!=typeof n&&Sr(`Cannot pass non-string to C++ string type ${e}`);var a=i(n),u=Yt(4+a+t);return $[u>>2]=a>>s,o(n,u+4,a+t),null!==r&&r.push(Xt,u),u},argPackAdvance:8,readValueFromPointer:tt,destructorFunction:function(r){Xt(r)}})},Mb:function(r,t){Or(r,{isVoid:!0,name:t=br(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(r,t){}})},yb:function(){throw 1/0},Ja:function(r,t,e){r=vt.toValue(r),t=Dt(t,"emval::as");var n=[],o=vt.toHandle(n);return $[e>>2]=o,t.toWireType(n,r)},gb:function(r,t,e,n,o){return(r=At[r])(t=vt.toValue(t),e=St(e),function(r){var t=[];return $[r>>2]=vt.toHandle(t),t}(n),o)},ea:function(r,t,e,n){(r=At[r])(t=vt.toValue(t),e=St(e),null,n)},Hb:mt,ib:function(r){return 0===r?vt.toHandle(jt()):(r=St(r),vt.toHandle(jt()[r]))},Y:function(r,t){var e=function(r,t){for(var e=new Array(r),n=0;n>2],"parameter "+n);return e}(r,t),n=e[0],o=n.name+"_$"+e.slice(1).map((function(r){return r.name})).join("_")+"$",a=Mt[o];if(void 0!==a)return a;for(var i=["retType"],s=[n],u="",c=0;c4&&(pt.get(r).refcount+=1)},hb:function(r,t,e,n){r=vt.toValue(r);var a=Ot[t];return a||(a=function(r){for(var t="",e=0;e>2)], 'parameter "+e+"');\nvar arg"+e+" = argType"+e+".readValueFromPointer(args);\nargs += argType"+e+"['argPackAdvance'];\nargTypes += 4;\n";return n+="var obj = new constructor("+t+");\nreturn valueToHandle(obj);\n}\n",new Function("requireRegisteredType","Module","valueToHandle","getMemory",n)(Dt,o,vt.toHandle,(()=>$))}(t),Ot[t]=a),a(r,e,n)},ha:function(r){return vt.toHandle(St(r))},jb:function(){return vt.toHandle({})},kb:function(r){ft(vt.toValue(r)),mt(r)},fb:function(r,t,e){r=vt.toValue(r),t=vt.toValue(t),e=vt.toValue(e),r[t]=e},pa:function(r,t){var e=(r=Dt(r,"_emval_take_value")).readValueFromPointer(t);return vt.toHandle(e)},Ha:function(r){return r=vt.toValue(r),vt.toHandle(typeof r)},Bb:function(r,t){var e,n=new Date(1e3*($[(e=r)>>2]+4294967296*k[e+4>>2]));k[t>>2]=n.getSeconds(),k[t+4>>2]=n.getMinutes(),k[t+8>>2]=n.getHours(),k[t+12>>2]=n.getDate(),k[t+16>>2]=n.getMonth(),k[t+20>>2]=n.getFullYear()-1900,k[t+24>>2]=n.getDay();var o=0|function(r){return(Rt(r.getFullYear())?xt:zt)[r.getMonth()]+r.getDate()-1}(n);k[t+28>>2]=o,k[t+36>>2]=-60*n.getTimezoneOffset();var a=new Date(n.getFullYear(),0,1),i=new Date(n.getFullYear(),6,1).getTimezoneOffset(),s=a.getTimezoneOffset(),u=0|(i!=s&&n.getTimezoneOffset()==Math.min(s,i));k[t+32>>2]=u},Ab:function(r,t,e){var n=(new Date).getFullYear(),o=new Date(n,0,1),a=new Date(n,6,1),i=o.getTimezoneOffset(),s=a.getTimezoneOffset(),u=Math.max(i,s);function c(r){var t=r.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}$[r>>2]=60*u,k[t>>2]=Number(i!=s);var l=c(o),f=c(a),d=Ht(l),h=Ht(f);s>2]=d,$[e+4>>2]=h):($[e>>2]=h,$[e+4>>2]=d)},ka:function(){H("")},ua:function(){return Date.now()},Jb:function(r,t,e){b.copyWithin(r,t,t+e)},zb:function(r){b.length,H("OOM")},Db:function(r,t){var e=0;return Nt().forEach((function(n,o){var a=t+e;$[r+4*o>>2]=a,function(r,t){for(var e=0;e>0]=r.charCodeAt(e);g[t>>0]=0}(n,a),e+=n.length+1})),0},Eb:function(r,t){var e=Nt();$[r>>2]=e.length;var n=0;return e.forEach((function(r){n+=r.length+1})),$[t>>2]=n,0},Ma:function(r){try{var t=yr.getStreamFromFD(r);return mr.close(t),0}catch(r){if(void 0===mr||"ErrnoError"!==r.name)throw r;return r.errno}},Cb:function(r,t){try{var e=yr.getStreamFromFD(r),n=e.tty?2:mr.isDir(e.mode)?3:mr.isLink(e.mode)?7:4;return g[t>>0]=n,E[t+2>>1]=0,L=[0,(U=0,+Math.abs(U)>=1?U>0?+Math.floor(U/4294967296)>>>0:~~+Math.ceil((U-+(~~U>>>0))/4294967296)>>>0:0)],k[t+8>>2]=L[0],k[t+12>>2]=L[1],L=[0,(U=0,+Math.abs(U)>=1?U>0?+Math.floor(U/4294967296)>>>0:~~+Math.ceil((U-+(~~U>>>0))/4294967296)>>>0:0)],k[t+16>>2]=L[0],k[t+20>>2]=L[1],0}catch(r){if(void 0===mr||"ErrnoError"!==r.name)throw r;return r.errno}},Fb:function(r,t,e,n){try{var o=function(r,t,e,n){for(var o=0,a=0;a>2],s=$[t+4>>2];t+=8;var u=mr.read(r,g,i,s,n);if(u<0)return-1;if(o+=u,u>2]=o,0}catch(r){if(void 0===mr||"ErrnoError"!==r.name)throw r;return r.errno}},mb:function(r,t,e,n,o){try{var a=(u=e)+2097152>>>0<4194305-!!(s=t)?(s>>>0)+4294967296*u:NaN;if(isNaN(a))return 61;var i=yr.getStreamFromFD(r);return mr.llseek(i,a,n),L=[i.position>>>0,(U=i.position,+Math.abs(U)>=1?U>0?+Math.floor(U/4294967296)>>>0:~~+Math.ceil((U-+(~~U>>>0))/4294967296)>>>0:0)],k[o>>2]=L[0],k[o+4>>2]=L[1],i.getdents&&0===a&&0===n&&(i.getdents=null),0}catch(r){if(void 0===mr||"ErrnoError"!==r.name)throw r;return r.errno}var s,u},Na:function(r,t,e,n){try{var o=function(r,t,e,n){for(var o=0,a=0;a>2],s=$[t+4>>2];t+=8;var u=mr.write(r,g,i,s,n);if(u<0)return-1;o+=u,void 0!==n&&(n+=u)}return o}(yr.getStreamFromFD(r),t,e);return $[n>>2]=o,0}catch(r){if(void 0===mr||"ErrnoError"!==r.name)throw r;return r.errno}},w:function(r,t){var e=Qt();try{return at(r)(t)}catch(r){if(re(e),r!==r+0)throw r;Zt(1,0)}},C:function(r,t,e){var n=Qt();try{return at(r)(t,e)}catch(r){if(re(n),r!==r+0)throw r;Zt(1,0)}},ya:function(r,t,e,n){var o=Qt();try{return at(r)(t,e,n)}catch(r){if(re(o),r!==r+0)throw r;Zt(1,0)}},z:function(r,t,e,n){var o=Qt();try{return at(r)(t,e,n)}catch(r){if(re(o),r!==r+0)throw r;Zt(1,0)}},Va:function(r,t,e,n,o){var a=Qt();try{return at(r)(t,e,n,o)}catch(r){if(re(a),r!==r+0)throw r;Zt(1,0)}},xa:function(r,t,e,n,o,a){var i=Qt();try{return at(r)(t,e,n,o,a)}catch(r){if(re(i),r!==r+0)throw r;Zt(1,0)}},Vb:function(r,t,e,n,o,a,i){var s=Qt();try{return at(r)(t,e,n,o,a,i)}catch(r){if(re(s),r!==r+0)throw r;Zt(1,0)}},Ua:function(r,t,e,n,o,a,i,s,u){var c=Qt();try{return at(r)(t,e,n,o,a,i,s,u)}catch(r){if(re(c),r!==r+0)throw r;Zt(1,0)}},db:function(r,t,e,n,o,a,i,s,u,c){var l=Qt();try{return at(r)(t,e,n,o,a,i,s,u,c)}catch(r){if(re(l),r!==r+0)throw r;Zt(1,0)}},Ub:function(r,t,e,n,o,a,i,s,u,c,l){var f=Qt();try{return at(r)(t,e,n,o,a,i,s,u,c,l)}catch(r){if(re(f),r!==r+0)throw r;Zt(1,0)}},eb:function(r,t,e,n,o,a,i,s,u,c,l,f,d){var h=Qt();try{return at(r)(t,e,n,o,a,i,s,u,c,l,f,d)}catch(r){if(re(h),r!==r+0)throw r;Zt(1,0)}},la:function(r,t){var e=Qt();try{return at(r)(t)}catch(r){if(re(e),r!==r+0)throw r;Zt(1,0)}},Ra:function(r,t,e){var n=Qt();try{return at(r)(t,e)}catch(r){if(re(n),r!==r+0)throw r;Zt(1,0)}},ja:function(r,t,e){var n=Qt();try{return at(r)(t,e)}catch(r){if(re(n),r!==r+0)throw r;Zt(1,0)}},Ka:function(r,t,e,n){var o=Qt();try{return at(r)(t,e,n)}catch(r){if(re(o),r!==r+0)throw r;Zt(1,0)}},Tb:function(r,t,e,n,o){var a=Qt();try{return at(r)(t,e,n,o)}catch(r){if(re(a),r!==r+0)throw r;Zt(1,0)}},Ob:function(r,t,e,n,o,a,i){var s=Qt();try{return at(r)(t,e,n,o,a,i)}catch(r){if(re(s),r!==r+0)throw r;Zt(1,0)}},t:function(r){var t=Qt();try{return at(r)()}catch(r){if(re(t),r!==r+0)throw r;Zt(1,0)}},b:function(r,t){var e=Qt();try{return at(r)(t)}catch(r){if(re(e),r!==r+0)throw r;Zt(1,0)}},J:function(r,t,e){var n=Qt();try{return at(r)(t,e)}catch(r){if(re(n),r!==r+0)throw r;Zt(1,0)}},za:function(r,t,e,n,o){var a=Qt();try{return at(r)(t,e,n,o)}catch(r){if(re(a),r!==r+0)throw r;Zt(1,0)}},oa:function(r,t,e,n,o,a){var i=Qt();try{return at(r)(t,e,n,o,a)}catch(r){if(re(i),r!==r+0)throw r;Zt(1,0)}},$a:function(r,t,e,n,o,a,i){var s=Qt();try{return at(r)(t,e,n,o,a,i)}catch(r){if(re(s),r!==r+0)throw r;Zt(1,0)}},ba:function(r,t,e,n){var o=Qt();try{return at(r)(t,e,n)}catch(r){if(re(o),r!==r+0)throw r;Zt(1,0)}},da:function(r,t,e){var n=Qt();try{return at(r)(t,e)}catch(r){if(re(n),r!==r+0)throw r;Zt(1,0)}},c:function(r,t,e){var n=Qt();try{return at(r)(t,e)}catch(r){if(re(n),r!==r+0)throw r;Zt(1,0)}},W:function(r,t,e,n){var o=Qt();try{return at(r)(t,e,n)}catch(r){if(re(o),r!==r+0)throw r;Zt(1,0)}},Da:function(r,t,e,n,o,a,i,s,u,c,l){var f=Qt();try{return at(r)(t,e,n,o,a,i,s,u,c,l)}catch(r){if(re(f),r!==r+0)throw r;Zt(1,0)}},$:function(r,t,e,n,o,a,i,s){var u=Qt();try{return at(r)(t,e,n,o,a,i,s)}catch(r){if(re(u),r!==r+0)throw r;Zt(1,0)}},ia:function(r,t,e,n,o,a,i,s,u,c){var l=Qt();try{return at(r)(t,e,n,o,a,i,s,u,c)}catch(r){if(re(l),r!==r+0)throw r;Zt(1,0)}},Ya:function(r,t,e,n,o,a,i,s,u,c,l,f){var d=Qt();try{return at(r)(t,e,n,o,a,i,s,u,c,l,f)}catch(r){if(re(d),r!==r+0)throw r;Zt(1,0)}},U:function(r,t,e,n,o,a,i,s,u,c,l){var f=Qt();try{return at(r)(t,e,n,o,a,i,s,u,c,l)}catch(r){if(re(f),r!==r+0)throw r;Zt(1,0)}},d:function(r,t,e,n){var o=Qt();try{return at(r)(t,e,n)}catch(r){if(re(o),r!==r+0)throw r;Zt(1,0)}},Ba:function(r,t,e,n,o){var a=Qt();try{return at(r)(t,e,n,o)}catch(r){if(re(a),r!==r+0)throw r;Zt(1,0)}},k:function(r,t,e,n,o){var a=Qt();try{return at(r)(t,e,n,o)}catch(r){if(re(a),r!==r+0)throw r;Zt(1,0)}},La:function(r,t,e,n,o,a){var i=Qt();try{return at(r)(t,e,n,o,a)}catch(r){if(re(i),r!==r+0)throw r;Zt(1,0)}},O:function(r,t,e,n,o,a,i,s,u){var c=Qt();try{return at(r)(t,e,n,o,a,i,s,u)}catch(r){if(re(c),r!==r+0)throw r;Zt(1,0)}},n:function(r,t,e,n,o,a){var i=Qt();try{return at(r)(t,e,n,o,a)}catch(r){if(re(i),r!==r+0)throw r;Zt(1,0)}},Za:function(r,t,e,n,o,a,i,s,u,c){var l=Qt();try{return at(r)(t,e,n,o,a,i,s,u,c)}catch(r){if(re(l),r!==r+0)throw r;Zt(1,0)}},l:function(r,t,e,n,o,a,i){var s=Qt();try{return at(r)(t,e,n,o,a,i)}catch(r){if(re(s),r!==r+0)throw r;Zt(1,0)}},_a:function(r,t,e,n,o,a,i,s,u,c,l){var f=Qt();try{return at(r)(t,e,n,o,a,i,s,u,c,l)}catch(r){if(re(f),r!==r+0)throw r;Zt(1,0)}},B:function(r,t,e,n,o,a,i,s){var u=Qt();try{return at(r)(t,e,n,o,a,i,s)}catch(r){if(re(u),r!==r+0)throw r;Zt(1,0)}},M:function(r,t,e,n,o,a,i,s,u){var c=Qt();try{return at(r)(t,e,n,o,a,i,s,u)}catch(r){if(re(c),r!==r+0)throw r;Zt(1,0)}},D:function(r,t,e,n,o,a,i,s,u,c){var l=Qt();try{return at(r)(t,e,n,o,a,i,s,u,c)}catch(r){if(re(l),r!==r+0)throw r;Zt(1,0)}},V:function(r,t,e,n,o,a,i,s,u,c,l){var f=Qt();try{return at(r)(t,e,n,o,a,i,s,u,c,l)}catch(r){if(re(f),r!==r+0)throw r;Zt(1,0)}},Z:function(r,t,e,n,o,a,i,s,u,c,l,f){var d=Qt();try{return at(r)(t,e,n,o,a,i,s,u,c,l,f)}catch(r){if(re(d),r!==r+0)throw r;Zt(1,0)}},cb:function(r,t,e,n,o,a,i,s,u,c,l,f,d){var h=Qt();try{return at(r)(t,e,n,o,a,i,s,u,c,l,f,d)}catch(r){if(re(h),r!==r+0)throw r;Zt(1,0)}},Fa:function(r,t,e,n,o,a,i,s,u,c,l,f,d,h,p,m,v){var y=Qt();try{return at(r)(t,e,n,o,a,i,s,u,c,l,f,d,h,p,m,v)}catch(r){if(re(y),r!==r+0)throw r;Zt(1,0)}},qb:function(r,t,e,n,o,a,i,s,u){var c=Qt();try{return le(r,t,e,n,o,a,i,s,u)}catch(r){if(re(c),r!==r+0)throw r;Zt(1,0)}},rb:function(r,t,e,n,o,a){var i=Qt();try{return ce(r,t,e,n,o,a)}catch(r){if(re(i),r!==r+0)throw r;Zt(1,0)}},ub:function(r,t,e,n,o){var a=Qt();try{return se(r,t,e,n,o)}catch(r){if(re(a),r!==r+0)throw r;Zt(1,0)}},pb:function(r,t){var e=Qt();try{return de(r,t)}catch(r){if(re(e),r!==r+0)throw r;Zt(1,0)}},tb:function(r,t,e){var n=Qt();try{return fe(r,t,e)}catch(r){if(re(n),r!==r+0)throw r;Zt(1,0)}},lb:function(r,t,e,n,o){var a=Qt();try{return pe(r,t,e,n,o)}catch(r){if(re(a),r!==r+0)throw r;Zt(1,0)}},ob:function(r,t,e,n,o,a,i,s,u){var c=Qt();try{return he(r,t,e,n,o,a,i,s,u)}catch(r){if(re(c),r!==r+0)throw r;Zt(1,0)}},j:function(r){var t=Qt();try{at(r)()}catch(r){if(re(t),r!==r+0)throw r;Zt(1,0)}},h:function(r,t){var e=Qt();try{at(r)(t)}catch(r){if(re(e),r!==r+0)throw r;Zt(1,0)}},x:function(r,t,e){var n=Qt();try{at(r)(t,e)}catch(r){if(re(n),r!==r+0)throw r;Zt(1,0)}},Ea:function(r,t,e,n){var o=Qt();try{at(r)(t,e,n)}catch(r){if(re(o),r!==r+0)throw r;Zt(1,0)}},ca:function(r,t,e,n,o){var a=Qt();try{at(r)(t,e,n,o)}catch(r){if(re(a),r!==r+0)throw r;Zt(1,0)}},ga:function(r,t,e,n){var o=Qt();try{at(r)(t,e,n)}catch(r){if(re(o),r!==r+0)throw r;Zt(1,0)}},Ca:function(r,t,e,n,o){var a=Qt();try{at(r)(t,e,n,o)}catch(r){if(re(a),r!==r+0)throw r;Zt(1,0)}},na:function(r,t,e,n,o,a,i,s){var u=Qt();try{at(r)(t,e,n,o,a,i,s)}catch(r){if(re(u),r!==r+0)throw r;Zt(1,0)}},wa:function(r,t,e){var n=Qt();try{at(r)(t,e)}catch(r){if(re(n),r!==r+0)throw r;Zt(1,0)}},Qb:function(r,t,e,n,o,a,i,s){var u=Qt();try{at(r)(t,e,n,o,a,i,s)}catch(r){if(re(u),r!==r+0)throw r;Zt(1,0)}},N:function(r,t,e,n,o){var a=Qt();try{at(r)(t,e,n,o)}catch(r){if(re(a),r!==r+0)throw r;Zt(1,0)}},Pb:function(r,t,e,n,o){var a=Qt();try{at(r)(t,e,n,o)}catch(r){if(re(a),r!==r+0)throw r;Zt(1,0)}},g:function(r,t,e){var n=Qt();try{at(r)(t,e)}catch(r){if(re(n),r!==r+0)throw r;Zt(1,0)}},r:function(r,t,e,n){var o=Qt();try{at(r)(t,e,n)}catch(r){if(re(o),r!==r+0)throw r;Zt(1,0)}},T:function(r,t,e,n,o){var a=Qt();try{at(r)(t,e,n,o)}catch(r){if(re(a),r!==r+0)throw r;Zt(1,0)}},aa:function(r,t,e,n,o,a){var i=Qt();try{at(r)(t,e,n,o,a)}catch(r){if(re(i),r!==r+0)throw r;Zt(1,0)}},Ta:function(r,t,e,n){var o=Qt();try{at(r)(t,e,n)}catch(r){if(re(o),r!==r+0)throw r;Zt(1,0)}},Nb:function(r,t,e,n,o,a){var i=Qt();try{at(r)(t,e,n,o,a)}catch(r){if(re(i),r!==r+0)throw r;Zt(1,0)}},e:function(r,t,e,n){var o=Qt();try{at(r)(t,e,n)}catch(r){if(re(o),r!==r+0)throw r;Zt(1,0)}},G:function(r,t,e,n,o){var a=Qt();try{at(r)(t,e,n,o)}catch(r){if(re(a),r!==r+0)throw r;Zt(1,0)}},Aa:function(r,t,e,n,o,a,i){var s=Qt();try{at(r)(t,e,n,o,a,i)}catch(r){if(re(s),r!==r+0)throw r;Zt(1,0)}},X:function(r,t,e,n,o,a,i,s,u,c){var l=Qt();try{at(r)(t,e,n,o,a,i,s,u,c)}catch(r){if(re(l),r!==r+0)throw r;Zt(1,0)}},ab:function(r,t,e,n,o,a){var i=Qt();try{at(r)(t,e,n,o,a)}catch(r){if(re(i),r!==r+0)throw r;Zt(1,0)}},m:function(r,t,e,n,o){var a=Qt();try{at(r)(t,e,n,o)}catch(r){if(re(a),r!==r+0)throw r;Zt(1,0)}},Wa:function(r,t,e,n,o,a){var i=Qt();try{at(r)(t,e,n,o,a)}catch(r){if(re(i),r!==r+0)throw r;Zt(1,0)}},bb:function(r,t,e,n,o,a,i,s,u){var c=Qt();try{at(r)(t,e,n,o,a,i,s,u)}catch(r){if(re(c),r!==r+0)throw r;Zt(1,0)}},Sa:function(r,t,e,n,o,a,i,s,u,c,l){var f=Qt();try{at(r)(t,e,n,o,a,i,s,u,c,l)}catch(r){if(re(f),r!==r+0)throw r;Zt(1,0)}},Rb:function(r,t,e,n,o,a,i,s,u,c,l,f){var d=Qt();try{at(r)(t,e,n,o,a,i,s,u,c,l,f)}catch(r){if(re(d),r!==r+0)throw r;Zt(1,0)}},p:function(r,t,e,n,o,a){var i=Qt();try{at(r)(t,e,n,o,a)}catch(r){if(re(i),r!==r+0)throw r;Zt(1,0)}},R:function(r,t,e,n,o,a,i){var s=Qt();try{at(r)(t,e,n,o,a,i)}catch(r){if(re(s),r!==r+0)throw r;Zt(1,0)}},Xa:function(r,t,e,n,o,a,i,s){var u=Qt();try{at(r)(t,e,n,o,a,i,s)}catch(r){if(re(u),r!==r+0)throw r;Zt(1,0)}},_:function(r,t,e,n,o,a,i,s){var u=Qt();try{at(r)(t,e,n,o,a,i,s)}catch(r){if(re(u),r!==r+0)throw r;Zt(1,0)}},v:function(r,t,e,n,o,a,i){var s=Qt();try{at(r)(t,e,n,o,a,i)}catch(r){if(re(s),r!==r+0)throw r;Zt(1,0)}},A:function(r,t,e,n,o,a,i,s){var u=Qt();try{at(r)(t,e,n,o,a,i,s)}catch(r){if(re(u),r!==r+0)throw r;Zt(1,0)}},H:function(r,t,e,n,o,a,i,s,u){var c=Qt();try{at(r)(t,e,n,o,a,i,s,u)}catch(r){if(re(c),r!==r+0)throw r;Zt(1,0)}},F:function(r,t,e,n,o,a,i,s,u,c){var l=Qt();try{at(r)(t,e,n,o,a,i,s,u,c)}catch(r){if(re(l),r!==r+0)throw r;Zt(1,0)}},S:function(r,t,e,n,o,a,i,s,u,c,l){var f=Qt();try{at(r)(t,e,n,o,a,i,s,u,c,l)}catch(r){if(re(f),r!==r+0)throw r;Zt(1,0)}},ma:function(r,t,e,n,o,a,i,s,u,c,l,f){var d=Qt();try{at(r)(t,e,n,o,a,i,s,u,c,l,f)}catch(r){if(re(d),r!==r+0)throw r;Zt(1,0)}},qa:function(r,t,e,n,o,a,i,s,u,c,l,f,d){var h=Qt();try{at(r)(t,e,n,o,a,i,s,u,c,l,f,d)}catch(r){if(re(h),r!==r+0)throw r;Zt(1,0)}},sa:function(r,t,e,n,o,a,i,s,u,c,l,f,d,h,p){var m=Qt();try{at(r)(t,e,n,o,a,i,s,u,c,l,f,d,h,p)}catch(r){if(re(m),r!==r+0)throw r;Zt(1,0)}},P:function(r,t,e,n,o,a,i,s,u,c,l,f,d,h,p,m){var v=Qt();try{at(r)(t,e,n,o,a,i,s,u,c,l,f,d,h,p,m)}catch(r){if(re(v),r!==r+0)throw r;Zt(1,0)}},Ia:function(r,t,e,n,o,a,i,s,u,c,l,f,d,h,p,m,v,y){var w=Qt();try{at(r)(t,e,n,o,a,i,s,u,c,l,f,d,h,p,m,v,y)}catch(r){if(re(w),r!==r+0)throw r;Zt(1,0)}},vb:function(r,t,e,n,o,a,i){var s=Qt();try{ae(r,t,e,n,o,a,i)}catch(r){if(re(s),r!==r+0)throw r;Zt(1,0)}},wb:function(r,t,e,n){var o=Qt();try{ie(r,t,e,n)}catch(r){if(re(o),r!==r+0)throw r;Zt(1,0)}},sb:function(r,t,e,n,o){var a=Qt();try{ue(r,t,e,n,o)}catch(r){if(re(a),r!==r+0)throw r;Zt(1,0)}},s:function(r){return r},Wb:Bt,K:function(r,t,e,n,o){return Bt(r,t,e,n)}},Yt=(function(){var r,t,e,a,i={a:qt};function s(r,t){var e,n,a=r.exports;return o.asm=a,e=o.asm.Xb.buffer,o.HEAP8=g=new Int8Array(e),o.HEAP16=E=new Int16Array(e),o.HEAP32=k=new Int32Array(e),o.HEAPU8=b=new Uint8Array(e),o.HEAPU16=_=new Uint16Array(e),o.HEAPU32=$=new Uint32Array(e),o.HEAPF32=P=new Float32Array(e),o.HEAPF64=C=new Float64Array(e),T=o.asm._b,n=o.asm.Yb,A.unshift(n),z(),a}if(x(),o.instantiateWasm)try{return o.instantiateWasm(i,s)}catch(r){w("Module.instantiateWasm callback failed with error: "+r),n(r)}(r=v,t=W,e=i,a=function(r){s(r.instance)},r||"function"!=typeof WebAssembly.instantiateStreaming||B(t)||I(t)||d||"function"!=typeof fetch?q(t,e,a):fetch(t,{credentials:"same-origin"}).then((r=>WebAssembly.instantiateStreaming(r,e).then(a,(function(r){return w("wasm streaming compile failed: "+r),w("falling back to ArrayBuffer instantiation"),q(t,e,a)}))))).catch(n)}(),function(){return(Yt=o.asm.Zb).apply(null,arguments)}),Xt=function(){return(Xt=o.asm.$b).apply(null,arguments)},Gt=function(){return(Gt=o.asm.ac).apply(null,arguments)},Kt=function(){return(Kt=o.asm.bc).apply(null,arguments)},Jt=function(){return(Jt=o.asm.cc).apply(null,arguments)},Zt=(o.__embind_initialize_bindings=function(){return(o.__embind_initialize_bindings=o.asm.dc).apply(null,arguments)},function(){return(Zt=o.asm.ec).apply(null,arguments)}),Qt=function(){return(Qt=o.asm.fc).apply(null,arguments)},re=function(){return(re=o.asm.gc).apply(null,arguments)},te=function(){return(te=o.asm.hc).apply(null,arguments)},ee=function(){return(ee=o.asm.ic).apply(null,arguments)},ne=function(){return(ne=o.asm.jc).apply(null,arguments)},oe=function(){return(oe=o.asm.kc).apply(null,arguments)},ae=o.dynCall_viijii=function(){return(ae=o.dynCall_viijii=o.asm.lc).apply(null,arguments)},ie=o.dynCall_vij=function(){return(ie=o.dynCall_vij=o.asm.mc).apply(null,arguments)},se=o.dynCall_iiji=function(){return(se=o.dynCall_iiji=o.asm.nc).apply(null,arguments)},ue=o.dynCall_viji=function(){return(ue=o.dynCall_viji=o.asm.oc).apply(null,arguments)},ce=o.dynCall_iiiij=function(){return(ce=o.dynCall_iiiij=o.asm.pc).apply(null,arguments)},le=o.dynCall_iiiiiiij=function(){return(le=o.dynCall_iiiiiiij=o.asm.qc).apply(null,arguments)},fe=o.dynCall_jii=function(){return(fe=o.dynCall_jii=o.asm.rc).apply(null,arguments)},de=o.dynCall_ji=function(){return(de=o.dynCall_ji=o.asm.sc).apply(null,arguments)},he=o.dynCall_jiiiiiij=function(){return(he=o.dynCall_jiiiiiij=o.asm.tc).apply(null,arguments)},pe=(o.dynCall_jiji=function(){return(o.dynCall_jiji=o.asm.uc).apply(null,arguments)},o.dynCall_jiiii=function(){return(pe=o.dynCall_jiiii=o.asm.vc).apply(null,arguments)});function me(){function r(){Vt||(Vt=!0,o.calledRun=!0,D||(o.noFSInit||mr.init.initialized||mr.init(),mr.ignorePermissions=!1,lr.init(),Y(A),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)r=o.postRun.shift(),j.unshift(r);var r;Y(j)}()))}M>0||(function(){if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)r=o.preRun.shift(),S.unshift(r);var r;Y(S)}(),M>0||(o.setStatus?(o.setStatus("Running..."),setTimeout((function(){setTimeout((function(){o.setStatus("")}),1),r()}),1)):r()))}if(o.dynCall_iiiiij=function(){return(o.dynCall_iiiiij=o.asm.wc).apply(null,arguments)},o.dynCall_iiiiijj=function(){return(o.dynCall_iiiiijj=o.asm.xc).apply(null,arguments)},o.dynCall_iiiiiijj=function(){return(o.dynCall_iiiiiijj=o.asm.yc).apply(null,arguments)},R=function r(){Vt||me(),Vt||(R=r)},o.preInit)for("function"==typeof o.preInit&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return me(),t.ready}})();"object"==typeof exports&&"object"==typeof module?module.exports=initRDKitModule:"function"==typeof define&&define.amd?define([],(function(){return initRDKitModule})):"object"==typeof exports&&(exports.initRDKitModule=initRDKitModule); \ No newline at end of file diff --git a/webserver/public/baby-gru/wasm/RDKit_minimal.wasm b/webserver/public/baby-gru/wasm/RDKit_minimal.wasm deleted file mode 100644 index eb5f18240..000000000 Binary files a/webserver/public/baby-gru/wasm/RDKit_minimal.wasm and /dev/null differ diff --git a/webserver/public/baby-gru/wasm/moorhen.js b/webserver/public/baby-gru/wasm/moorhen.js deleted file mode 100644 index 618f8e425..000000000 --- a/webserver/public/baby-gru/wasm/moorhen.js +++ /dev/null @@ -1 +0,0 @@ -var createRSRModule=(()=>{var e="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0;return"undefined"!=typeof __filename&&(e=e||__filename),function(t){function r(){return j.buffer!=H&&oe(j.buffer),G}function n(){return j.buffer!=H&&oe(j.buffer),V}function i(){return j.buffer!=H&&oe(j.buffer),q}function o(){return j.buffer!=H&&oe(j.buffer),Y}function a(){return j.buffer!=H&&oe(j.buffer),K}function s(){return j.buffer!=H&&oe(j.buffer),X}function c(){return j.buffer!=H&&oe(j.buffer),Z}var u,d,l=void 0!==(t=t||{})?t:{};l.ready=new Promise((function(e,t){u=e,d=t})),["_main","__emscripten_thread_init","__emscripten_thread_exit","__emscripten_thread_crashed","__emscripten_tls_init","_pthread_self","executeNotifiedProxyingQueue","establishStackSpace","invokeEntryPoint","PThread","_fflush","__ZN5boost13serialization16singleton_module8get_lockEv","___getTypeName","__embind_initialize_bindings","__emscripten_proxy_execute_task_queue","___set_stack_limits","onRuntimeInitialized"].forEach((e=>{Object.getOwnPropertyDescriptor(l.ready,e)||Object.defineProperty(l.ready,e,{get:()=>Se("You are getting "+e+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js"),set:()=>Se("You are setting "+e+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")})})),l.expectedDataFileDownloads||(l.expectedDataFileDownloads=0),l.expectedDataFileDownloads++,l.ENVIRONMENT_IS_PTHREAD||function(e){"object"==typeof window?window.encodeURIComponent(window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/"):"undefined"==typeof process&&"undefined"!=typeof location&&encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/");var t="moorhen.data";"function"!=typeof l.locateFilePackage||l.locateFile||(l.locateFile=l.locateFilePackage,I("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)"));var r=l.locateFile?l.locateFile(t,""):t,n=e.remote_package_size,i=null,o=l.getPreloadedPackage?l.getPreloadedPackage(r,n):null;function a(){function t(e,t){if(!e)throw t+(new Error).stack}function r(e,t,r){this.start=e,this.end=t,this.audio=r}l.FS_createPath("/","data",!0,!0),l.FS_createPath("/data","RDKit",!0,!0),l.FS_createPath("/data/RDKit","Data",!0,!0),l.FS_createPath("/data","ccp4_lib",!0,!0),l.FS_createPath("/data/ccp4_lib","data",!0,!0),l.FS_createPath("/data/ccp4_lib/data","monomers",!0,!0),l.FS_createPath("/data/ccp4_lib/data/monomers","a",!0,!0),l.FS_createPath("/data/ccp4_lib/data/monomers","c",!0,!0),l.FS_createPath("/data/ccp4_lib/data/monomers","d",!0,!0),l.FS_createPath("/data/ccp4_lib/data/monomers","e",!0,!0),l.FS_createPath("/data/ccp4_lib/data/monomers","g",!0,!0),l.FS_createPath("/data/ccp4_lib/data/monomers","h",!0,!0),l.FS_createPath("/data/ccp4_lib/data/monomers","i",!0,!0),l.FS_createPath("/data/ccp4_lib/data/monomers","l",!0,!0),l.FS_createPath("/data/ccp4_lib/data/monomers","list",!0,!0),l.FS_createPath("/data/ccp4_lib/data/monomers","m",!0,!0),l.FS_createPath("/data/ccp4_lib/data/monomers","n",!0,!0),l.FS_createPath("/data/ccp4_lib/data/monomers","p",!0,!0),l.FS_createPath("/data/ccp4_lib/data/monomers","s",!0,!0),l.FS_createPath("/data/ccp4_lib/data/monomers","t",!0,!0),l.FS_createPath("/data/ccp4_lib/data/monomers","u",!0,!0),l.FS_createPath("/data/ccp4_lib/data/monomers","v",!0,!0),l.FS_createPath("/data","coot",!0,!0),l.FS_createPath("/data/coot","data",!0,!0),l.FS_createPath("/data/coot/data","metal",!0,!0),l.FS_createPath("/data/coot","rama-data",!0,!0),r.prototype={requests:{},open:function(e,t){this.name=t,this.requests[t]=this,l.addRunDependency("fp "+this.name)},send:function(){},onload:function(){var e=this.byteArray.subarray(this.start,this.end);this.finish(e)},finish:function(e){l.FS_createDataFile(this.name,null,e,!0,!0,!0),l.removeRunDependency("fp "+this.name),this.requests[this.name]=null}};for(var n=e.files,a=0;a{throw t},_="object"==typeof window,y="function"==typeof importScripts,g="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,w=!_&&!g&&!y;if(l.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)");var E,b,k,T=l.ENVIRONMENT_IS_PTHREAD||!1,S="";function P(e){return l.locateFile?l.locateFile(e,S):S+e}function F(e){if(e instanceof Ne)return;let t=e;e&&"object"==typeof e&&e.stack&&(t=[e,e.stack]),I("exiting due to exception: "+t)}if(g){if("undefined"==typeof process||!process.release||"node"!==process.release.name)throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");var C=require("fs"),D=require("path");let e;S=y?D.dirname(S)+"/":__dirname+"/",E=(e,t)=>(e=Ae(e)?new URL(e):D.normalize(e),C.readFileSync(e,t?void 0:"utf8")),k=e=>{var t=E(e,!0);return t.buffer||(t=new Uint8Array(t)),$(t.buffer),t},b=(e,t,r)=>{e=Ae(e)?new URL(e):D.normalize(e),C.readFile(e,(function(e,n){e?r(e):t(n.buffer)}))},process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),m=process.argv.slice(2),process.on("uncaughtException",(function(e){if(!(e instanceof Ne))throw e})),process.on("unhandledRejection",(function(e){throw e})),v=(e,t)=>{if(ve())throw process.exitCode=e,t;F(t),process.exit(e)},l.inspect=function(){return"[Emscripten Module object]"};try{e=require("worker_threads")}catch(e){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),e}global.Worker=e.Worker}else if(w){if("object"==typeof process&&"function"==typeof require||"object"==typeof window||"function"==typeof importScripts)throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");"undefined"!=typeof read&&(E=function(e){return read(e)}),k=function(e){let t;return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(t=read(e,"binary"),$("object"==typeof t),t)},b=function(e,t,r){setTimeout((()=>t(k(e))),0)},"undefined"!=typeof scriptArgs?m=scriptArgs:void 0!==arguments&&(m=arguments),"function"==typeof quit&&(v=(e,t)=>{F(t),quit(e)}),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)}else{if(!_&&!y)throw new Error("environment detection error");if(y?S=self.location.href:"undefined"!=typeof document&&document.currentScript&&(S=document.currentScript.src),e&&(S=e),S=0!==S.indexOf("blob:")?S.substr(0,S.replace(/[?#].*/,"").lastIndexOf("/")+1):"","object"!=typeof window&&"function"!=typeof importScripts)throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");g||(E=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},y&&(k=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),b=(e,t,r)=>{var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=()=>{200==n.status||0==n.status&&n.response?t(n.response):r()},n.onerror=r,n.send(null)})}g&&"undefined"==typeof performance&&(global.performance=require("perf_hooks").performance);var A=console.log.bind(console),O=console.warn.bind(console);g&&(A=e=>C.writeSync(1,e+"\n"),O=e=>C.writeSync(2,e+"\n"));var R,M,N=l.print||A,I=l.printErr||O;function x(e,t){Object.getOwnPropertyDescriptor(l,e)||Object.defineProperty(l,e,{configurable:!0,get:function(){Se("Module."+e+" has been replaced with plain "+t+" (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}})}function L(e){return"FS_createPath"===e||"FS_createDataFile"===e||"FS_createPreloadedFile"===e||"FS_unlink"===e||"addRunDependency"===e||"FS_createLazyFile"===e||"FS_createDevice"===e||"removeRunDependency"===e}Object.assign(l,h),h=null,R="fetchSettings",Object.getOwnPropertyDescriptor(l,R)&&Se("`Module."+R+"` was supplied but `"+R+"` not included in INCOMING_MODULE_JS_API"),l.arguments&&(m=l.arguments),x("arguments","arguments_"),l.thisProgram&&(p=l.thisProgram),x("thisProgram","thisProgram"),l.quit&&(v=l.quit),x("quit","quit_"),$(void 0===l.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),$(void 0===l.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),$(void 0===l.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),$(void 0===l.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),$(void 0===l.read,"Module.read option was removed (modify read_ in JS)"),$(void 0===l.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),$(void 0===l.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),$(void 0===l.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),$(void 0===l.TOTAL_MEMORY,"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),x("read","read_"),x("readAsync","readAsync"),x("readBinary","readBinary"),x("setWindowTitle","setWindowTitle"),$(_||y||g,"Pthreads do not work in this environment yet (need Web Workers, or an alternative to them)"),$(!w,"shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable."),Atomics.load,Atomics.store,Atomics.compareExchange,l.wasmBinary&&(M=l.wasmBinary),x("wasmBinary","wasmBinary");var j,W,U=l.noExitRuntime||!0;x("noExitRuntime","noExitRuntime"),"object"!=typeof WebAssembly&&Se("no native wasm support detected");var B,z=!1;function $(e,t){e||Se("Assertion failed"+(t?": "+t:""))}var H,G,V,q,Y,K,X,J,Z,Q="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function ee(e,t,r){for(var n=t+r,i=t;e[i]&&!(i>=n);)++i;if(i-t>16&&e.buffer&&Q)return Q.decode(e.buffer instanceof SharedArrayBuffer?e.slice(t,i):e.subarray(t,i));for(var o="";t>10,56320|1023&u)}}else o+=String.fromCharCode((31&a)<<6|s)}else o+=String.fromCharCode(a)}return o}function te(e,t){return e?ee(n(),e,t):""}function re(e,t,r,n){if(!(n>0))return 0;for(var i=r,o=r+n-1,a=0;a=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&e.charCodeAt(++a)),s<=127){if(r>=o)break;t[r++]=s}else if(s<=2047){if(r+1>=o)break;t[r++]=192|s>>6,t[r++]=128|63&s}else if(s<=65535){if(r+2>=o)break;t[r++]=224|s>>12,t[r++]=128|s>>6&63,t[r++]=128|63&s}else{if(r+3>=o)break;s>1114111&&ct("Invalid Unicode code point "+tt(s)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF)."),t[r++]=240|s>>18,t[r++]=128|s>>12&63,t[r++]=128|s>>6&63,t[r++]=128|63&s}}return t[r]=0,r-i}function ne(e,t,r){return $("number"==typeof r,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),re(e,n(),t,r)}function ie(e){for(var t=0,r=0;r=55296&&n<=57343?(t+=4,++r):t+=3}return t}function oe(e){H=e,l.HEAP8=G=new Int8Array(e),l.HEAP16=q=new Int16Array(e),l.HEAP32=K=new Int32Array(e),l.HEAPU8=V=new Uint8Array(e),l.HEAPU16=Y=new Uint16Array(e),l.HEAPU32=X=new Uint32Array(e),l.HEAPF32=J=new Float32Array(e),l.HEAPF64=Z=new Float64Array(e)}T&&(H=l.buffer);var ae=5242880;l.STACK_SIZE&&$(ae===l.STACK_SIZE,"the stack size can no longer be determined at runtime");var se,ce=l.INITIAL_MEMORY||16777216;if(x("INITIAL_MEMORY","INITIAL_MEMORY"),$(ce>=ae,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+ce+"! (STACK_SIZE="+ae+")"),$("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&null!=Int32Array.prototype.subarray&&null!=Int32Array.prototype.set,"JS engine does not provide full typed array support"),T)j=l.wasmMemory,H=l.buffer;else if(l.wasmMemory)j=l.wasmMemory;else if(!((j=new WebAssembly.Memory({initial:ce/65536,maximum:32768,shared:!0})).buffer instanceof SharedArrayBuffer))throw I("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),g&&I("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");function ue(){var e=Sn();$(0==(3&e)),0==e&&(e+=4),s()[e>>2]=34821223,s()[e+4>>2]=2310721022,s()[0]=1668509029}function de(){if(!z){var e=Sn();0==e&&(e+=4);var t=s()[e>>2],r=s()[e+4>>2];34821223==t&&2310721022==r||Se("Stack overflow! Stack cookie has been overwritten at "+tt(e)+", expected hex dwords 0x89BACDFE and 0x2135467, but received "+tt(r)+" "+tt(t)),1668509029!==s()[0]&&Se("Runtime error: The application has corrupted its heap memory area (address zero)!")}}j&&(H=j.buffer),$((ce=H.byteLength)%65536==0),oe(H),function(){var e=new Int16Array(1),t=new Int8Array(e.buffer);if(e[0]=25459,115!==t[0]||99!==t[1])throw"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)"}();var le=[],fe=[],he=[],me=[],pe=!1;function ve(){return U}function _e(){$(!pe),pe=!0,T||(de(),Wn(Tn(),Sn()),l.noFSInit||Xe.init.initialized||Xe.init(),Xe.ignorePermissions=!1,Ue.init(),it(fe))}$(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),$(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),$(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),$(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var ye=0,ge=null,we=null,Ee={};function be(e){for(var t=e;;){if(!Ee[e])return e;e=t+Math.random()}}function ke(e){ye++,l.monitorRunDependencies&&l.monitorRunDependencies(ye),e?($(!Ee[e]),Ee[e]=1,null===ge&&"undefined"!=typeof setInterval&&(ge=setInterval((function(){if(z)return clearInterval(ge),void(ge=null);var e=!1;for(var t in Ee)e||(e=!0,I("still waiting on run dependencies:")),I("dependency: "+t);e&&I("(end of list)")}),1e4))):I("warning: run dependency added without ID")}function Te(e){if(ye--,l.monitorRunDependencies&&l.monitorRunDependencies(ye),e?($(Ee[e]),delete Ee[e]):I("warning: run dependency removed without ID"),0==ye&&(null!==ge&&(clearInterval(ge),ge=null),we)){var t=we;we=null,t()}}function Se(e){l.onAbort&&l.onAbort(e),I(e="Aborted("+e+")"),z=!0,B=1;var t=new WebAssembly.RuntimeError(e);throw d(t),t}var Pe,Fe,Ce;function De(e){return e.startsWith("data:application/octet-stream;base64,")}function Ae(e){return e.startsWith("file://")}function Oe(e,t){return function(){var r=e,n=t;return t||(n=l.asm),$(pe,"native function `"+r+"` called before runtime initialization"),n[e]||$(n[e],"exported native function `"+r+"` not found"),n[e].apply(null,arguments)}}function Re(e){try{if(e==Pe&&M)return new Uint8Array(M);if(k)return k(e);throw"both async and sync fetching of the wasm failed"}catch(e){Se(e)}}De(Pe="moorhen.wasm")||(Pe=P(Pe));var Me={};function Ne(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Ie(e){$(!T,"Internal Error! cleanupThread() can only ever be called from main application thread!"),$(e,"Internal Error! Null pthread_ptr in cleanupThread!");var t=nt.pthreads[e];$(t),nt.returnWorkerToPool(t)}function xe(e){$(!T,"Internal Error! spawnThread() can only ever be called from main application thread!"),$(e.pthread_ptr,"Internal error, no pthread ptr!");var t=nt.getNewWorker();if(!t)return 6;$(!t.pthread_ptr,"Internal error!"),nt.runningWorkers.push(t),nt.pthreads[e.pthread_ptr]=t,t.pthread_ptr=e.pthread_ptr;var r={cmd:"run",start_routine:e.startRoutine,arg:e.arg,pthread_ptr:e.pthread_ptr};return t.runPthread=()=>{g&&t.ref(),t.postMessage(r,e.transferList),delete t.runPthread},t.loaded&&t.runPthread(),0}var Le={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var r=0,n=e.length-1;n>=0;n--){var i=e[n];"."===i?e.splice(n,1):".."===i?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize:e=>{var t=Le.isAbs(e),r="/"===e.substr(-1);return(e=Le.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:e=>{var t=Le.splitPath(e),r=t[0],n=t[1];return r||n?(n&&(n=n.substr(0,n.length-1)),r+n):"."},basename:e=>{if("/"===e)return"/";var t=(e=(e=Le.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},join:function(){var e=Array.prototype.slice.call(arguments);return Le.normalize(e.join("/"))},join2:(e,t)=>Le.normalize(e+"/"+t)},je={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:Xe.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,t=Le.isAbs(n)}return(t?"/":"")+(e=Le.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"))||"."},relative:(e,t)=>{function r(e){for(var t=0;t=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=je.resolve(e).substr(1),t=je.resolve(t).substr(1);for(var n=r(e.split("/")),i=r(t.split("/")),o=Math.min(n.length,i.length),a=o,s=0;s0?r:ie(e)+1,i=new Array(n),o=re(e,i,0,i.length);return t&&(i.length=o),i}var Ue={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){Ue.ttys[e]={input:[],output:[],ops:t},Xe.registerDevice(e,Ue.stream_ops)},stream_ops:{open:function(e){var t=Ue.ttys[e.node.rdev];if(!t)throw new Xe.ErrnoError(43);e.tty=t,e.seekable=!1},close:function(e){e.tty.ops.fsync(e.tty)},fsync:function(e){e.tty.ops.fsync(e.tty)},read:function(e,t,r,n,i){if(!e.tty||!e.tty.ops.get_char)throw new Xe.ErrnoError(60);for(var o=0,a=0;a0?r.slice(0,n).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(t=window.prompt("Input: "))&&(t+="\n"):"function"==typeof readline&&null!==(t=readline())&&(t+="\n");if(!t)return null;e.input=We(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(N(ee(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync:function(e){e.output&&e.output.length>0&&(N(ee(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(I(ee(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync:function(e){e.output&&e.output.length>0&&(I(ee(e.output,0)),e.output=[])}}};function Be(e){e=function(e,t){return $(t,"alignment argument is required"),Math.ceil(e/t)*t}(e,65536);var t=wn(65536,e);return t?function(e,t){return n().fill(0,e,e+t),e}(t,e):0}var ze={ops_table:null,mount:function(e){return ze.createNode(null,"/",16895,0)},createNode:function(e,t,r,n){if(Xe.isBlkdev(r)||Xe.isFIFO(r))throw new Xe.ErrnoError(63);ze.ops_table||(ze.ops_table={dir:{node:{getattr:ze.node_ops.getattr,setattr:ze.node_ops.setattr,lookup:ze.node_ops.lookup,mknod:ze.node_ops.mknod,rename:ze.node_ops.rename,unlink:ze.node_ops.unlink,rmdir:ze.node_ops.rmdir,readdir:ze.node_ops.readdir,symlink:ze.node_ops.symlink},stream:{llseek:ze.stream_ops.llseek}},file:{node:{getattr:ze.node_ops.getattr,setattr:ze.node_ops.setattr},stream:{llseek:ze.stream_ops.llseek,read:ze.stream_ops.read,write:ze.stream_ops.write,allocate:ze.stream_ops.allocate,mmap:ze.stream_ops.mmap,msync:ze.stream_ops.msync}},link:{node:{getattr:ze.node_ops.getattr,setattr:ze.node_ops.setattr,readlink:ze.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ze.node_ops.getattr,setattr:ze.node_ops.setattr},stream:Xe.chrdev_stream_ops}});var i=Xe.createNode(e,t,r,n);return Xe.isDir(i.mode)?(i.node_ops=ze.ops_table.dir.node,i.stream_ops=ze.ops_table.dir.stream,i.contents={}):Xe.isFile(i.mode)?(i.node_ops=ze.ops_table.file.node,i.stream_ops=ze.ops_table.file.stream,i.usedBytes=0,i.contents=null):Xe.isLink(i.mode)?(i.node_ops=ze.ops_table.link.node,i.stream_ops=ze.ops_table.link.stream):Xe.isChrdev(i.mode)&&(i.node_ops=ze.ops_table.chrdev.node,i.stream_ops=ze.ops_table.chrdev.stream),i.timestamp=Date.now(),e&&(e.contents[t]=i,e.timestamp=i.timestamp),i},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage:function(e,t){var r=e.contents?e.contents.length:0;if(!(r>=t)){t=Math.max(t,r*(r<1048576?2:1.125)>>>0),0!=r&&(t=Math.max(t,256));var n=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0)}},resizeFileStorage:function(e,t){if(e.usedBytes!=t)if(0==t)e.contents=null,e.usedBytes=0;else{var r=e.contents;e.contents=new Uint8Array(t),r&&e.contents.set(r.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr:function(e){var t={};return t.dev=Xe.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,Xe.isDir(e.mode)?t.size=4096:Xe.isFile(e.mode)?t.size=e.usedBytes:Xe.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr:function(e,t){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp),void 0!==t.size&&ze.resizeFileStorage(e,t.size)},lookup:function(e,t){throw Xe.genericErrors[44]},mknod:function(e,t,r,n){return ze.createNode(e,t,r,n)},rename:function(e,t,r){if(Xe.isDir(e.mode)){var n;try{n=Xe.lookupNode(t,r)}catch(e){}if(n)for(var i in n.contents)throw new Xe.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=r,t.contents[r]=e,t.timestamp=e.parent.timestamp,e.parent=t},unlink:function(e,t){delete e.contents[t],e.timestamp=Date.now()},rmdir:function(e,t){var r=Xe.lookupNode(e,t);for(var n in r.contents)throw new Xe.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir:function(e){var t=[".",".."];for(var r in e.contents)e.contents.hasOwnProperty(r)&&t.push(r);return t},symlink:function(e,t,r){var n=ze.createNode(e,t,41471,0);return n.link=r,n},readlink:function(e){if(!Xe.isLink(e.mode))throw new Xe.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,r,n,i){var o=e.node.contents;if(i>=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-i,n);if($(a>=0),a>8&&o.subarray)t.set(o.subarray(i,i+a),r);else for(var s=0;s0||n+t{if("undefined"!=typeof indexedDB)return indexedDB;var e=null;return"object"==typeof window&&(e=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB),$(e,"IDBFS used, but indexedDB not supported"),e},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function(e){return ze.mount.apply(null,arguments)},syncfs:(e,t,r)=>{$e.getLocalSet(e,((n,i)=>{if(n)return r(n);$e.getRemoteSet(e,((e,n)=>{if(e)return r(e);var o=t?n:i,a=t?i:n;$e.reconcile(o,a,r)}))}))},quit:()=>{Object.values($e.dbs).forEach((e=>e.close())),$e.dbs={}},getDB:(e,t)=>{var r,n=$e.dbs[e];if(n)return t(null,n);try{r=$e.indexedDB().open(e,$e.DB_VERSION)}catch(e){return t(e)}if(!r)return t("Unable to connect to IndexedDB");r.onupgradeneeded=e=>{var t,r=e.target.result,n=e.target.transaction;(t=r.objectStoreNames.contains($e.DB_STORE_NAME)?n.objectStore($e.DB_STORE_NAME):r.createObjectStore($e.DB_STORE_NAME)).indexNames.contains("timestamp")||t.createIndex("timestamp","timestamp",{unique:!1})},r.onsuccess=()=>{n=r.result,$e.dbs[e]=n,t(null,n)},r.onerror=e=>{t(this.error),e.preventDefault()}},getLocalSet:(e,t)=>{var r={};function n(e){return"."!==e&&".."!==e}function i(e){return t=>Le.join2(e,t)}for(var o=Xe.readdir(e.mountpoint).filter(n).map(i(e.mountpoint));o.length;){var a,s=o.pop();try{a=Xe.stat(s)}catch(e){return t(e)}Xe.isDir(a.mode)&&o.push.apply(o,Xe.readdir(s).filter(n).map(i(s))),r[s]={timestamp:a.mtime}}return t(null,{type:"local",entries:r})},getRemoteSet:(e,t)=>{var r={};$e.getDB(e.mountpoint,((e,n)=>{if(e)return t(e);try{var i=n.transaction([$e.DB_STORE_NAME],"readonly");i.onerror=e=>{t(this.error),e.preventDefault()},i.objectStore($e.DB_STORE_NAME).index("timestamp").openKeyCursor().onsuccess=e=>{var i=e.target.result;if(!i)return t(null,{type:"remote",db:n,entries:r});r[i.primaryKey]={timestamp:i.key},i.continue()}}catch(e){return t(e)}}))},loadLocalEntry:(e,t)=>{var r,n;try{n=Xe.lookupPath(e).node,r=Xe.stat(e)}catch(e){return t(e)}return Xe.isDir(r.mode)?t(null,{timestamp:r.mtime,mode:r.mode}):Xe.isFile(r.mode)?(n.contents=ze.getFileDataAsTypedArray(n),t(null,{timestamp:r.mtime,mode:r.mode,contents:n.contents})):t(new Error("node type not supported"))},storeLocalEntry:(e,t,r)=>{try{if(Xe.isDir(t.mode))Xe.mkdirTree(e,t.mode);else{if(!Xe.isFile(t.mode))return r(new Error("node type not supported"));Xe.writeFile(e,t.contents,{canOwn:!0})}Xe.chmod(e,t.mode),Xe.utime(e,t.timestamp,t.timestamp)}catch(e){return r(e)}r(null)},removeLocalEntry:(e,t)=>{try{var r=Xe.stat(e);Xe.isDir(r.mode)?Xe.rmdir(e):Xe.isFile(r.mode)&&Xe.unlink(e)}catch(e){return t(e)}t(null)},loadRemoteEntry:(e,t,r)=>{var n=e.get(t);n.onsuccess=e=>{r(null,e.target.result)},n.onerror=e=>{r(this.error),e.preventDefault()}},storeRemoteEntry:(e,t,r,n)=>{try{var i=e.put(r,t)}catch(e){return void n(e)}i.onsuccess=()=>{n(null)},i.onerror=e=>{n(this.error),e.preventDefault()}},removeRemoteEntry:(e,t,r)=>{var n=e.delete(t);n.onsuccess=()=>{r(null)},n.onerror=e=>{r(this.error),e.preventDefault()}},reconcile:(e,t,r)=>{var n=0,i=[];Object.keys(e.entries).forEach((function(r){var o=e.entries[r],a=t.entries[r];a&&o.timestamp.getTime()==a.timestamp.getTime()||(i.push(r),n++)}));var o=[];if(Object.keys(t.entries).forEach((function(t){e.entries[t]||(o.push(t),n++)})),!n)return r(null);var a=!1,s=("remote"===e.type?e.db:t.db).transaction([$e.DB_STORE_NAME],"readwrite"),c=s.objectStore($e.DB_STORE_NAME);function u(e){if(e&&!a)return a=!0,r(e)}s.onerror=e=>{u(this.error),e.preventDefault()},s.oncomplete=e=>{a||r(null)},i.sort().forEach((e=>{"local"===t.type?$e.loadRemoteEntry(c,e,((t,r)=>{if(t)return u(t);$e.storeLocalEntry(e,r,u)})):$e.loadLocalEntry(e,((t,r)=>{if(t)return u(t);$e.storeRemoteEntry(c,e,r,u)}))})),o.sort().reverse().forEach((e=>{"local"===t.type?$e.removeLocalEntry(e,u):$e.removeRemoteEntry(c,e,u)}))}},He={},Ge={isWindows:!1,staticInit:()=>{Ge.isWindows=!!process.platform.match(/^win/);var e=process.binding("constants");e.fs&&(e=e.fs),Ge.flagsForNodeMap={1024:e.O_APPEND,64:e.O_CREAT,128:e.O_EXCL,256:e.O_NOCTTY,0:e.O_RDONLY,2:e.O_RDWR,4096:e.O_SYNC,512:e.O_TRUNC,1:e.O_WRONLY,131072:e.O_NOFOLLOW},$(0===Ge.flagsForNodeMap[0])},convertNodeCode:e=>{var t=e.code;return $(t in He,"unexpected node error code: "+t+" ("+e+")"),He[t]},mount:e=>($(g),Ge.createNode(null,"/",Ge.getMode(e.opts.root),0)),createNode:(e,t,r,n)=>{if(!Xe.isDir(r)&&!Xe.isFile(r)&&!Xe.isLink(r))throw new Xe.ErrnoError(28);var i=Xe.createNode(e,t,r);return i.node_ops=Ge.node_ops,i.stream_ops=Ge.stream_ops,i},getMode:e=>{var t;try{t=C.lstatSync(e),Ge.isWindows&&(t.mode=t.mode|(292&t.mode)>>2)}catch(e){if(!e.code)throw e;throw new Xe.ErrnoError(Ge.convertNodeCode(e))}return t.mode},realPath:e=>{for(var t=[];e.parent!==e;)t.push(e.name),e=e.parent;return t.push(e.mount.opts.root),t.reverse(),Le.join.apply(null,t)},flagsForNode:e=>{e&=-2097153,e&=-2049,e&=-32769,e&=-524289,e&=-65537;var t=0;for(var r in Ge.flagsForNodeMap)e&r&&(t|=Ge.flagsForNodeMap[r],e^=r);if(e)throw new Xe.ErrnoError(28);return t},node_ops:{getattr:e=>{var t,r=Ge.realPath(e);try{t=C.lstatSync(r)}catch(e){if(!e.code)throw e;throw new Xe.ErrnoError(Ge.convertNodeCode(e))}return Ge.isWindows&&!t.blksize&&(t.blksize=4096),Ge.isWindows&&!t.blocks&&(t.blocks=(t.size+t.blksize-1)/t.blksize|0),{dev:t.dev,ino:t.ino,mode:t.mode,nlink:t.nlink,uid:t.uid,gid:t.gid,rdev:t.rdev,size:t.size,atime:t.atime,mtime:t.mtime,ctime:t.ctime,blksize:t.blksize,blocks:t.blocks}},setattr:(e,t)=>{var r=Ge.realPath(e);try{if(void 0!==t.mode&&(C.chmodSync(r,t.mode),e.mode=t.mode),void 0!==t.timestamp){var n=new Date(t.timestamp);C.utimesSync(r,n,n)}void 0!==t.size&&C.truncateSync(r,t.size)}catch(e){if(!e.code)throw e;throw new Xe.ErrnoError(Ge.convertNodeCode(e))}},lookup:(e,t)=>{var r=Le.join2(Ge.realPath(e),t),n=Ge.getMode(r);return Ge.createNode(e,t,n)},mknod:(e,t,r,n)=>{var i=Ge.createNode(e,t,r,n),o=Ge.realPath(i);try{Xe.isDir(i.mode)?C.mkdirSync(o,i.mode):C.writeFileSync(o,"",{mode:i.mode})}catch(e){if(!e.code)throw e;throw new Xe.ErrnoError(Ge.convertNodeCode(e))}return i},rename:(e,t,r)=>{var n=Ge.realPath(e),i=Le.join2(Ge.realPath(t),r);try{C.renameSync(n,i)}catch(e){if(!e.code)throw e;throw new Xe.ErrnoError(Ge.convertNodeCode(e))}e.name=r},unlink:(e,t)=>{var r=Le.join2(Ge.realPath(e),t);try{C.unlinkSync(r)}catch(e){if(!e.code)throw e;throw new Xe.ErrnoError(Ge.convertNodeCode(e))}},rmdir:(e,t)=>{var r=Le.join2(Ge.realPath(e),t);try{C.rmdirSync(r)}catch(e){if(!e.code)throw e;throw new Xe.ErrnoError(Ge.convertNodeCode(e))}},readdir:e=>{var t=Ge.realPath(e);try{return C.readdirSync(t)}catch(e){if(!e.code)throw e;throw new Xe.ErrnoError(Ge.convertNodeCode(e))}},symlink:(e,t,r)=>{var n=Le.join2(Ge.realPath(e),t);try{C.symlinkSync(r,n)}catch(e){if(!e.code)throw e;throw new Xe.ErrnoError(Ge.convertNodeCode(e))}},readlink:e=>{var t=Ge.realPath(e);try{return t=C.readlinkSync(t),t=D.relative(D.resolve(e.mount.opts.root),t)}catch(e){if(!e.code)throw e;if("UNKNOWN"===e.code)throw new Xe.ErrnoError(28);throw new Xe.ErrnoError(Ge.convertNodeCode(e))}}},stream_ops:{open:e=>{var t=Ge.realPath(e.node);try{Xe.isFile(e.node.mode)&&(e.nfd=C.openSync(t,Ge.flagsForNode(e.flags)))}catch(e){if(!e.code)throw e;throw new Xe.ErrnoError(Ge.convertNodeCode(e))}},close:e=>{try{Xe.isFile(e.node.mode)&&e.nfd&&C.closeSync(e.nfd)}catch(e){if(!e.code)throw e;throw new Xe.ErrnoError(Ge.convertNodeCode(e))}},read:(e,t,r,n,i)=>{if(0===n)return 0;try{return C.readSync(e.nfd,Buffer.from(t.buffer),r,n,i)}catch(e){throw new Xe.ErrnoError(Ge.convertNodeCode(e))}},write:(e,t,r,n,i)=>{try{return C.writeSync(e.nfd,Buffer.from(t.buffer),r,n,i)}catch(e){throw new Xe.ErrnoError(Ge.convertNodeCode(e))}},llseek:(e,t,r)=>{var n=t;if(1===r)n+=e.position;else if(2===r&&Xe.isFile(e.node.mode))try{n+=C.fstatSync(e.nfd).size}catch(e){throw new Xe.ErrnoError(Ge.convertNodeCode(e))}if(n<0)throw new Xe.ErrnoError(28);return n},mmap:(e,t,n,i,o)=>{if(!Xe.isFile(e.node.mode))throw new Xe.ErrnoError(43);var a=Be(t);return Ge.stream_ops.read(e,r(),a,t,n),{ptr:a,allocated:!0}},msync:(e,t,r,n,i)=>(Ge.stream_ops.write(e,t,0,n,r,!1),0)}},Ve={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"};function qe(e){var t=Rn(),r=e();return Mn(t),r}function Ye(e){return Ye.recursionGuard=1+(0|Ye.recursionGuard),Ye.recursionGuard>1?e:($(xn),qe((function(){try{var t=e;t.startsWith("__Z")&&(t=t.substr(1));var r=ie(t)+1,n=Nn(r);ne(t,n,r);var i=Nn(4),o=xn(n,0,0,i);if(0===a()[i>>2]&&o)return te(o)}catch(e){}finally{vn(o),Ye.recursionGuard<2&&--Ye.recursionGuard}return e})))}function Ke(e){return e.replace(/\b_Z[\w\d_]+/g,(function(e){var t=Ye(e);return e===t?e:t+" ["+e+"]"}))}var Xe={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(e,t={})=>{if(!(e=je.resolve(e)))return{path:"",node:null};if((t=Object.assign({follow_mount:!0,recurse_count:0},t)).recurse_count>8)throw new Xe.ErrnoError(32);for(var r=e.split("/").filter((e=>!!e)),n=Xe.root,i="/",o=0;o40)throw new Xe.ErrnoError(32)}}return{path:i,node:n}},getPath:e=>{for(var t;;){if(Xe.isRoot(e)){var r=e.mount.mountpoint;return t?"/"!==r[r.length-1]?r+"/"+t:r+t:r}t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:(e,t)=>{for(var r=0,n=0;n>>0)%Xe.nameTable.length},hashAddNode:e=>{var t=Xe.hashName(e.parent.id,e.name);e.name_next=Xe.nameTable[t],Xe.nameTable[t]=e},hashRemoveNode:e=>{var t=Xe.hashName(e.parent.id,e.name);if(Xe.nameTable[t]===e)Xe.nameTable[t]=e.name_next;else for(var r=Xe.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode:(e,t)=>{var r=Xe.mayLookup(e);if(r)throw new Xe.ErrnoError(r,e);for(var n=Xe.hashName(e.id,t),i=Xe.nameTable[n];i;i=i.name_next){var o=i.name;if(i.parent.id===e.id&&o===t)return i}return Xe.lookup(e,t)},createNode:(e,t,r,n)=>{$("object"==typeof e);var i=new Xe.FSNode(e,t,r,n);return Xe.hashAddNode(i),i},destroyNode:e=>{Xe.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>49152==(49152&e),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:e=>{var t=Xe.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:e=>{var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:(e,t)=>Xe.ignorePermissions||(!t.includes("r")||292&e.mode)&&(!t.includes("w")||146&e.mode)&&(!t.includes("x")||73&e.mode)?0:2,mayLookup:e=>Xe.nodePermissions(e,"x")||(e.node_ops.lookup?0:2),mayCreate:(e,t)=>{try{return Xe.lookupNode(e,t),20}catch(e){}return Xe.nodePermissions(e,"wx")},mayDelete:(e,t,r)=>{var n;try{n=Xe.lookupNode(e,t)}catch(e){return e.errno}var i=Xe.nodePermissions(e,"wx");if(i)return i;if(r){if(!Xe.isDir(n.mode))return 54;if(Xe.isRoot(n)||Xe.getPath(n)===Xe.cwd())return 10}else if(Xe.isDir(n.mode))return 31;return 0},mayOpen:(e,t)=>e?Xe.isLink(e.mode)?32:Xe.isDir(e.mode)&&("r"!==Xe.flagsToPermissionString(t)||512&t)?31:Xe.nodePermissions(e,Xe.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd:(e=0,t=Xe.MAX_OPEN_FDS)=>{for(var r=e;r<=t;r++)if(!Xe.streams[r])return r;throw new Xe.ErrnoError(33)},getStream:e=>Xe.streams[e],createStream:(e,t,r)=>{Xe.FSStream||(Xe.FSStream=function(){this.shared={}},Xe.FSStream.prototype={},Object.defineProperties(Xe.FSStream.prototype,{object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}},flags:{get:function(){return this.shared.flags},set:function(e){this.shared.flags=e}},position:{get:function(){return this.shared.position},set:function(e){this.shared.position=e}}})),e=Object.assign(new Xe.FSStream,e);var n=Xe.nextfd(t,r);return e.fd=n,Xe.streams[n]=e,e},closeStream:e=>{Xe.streams[e]=null},chrdev_stream_ops:{open:e=>{var t=Xe.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:()=>{throw new Xe.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice:(e,t)=>{Xe.devices[e]={stream_ops:t}},getDevice:e=>Xe.devices[e],getMounts:e=>{for(var t=[],r=[e];r.length;){var n=r.pop();t.push(n),r.push.apply(r,n.mounts)}return t},syncfs:(e,t)=>{"function"==typeof e&&(t=e,e=!1),Xe.syncFSRequests++,Xe.syncFSRequests>1&&I("warning: "+Xe.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=Xe.getMounts(Xe.root.mount),n=0;function i(e){return $(Xe.syncFSRequests>0),Xe.syncFSRequests--,t(e)}function o(e){if(e)return o.errored?void 0:(o.errored=!0,i(e));++n>=r.length&&i(null)}r.forEach((t=>{if(!t.type.syncfs)return o(null);t.type.syncfs(t,e,o)}))},mount:(e,t,r)=>{if("string"==typeof e)throw e;var n,i="/"===r,o=!r;if(i&&Xe.root)throw new Xe.ErrnoError(10);if(!i&&!o){var a=Xe.lookupPath(r,{follow_mount:!1});if(r=a.path,n=a.node,Xe.isMountpoint(n))throw new Xe.ErrnoError(10);if(!Xe.isDir(n.mode))throw new Xe.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},c=e.mount(s);return c.mount=s,s.root=c,i?Xe.root=c:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),c},unmount:e=>{var t=Xe.lookupPath(e,{follow_mount:!1});if(!Xe.isMountpoint(t.node))throw new Xe.ErrnoError(28);var r=t.node,n=r.mounted,i=Xe.getMounts(n);Object.keys(Xe.nameTable).forEach((e=>{for(var t=Xe.nameTable[e];t;){var r=t.name_next;i.includes(t.mount)&&Xe.destroyNode(t),t=r}})),r.mounted=null;var o=r.mount.mounts.indexOf(n);$(-1!==o),r.mount.mounts.splice(o,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod:(e,t,r)=>{var n=Xe.lookupPath(e,{parent:!0}).node,i=Le.basename(e);if(!i||"."===i||".."===i)throw new Xe.ErrnoError(28);var o=Xe.mayCreate(n,i);if(o)throw new Xe.ErrnoError(o);if(!n.node_ops.mknod)throw new Xe.ErrnoError(63);return n.node_ops.mknod(n,i,t,r)},create:(e,t)=>(t=void 0!==t?t:438,t&=4095,t|=32768,Xe.mknod(e,t,0)),mkdir:(e,t)=>(t=void 0!==t?t:511,t&=1023,t|=16384,Xe.mknod(e,t,0)),mkdirTree:(e,t)=>{for(var r=e.split("/"),n="",i=0;i(void 0===r&&(r=t,t=438),t|=8192,Xe.mknod(e,t,r)),symlink:(e,t)=>{if(!je.resolve(e))throw new Xe.ErrnoError(44);var r=Xe.lookupPath(t,{parent:!0}).node;if(!r)throw new Xe.ErrnoError(44);var n=Le.basename(t),i=Xe.mayCreate(r,n);if(i)throw new Xe.ErrnoError(i);if(!r.node_ops.symlink)throw new Xe.ErrnoError(63);return r.node_ops.symlink(r,n,e)},rename:(e,t)=>{var r,n,i=Le.dirname(e),o=Le.dirname(t),a=Le.basename(e),s=Le.basename(t);if(r=Xe.lookupPath(e,{parent:!0}).node,n=Xe.lookupPath(t,{parent:!0}).node,!r||!n)throw new Xe.ErrnoError(44);if(r.mount!==n.mount)throw new Xe.ErrnoError(75);var c,u=Xe.lookupNode(r,a),d=je.relative(e,o);if("."!==d.charAt(0))throw new Xe.ErrnoError(28);if("."!==(d=je.relative(t,i)).charAt(0))throw new Xe.ErrnoError(55);try{c=Xe.lookupNode(n,s)}catch(e){}if(u!==c){var l=Xe.isDir(u.mode),f=Xe.mayDelete(r,a,l);if(f)throw new Xe.ErrnoError(f);if(f=c?Xe.mayDelete(n,s,l):Xe.mayCreate(n,s))throw new Xe.ErrnoError(f);if(!r.node_ops.rename)throw new Xe.ErrnoError(63);if(Xe.isMountpoint(u)||c&&Xe.isMountpoint(c))throw new Xe.ErrnoError(10);if(n!==r&&(f=Xe.nodePermissions(r,"w")))throw new Xe.ErrnoError(f);Xe.hashRemoveNode(u);try{r.node_ops.rename(u,n,s)}catch(e){throw e}finally{Xe.hashAddNode(u)}}},rmdir:e=>{var t=Xe.lookupPath(e,{parent:!0}).node,r=Le.basename(e),n=Xe.lookupNode(t,r),i=Xe.mayDelete(t,r,!0);if(i)throw new Xe.ErrnoError(i);if(!t.node_ops.rmdir)throw new Xe.ErrnoError(63);if(Xe.isMountpoint(n))throw new Xe.ErrnoError(10);t.node_ops.rmdir(t,r),Xe.destroyNode(n)},readdir:e=>{var t=Xe.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new Xe.ErrnoError(54);return t.node_ops.readdir(t)},unlink:e=>{var t=Xe.lookupPath(e,{parent:!0}).node;if(!t)throw new Xe.ErrnoError(44);var r=Le.basename(e),n=Xe.lookupNode(t,r),i=Xe.mayDelete(t,r,!1);if(i)throw new Xe.ErrnoError(i);if(!t.node_ops.unlink)throw new Xe.ErrnoError(63);if(Xe.isMountpoint(n))throw new Xe.ErrnoError(10);t.node_ops.unlink(t,r),Xe.destroyNode(n)},readlink:e=>{var t=Xe.lookupPath(e).node;if(!t)throw new Xe.ErrnoError(44);if(!t.node_ops.readlink)throw new Xe.ErrnoError(28);return je.resolve(Xe.getPath(t.parent),t.node_ops.readlink(t))},stat:(e,t)=>{var r=Xe.lookupPath(e,{follow:!t}).node;if(!r)throw new Xe.ErrnoError(44);if(!r.node_ops.getattr)throw new Xe.ErrnoError(63);return r.node_ops.getattr(r)},lstat:e=>Xe.stat(e,!0),chmod:(e,t,r)=>{var n;if(!(n="string"==typeof e?Xe.lookupPath(e,{follow:!r}).node:e).node_ops.setattr)throw new Xe.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:(e,t)=>{Xe.chmod(e,t,!0)},fchmod:(e,t)=>{var r=Xe.getStream(e);if(!r)throw new Xe.ErrnoError(8);Xe.chmod(r.node,t)},chown:(e,t,r,n)=>{var i;if(!(i="string"==typeof e?Xe.lookupPath(e,{follow:!n}).node:e).node_ops.setattr)throw new Xe.ErrnoError(63);i.node_ops.setattr(i,{timestamp:Date.now()})},lchown:(e,t,r)=>{Xe.chown(e,t,r,!0)},fchown:(e,t,r)=>{var n=Xe.getStream(e);if(!n)throw new Xe.ErrnoError(8);Xe.chown(n.node,t,r)},truncate:(e,t)=>{if(t<0)throw new Xe.ErrnoError(28);var r;if(!(r="string"==typeof e?Xe.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new Xe.ErrnoError(63);if(Xe.isDir(r.mode))throw new Xe.ErrnoError(31);if(!Xe.isFile(r.mode))throw new Xe.ErrnoError(28);var n=Xe.nodePermissions(r,"w");if(n)throw new Xe.ErrnoError(n);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:(e,t)=>{var r=Xe.getStream(e);if(!r)throw new Xe.ErrnoError(8);if(0==(2097155&r.flags))throw new Xe.ErrnoError(28);Xe.truncate(r.node,t)},utime:(e,t,r)=>{var n=Xe.lookupPath(e,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(t,r)})},open:(e,t,r)=>{if(""===e)throw new Xe.ErrnoError(44);var n;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?Xe.modeStringToFlags(t):t)?4095&r|32768:0,"object"==typeof e)n=e;else{e=Le.normalize(e);try{n=Xe.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var i=!1;if(64&t)if(n){if(128&t)throw new Xe.ErrnoError(20)}else n=Xe.mknod(e,r,0),i=!0;if(!n)throw new Xe.ErrnoError(44);if(Xe.isChrdev(n.mode)&&(t&=-513),65536&t&&!Xe.isDir(n.mode))throw new Xe.ErrnoError(54);if(!i){var o=Xe.mayOpen(n,t);if(o)throw new Xe.ErrnoError(o)}512&t&&!i&&Xe.truncate(n,0),t&=-131713;var a=Xe.createStream({node:n,path:Xe.getPath(n),flags:t,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return a.stream_ops.open&&a.stream_ops.open(a),!l.logReadFiles||1&t||(Xe.readFiles||(Xe.readFiles={}),e in Xe.readFiles||(Xe.readFiles[e]=1)),a},close:e=>{if(Xe.isClosed(e))throw new Xe.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{Xe.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek:(e,t,r)=>{if(Xe.isClosed(e))throw new Xe.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new Xe.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new Xe.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read:(e,t,r,n,i)=>{if(n<0||i<0)throw new Xe.ErrnoError(28);if(Xe.isClosed(e))throw new Xe.ErrnoError(8);if(1==(2097155&e.flags))throw new Xe.ErrnoError(8);if(Xe.isDir(e.node.mode))throw new Xe.ErrnoError(31);if(!e.stream_ops.read)throw new Xe.ErrnoError(28);var o=void 0!==i;if(o){if(!e.seekable)throw new Xe.ErrnoError(70)}else i=e.position;var a=e.stream_ops.read(e,t,r,n,i);return o||(e.position+=a),a},write:(e,t,r,n,i,o)=>{if(n<0||i<0)throw new Xe.ErrnoError(28);if(Xe.isClosed(e))throw new Xe.ErrnoError(8);if(0==(2097155&e.flags))throw new Xe.ErrnoError(8);if(Xe.isDir(e.node.mode))throw new Xe.ErrnoError(31);if(!e.stream_ops.write)throw new Xe.ErrnoError(28);e.seekable&&1024&e.flags&&Xe.llseek(e,0,2);var a=void 0!==i;if(a){if(!e.seekable)throw new Xe.ErrnoError(70)}else i=e.position;var s=e.stream_ops.write(e,t,r,n,i,o);return a||(e.position+=s),s},allocate:(e,t,r)=>{if(Xe.isClosed(e))throw new Xe.ErrnoError(8);if(t<0||r<=0)throw new Xe.ErrnoError(28);if(0==(2097155&e.flags))throw new Xe.ErrnoError(8);if(!Xe.isFile(e.node.mode)&&!Xe.isDir(e.node.mode))throw new Xe.ErrnoError(43);if(!e.stream_ops.allocate)throw new Xe.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap:(e,t,r,n,i)=>{if(0!=(2&n)&&0==(2&i)&&2!=(2097155&e.flags))throw new Xe.ErrnoError(2);if(1==(2097155&e.flags))throw new Xe.ErrnoError(2);if(!e.stream_ops.mmap)throw new Xe.ErrnoError(43);return e.stream_ops.mmap(e,t,r,n,i)},msync:(e,t,r,n,i)=>e.stream_ops.msync?e.stream_ops.msync(e,t,r,n,i):0,munmap:e=>0,ioctl:(e,t,r)=>{if(!e.stream_ops.ioctl)throw new Xe.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile:(e,t={})=>{if(t.flags=t.flags||0,t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error('Invalid encoding type "'+t.encoding+'"');var r,n=Xe.open(e,t.flags),i=Xe.stat(e).size,o=new Uint8Array(i);return Xe.read(n,o,0,i,0),"utf8"===t.encoding?r=ee(o,0):"binary"===t.encoding&&(r=o),Xe.close(n),r},writeFile:(e,t,r={})=>{r.flags=r.flags||577;var n=Xe.open(e,r.flags,r.mode);if("string"==typeof t){var i=new Uint8Array(ie(t)+1),o=re(t,i,0,i.length);Xe.write(n,i,0,o,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");Xe.write(n,t,0,t.byteLength,void 0,r.canOwn)}Xe.close(n)},cwd:()=>Xe.currentPath,chdir:e=>{var t=Xe.lookupPath(e,{follow:!0});if(null===t.node)throw new Xe.ErrnoError(44);if(!Xe.isDir(t.node.mode))throw new Xe.ErrnoError(54);var r=Xe.nodePermissions(t.node,"x");if(r)throw new Xe.ErrnoError(r);Xe.currentPath=t.path},createDefaultDirectories:()=>{Xe.mkdir("/tmp"),Xe.mkdir("/home"),Xe.mkdir("/home/web_user")},createDefaultDevices:()=>{Xe.mkdir("/dev"),Xe.registerDevice(Xe.makedev(1,3),{read:()=>0,write:(e,t,r,n,i)=>n}),Xe.mkdev("/dev/null",Xe.makedev(1,3)),Ue.register(Xe.makedev(5,0),Ue.default_tty_ops),Ue.register(Xe.makedev(6,0),Ue.default_tty1_ops),Xe.mkdev("/dev/tty",Xe.makedev(5,0)),Xe.mkdev("/dev/tty1",Xe.makedev(6,0));var e=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);return()=>(crypto.getRandomValues(e),e[0])}if(g)try{var t=require("crypto");return()=>t.randomBytes(1)[0]}catch(e){}return()=>Se("no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };")}();Xe.createDevice("/dev","random",e),Xe.createDevice("/dev","urandom",e),Xe.mkdir("/dev/shm"),Xe.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{Xe.mkdir("/proc");var e=Xe.mkdir("/proc/self");Xe.mkdir("/proc/self/fd"),Xe.mount({mount:()=>{var t=Xe.createNode(e,"fd",16895,73);return t.node_ops={lookup:(e,t)=>{var r=+t,n=Xe.getStream(r);if(!n)throw new Xe.ErrnoError(8);var i={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>n.path}};return i.parent=i,i}},t}},{},"/proc/self/fd")},createStandardStreams:()=>{l.stdin?Xe.createDevice("/dev","stdin",l.stdin):Xe.symlink("/dev/tty","/dev/stdin"),l.stdout?Xe.createDevice("/dev","stdout",null,l.stdout):Xe.symlink("/dev/tty","/dev/stdout"),l.stderr?Xe.createDevice("/dev","stderr",null,l.stderr):Xe.symlink("/dev/tty1","/dev/stderr");var e=Xe.open("/dev/stdin",0),t=Xe.open("/dev/stdout",1),r=Xe.open("/dev/stderr",1);$(0===e.fd,"invalid handle for stdin ("+e.fd+")"),$(1===t.fd,"invalid handle for stdout ("+t.fd+")"),$(2===r.fd,"invalid handle for stderr ("+r.fd+")")},ensureErrnoError:()=>{Xe.ErrnoError||(Xe.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){for(var t in this.errno=e,He)if(He[t]===e){this.code=t;break}},this.setErrno(e),this.message=Ve[e],this.stack&&(Object.defineProperty(this,"stack",{value:(new Error).stack,writable:!0}),this.stack=Ke(this.stack))},Xe.ErrnoError.prototype=new Error,Xe.ErrnoError.prototype.constructor=Xe.ErrnoError,[44].forEach((e=>{Xe.genericErrors[e]=new Xe.ErrnoError(e),Xe.genericErrors[e].stack=""})))},staticInit:()=>{Xe.ensureErrnoError(),Xe.nameTable=new Array(4096),Xe.mount(ze,{},"/"),Xe.createDefaultDirectories(),Xe.createDefaultDevices(),Xe.createSpecialDirectories(),Xe.filesystems={MEMFS:ze,IDBFS:$e,NODEFS:Ge}},init:(e,t,r)=>{$(!Xe.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),Xe.init.initialized=!0,Xe.ensureErrnoError(),l.stdin=e||l.stdin,l.stdout=t||l.stdout,l.stderr=r||l.stderr,Xe.createStandardStreams()},quit:()=>{Xe.init.initialized=!1,_n(0);for(var e=0;e{var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:(e,t)=>{var r=Xe.analyzePath(e,t);return r.exists?r.object:null},analyzePath:(e,t)=>{try{e=(n=Xe.lookupPath(e,{follow:!t})).path}catch(e){}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=Xe.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=Le.basename(e),n=Xe.lookupPath(e,{follow:!t}),r.exists=!0,r.path=n.path,r.object=n.node,r.name=n.node.name,r.isRoot="/"===n.path}catch(e){r.error=e.errno}return r},createPath:(e,t,r,n)=>{e="string"==typeof e?e:Xe.getPath(e);for(var i=t.split("/").reverse();i.length;){var o=i.pop();if(o){var a=Le.join2(e,o);try{Xe.mkdir(a)}catch(e){}e=a}}return a},createFile:(e,t,r,n,i)=>{var o=Le.join2("string"==typeof e?e:Xe.getPath(e),t),a=Xe.getMode(n,i);return Xe.create(o,a)},createDataFile:(e,t,r,n,i,o)=>{var a=t;e&&(e="string"==typeof e?e:Xe.getPath(e),a=t?Le.join2(e,t):e);var s=Xe.getMode(n,i),c=Xe.create(a,s);if(r){if("string"==typeof r){for(var u=new Array(r.length),d=0,l=r.length;d{var i=Le.join2("string"==typeof e?e:Xe.getPath(e),t),o=Xe.getMode(!!r,!!n);Xe.createDevice.major||(Xe.createDevice.major=64);var a=Xe.makedev(Xe.createDevice.major++,0);return Xe.registerDevice(a,{open:e=>{e.seekable=!1},close:e=>{n&&n.buffer&&n.buffer.length&&n(10)},read:(e,t,n,i,o)=>{for(var a=0,s=0;s{for(var a=0;a{if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!E)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=We(E(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new Xe.ErrnoError(29)}},createLazyFile:(e,t,n,i,o)=>{function a(){this.lengthKnown=!1,this.chunks=[]}if(a.prototype.get=function(e){if(!(e>this.length-1||e<0)){var t=e%this.chunkSize,r=e/this.chunkSize|0;return this.getter(r)[t]}},a.prototype.setDataGetter=function(e){this.getter=e},a.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",n,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+n+". Status: "+e.status);var t,r=Number(e.getResponseHeader("Content-length")),i=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,o=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,a=1048576;i||(a=r);var s=this;s.setDataGetter((e=>{var t=e*a,i=(e+1)*a-1;if(i=Math.min(i,r-1),void 0===s.chunks[e]&&(s.chunks[e]=((e,t)=>{if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>r-1)throw new Error("only "+r+" bytes available! programmer error!");var i=new XMLHttpRequest;if(i.open("GET",n,!1),r!==a&&i.setRequestHeader("Range","bytes="+e+"-"+t),i.responseType="arraybuffer",i.overrideMimeType&&i.overrideMimeType("text/plain; charset=x-user-defined"),i.send(null),!(i.status>=200&&i.status<300||304===i.status))throw new Error("Couldn't load "+n+". Status: "+i.status);return void 0!==i.response?new Uint8Array(i.response||[]):We(i.responseText||"",!0)})(t,i)),void 0===s.chunks[e])throw new Error("doXHR failed!");return s.chunks[e]})),!o&&r||(a=r=1,r=this.getter(0).length,a=r,N("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=r,this._chunkSize=a,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!y)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var s=new a;Object.defineProperties(s,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var c={isDevice:!1,contents:s}}else c={isDevice:!1,url:n};var u=Xe.createFile(e,t,c,i,o);c.contents?u.contents=c.contents:c.url&&(u.contents=null,u.url=c.url),Object.defineProperties(u,{usedBytes:{get:function(){return this.contents.length}}});var d={};function l(e,t,r,n,i){var o=e.node.contents;if(i>=o.length)return 0;var a=Math.min(o.length-i,n);if($(a>=0),o.slice)for(var s=0;s{var t=u.stream_ops[e];d[e]=function(){return Xe.forceLoadFile(u),t.apply(null,arguments)}})),d.read=(e,t,r,n,i)=>(Xe.forceLoadFile(u),l(e,t,r,n,i)),d.mmap=(e,t,n,i,o)=>{Xe.forceLoadFile(u);var a=Be(t);if(!a)throw new Xe.ErrnoError(48);return l(e,r(),a,t,n),{ptr:a,allocated:!0}},u.stream_ops=d,u},createPreloadedFile:(e,t,r,n,i,o,a,s,c,u)=>{var d=t?je.resolve(Le.join2(e,t)):e,l=be("cp "+d);function f(r){function f(r){u&&u(),s||Xe.createDataFile(e,t,r,n,i,c),o&&o(),Te(l)}Browser.handledByPreloadPlugin(r,d,f,(()=>{a&&a(),Te(l)}))||f(r)}ke(l),"string"==typeof r?function(e,t,r,n){var i=be("al "+e);b(e,(t=>{$(t,'Loading data file "'+e+'" failed (no arrayBuffer).'),f(new Uint8Array(t)),i&&Te(i)}),(t=>{if(!r)throw'Loading data file "'+e+'" failed.';r()})),i&&ke(i)}(r,0,a):f(r)},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>"EM_FS_"+window.location.pathname,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(e,t,r)=>{t=t||(()=>{}),r=r||(()=>{});var n=Xe.indexedDB();try{var i=n.open(Xe.DB_NAME(),Xe.DB_VERSION)}catch(e){return r(e)}i.onupgradeneeded=()=>{N("creating db"),i.result.createObjectStore(Xe.DB_STORE_NAME)},i.onsuccess=()=>{var n=i.result.transaction([Xe.DB_STORE_NAME],"readwrite"),o=n.objectStore(Xe.DB_STORE_NAME),a=0,s=0,c=e.length;function u(){0==s?t():r()}e.forEach((e=>{var t=o.put(Xe.analyzePath(e).object.contents,e);t.onsuccess=()=>{++a+s==c&&u()},t.onerror=()=>{s++,a+s==c&&u()}})),n.onerror=r},i.onerror=r},loadFilesFromDB:(e,t,r)=>{t=t||(()=>{}),r=r||(()=>{});var n=Xe.indexedDB();try{var i=n.open(Xe.DB_NAME(),Xe.DB_VERSION)}catch(e){return r(e)}i.onupgradeneeded=r,i.onsuccess=()=>{var n=i.result;try{var o=n.transaction([Xe.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}var a=o.objectStore(Xe.DB_STORE_NAME),s=0,c=0,u=e.length;function d(){0==c?t():r()}e.forEach((e=>{var t=a.get(e);t.onsuccess=()=>{Xe.analyzePath(e).exists&&Xe.unlink(e),Xe.createDataFile(Le.dirname(e),Le.basename(e),t.result,!0,!0,!0),++s+c==u&&d()},t.onerror=()=>{c++,s+c==u&&d()}})),o.onerror=r},i.onerror=r},absolutePath:()=>{Se("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder:()=>{Se("FS.createFolder has been removed; use FS.mkdir instead")},createLink:()=>{Se("FS.createLink has been removed; use FS.symlink instead")},joinPath:()=>{Se("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc:()=>{Se("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath:()=>{Se("FS.standardizePath has been removed; use PATH.normalize instead")}},Je={DEFAULT_POLLMASK:5,calculateAt:function(e,t,r){if(Le.isAbs(t))return t;var n;if(n=-100===e?Xe.cwd():Je.getStreamFromFD(e).path,0==t.length){if(!r)throw new Xe.ErrnoError(44);return n}return Le.join2(n,t)},doStat:function(e,t,r){try{var n=e(t)}catch(e){if(e&&e.node&&Le.normalize(t)!==Le.normalize(Xe.getPath(e.node)))return-54;throw e}a()[r>>2]=n.dev,a()[r+8>>2]=n.ino,a()[r+12>>2]=n.mode,s()[r+16>>2]=n.nlink,a()[r+20>>2]=n.uid,a()[r+24>>2]=n.gid,a()[r+28>>2]=n.rdev,Ce=[n.size>>>0,(Fe=n.size,+Math.abs(Fe)>=1?Fe>0?(0|Math.min(+Math.floor(Fe/4294967296),4294967295))>>>0:~~+Math.ceil((Fe-+(~~Fe>>>0))/4294967296)>>>0:0)],a()[r+40>>2]=Ce[0],a()[r+44>>2]=Ce[1],a()[r+48>>2]=4096,a()[r+52>>2]=n.blocks;var i=n.atime.getTime(),o=n.mtime.getTime(),c=n.ctime.getTime();return Ce=[Math.floor(i/1e3)>>>0,(Fe=Math.floor(i/1e3),+Math.abs(Fe)>=1?Fe>0?(0|Math.min(+Math.floor(Fe/4294967296),4294967295))>>>0:~~+Math.ceil((Fe-+(~~Fe>>>0))/4294967296)>>>0:0)],a()[r+56>>2]=Ce[0],a()[r+60>>2]=Ce[1],s()[r+64>>2]=i%1e3*1e3,Ce=[Math.floor(o/1e3)>>>0,(Fe=Math.floor(o/1e3),+Math.abs(Fe)>=1?Fe>0?(0|Math.min(+Math.floor(Fe/4294967296),4294967295))>>>0:~~+Math.ceil((Fe-+(~~Fe>>>0))/4294967296)>>>0:0)],a()[r+72>>2]=Ce[0],a()[r+76>>2]=Ce[1],s()[r+80>>2]=o%1e3*1e3,Ce=[Math.floor(c/1e3)>>>0,(Fe=Math.floor(c/1e3),+Math.abs(Fe)>=1?Fe>0?(0|Math.min(+Math.floor(Fe/4294967296),4294967295))>>>0:~~+Math.ceil((Fe-+(~~Fe>>>0))/4294967296)>>>0:0)],a()[r+88>>2]=Ce[0],a()[r+92>>2]=Ce[1],s()[r+96>>2]=c%1e3*1e3,Ce=[n.ino>>>0,(Fe=n.ino,+Math.abs(Fe)>=1?Fe>0?(0|Math.min(+Math.floor(Fe/4294967296),4294967295))>>>0:~~+Math.ceil((Fe-+(~~Fe>>>0))/4294967296)>>>0:0)],a()[r+104>>2]=Ce[0],a()[r+108>>2]=Ce[1],0},doMsync:function(e,t,r,i,o){if(!Xe.isFile(t.node.mode))throw new Xe.ErrnoError(43);if(2&i)return 0;var a=n().slice(e,e+r);Xe.msync(t,a,o,r,i)},varargs:void 0,get:function(){return $(null!=Je.varargs),Je.varargs+=4,a()[Je.varargs-4>>2]},getStr:function(e){return te(e)},getStreamFromFD:function(e){var t=Xe.getStream(e);if(!t)throw new Xe.ErrnoError(8);return t}};function Ze(e){if(T)return qr(1,1,e);B=e,ve()||(nt.terminateAllThreads(),l.onExit&&l.onExit(e),z=!0),v(e,new Ne(e))}function Qe(e,t){if(B=e,function(){var e=N,t=I,r=!1;N=I=e=>{r=!0};try{_n(0),["stdout","stderr"].forEach((function(e){var t=Xe.analyzePath("/dev/"+e);if(t){var n=t.object.rdev,i=Ue.ttys[n];i&&i.output&&i.output.length&&(r=!0)}}))}catch(e){}N=e,I=t,r&&ct("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.")}(),!t&&T)throw ot(e),"unwind";if(ve()&&!t){var r="program exited (with status: "+e+"), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)";d(r),I(r)}Ze(e)}var et=Qe;function tt(e){return"0x"+e.toString(16).padStart(8,"0")}function rt(e){if(e instanceof Ne||"unwind"==e)return B;de(),e instanceof WebAssembly.RuntimeError&&In()<=0&&I("Stack overflow detected. You can try increasing -sSTACK_SIZE (currently set to "+ae+")"),v(1,e)}var nt={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){T?nt.initWorker():nt.initMainThread()},initMainThread:function(){for(var e=32;e--;)nt.allocateUnusedWorker()},initWorker:function(){U=!1},setExitStatus:function(e){B=e},terminateAllThreads:function(){for(var e of($(!T,"Internal Error! terminateAllThreads() can only ever be called from main application thread!"),Object.values(nt.pthreads)))$(e),nt.returnWorkerToPool(e);for(var e of($(0===Object.keys(nt.pthreads).length),$(0===nt.runningWorkers.length),nt.unusedWorkers))$(!e.pthread_ptr),e.terminate();nt.unusedWorkers=[]},returnWorkerToPool:function(e){var t=e.pthread_ptr;delete nt.pthreads[t],nt.unusedWorkers.push(e),nt.runningWorkers.splice(nt.runningWorkers.indexOf(e),1),e.pthread_ptr=0,g&&e.unref(),Fn(t)},receiveObjectTransfer:function(e){},threadInitTLS:function(){nt.tlsInitFunctions.forEach((e=>e()))},loadWasmModuleToWorker:function(t,r){t.onmessage=e=>{var n,i=e.data,o=i.cmd;if(t.pthread_ptr&&(nt.currentProxiedOperationCallerThread=t.pthread_ptr),i.targetThread&&i.targetThread!=gn()){var a=nt.pthreads[i.targetThread];return a?a.postMessage(i,i.transferList):I('Internal error! Worker sent a message "'+o+'" to target pthread '+i.targetThread+", but that thread no longer exists!"),void(nt.currentProxiedOperationCallerThread=void 0)}"processProxyingQueue"===o?Wr(i.queue):"spawnThread"===o?xe(i):"cleanupThread"===o?Ie(i.thread):"killThread"===o?function(e){$(!T,"Internal Error! killThread() can only ever be called from main application thread!"),$(e,"Internal Error! Null pthread_ptr in killThread!");var t=nt.pthreads[e];delete nt.pthreads[e],t.terminate(),Fn(e),nt.runningWorkers.splice(nt.runningWorkers.indexOf(t),1),t.pthread_ptr=0}(i.thread):"cancelThread"===o?(n=i.thread,$(!T,"Internal Error! cancelThread() can only ever be called from main application thread!"),$(n,"Internal Error! Null pthread_ptr in cancelThread!"),nt.pthreads[n].postMessage({cmd:"cancel"})):"loaded"===o?(t.loaded=!0,g&&t.unref(),r&&r(t),t.runPthread&&t.runPthread()):"print"===o?N("Thread "+i.threadId+": "+i.text):"printErr"===o?I("Thread "+i.threadId+": "+i.text):"alert"===o?alert("Thread "+i.threadId+": "+i.text):"setimmediate"===i.target?t.postMessage(i):"callHandler"===o?l[i.handler](...i.args):o&&I("worker sent an unknown command "+o),nt.currentProxiedOperationCallerThread=void 0},t.onerror=e=>{var r="worker sent an error!";throw t.pthread_ptr&&(r="Pthread "+tt(t.pthread_ptr)+" sent an error!"),I(r+" "+e.filename+":"+e.lineno+": "+e.message),e},g&&(t.on("message",(function(e){t.onmessage({data:e})})),t.on("error",(function(e){t.onerror(e)})),t.on("detachedExit",(function(){}))),$(j instanceof WebAssembly.Memory,"WebAssembly memory should have been loaded by now!"),$(W instanceof WebAssembly.Module,"WebAssembly Module should have been loaded by now!");var n=[];for(var i of["onExit","onAbort","print","printErr"])l.hasOwnProperty(i)&&n.push(i);t.postMessage({cmd:"load",handlers:n,urlOrBlob:l.mainScriptUrlOrBlob||e,wasmMemory:j,wasmModule:W})},allocateUnusedWorker:function(){var e,t=P("moorhen.worker.js");e=new Worker(t),nt.unusedWorkers.push(e)},getNewWorker:function(){return 0==nt.unusedWorkers.length&&(I("Tried to spawn a new thread, but the thread pool is exhausted.\nThis might result in a deadlock unless some threads eventually exit or the code explicitly breaks out to the event loop.\nIf you want to increase the pool size, use setting `-sPTHREAD_POOL_SIZE=...`."),nt.allocateUnusedWorker(),nt.loadWasmModuleToWorker(nt.unusedWorkers[0])),nt.unusedWorkers.pop()}};function it(e){for(;e.length>0;)e.shift()(l)}function ot(e){if(T)return qr(2,0,e);try{et(e)}catch(e){rt(e)}}l.PThread=nt,l.establishStackSpace=function(){var e=gn(),t=a()[e+52>>2],r=t-a()[e+56>>2];$(0!=t),$(0!=r),$(t>r,"stackTop must be higher then stackMax"),On(t,r),Wn(t,r),Mn(t),ue()};var at=[];function st(e){var t=at[e];return t||(e>=at.length&&(at.length=e+1),at[e]=t=se.get(e)),$(se.get(e)==t,"JavaScript-side Wasm function table mirror is out of date!"),t}function ct(e){ct.shown||(ct.shown={}),ct.shown[e]||(ct.shown[e]=1,g&&(e="warning: "+e),I(e))}l.invokeEntryPoint=function(e,t){var r=st(e)(t);de(),ve()?nt.setExitStatus(r):Cn(r)};var ut=[];function dt(e){e.add_ref()}var lt=0;function ft(e){if(e.release_ref()&&!e.get_rethrown()){var t=e.get_destructor();t&&st(t)(e.excPtr),hn(e.excPtr)}}function ht(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(e){s()[this.ptr+4>>2]=e},this.get_type=function(){return s()[this.ptr+4>>2]},this.set_destructor=function(e){s()[this.ptr+8>>2]=e},this.get_destructor=function(){return s()[this.ptr+8>>2]},this.set_refcount=function(e){a()[this.ptr>>2]=e},this.set_caught=function(e){e=e?1:0,r()[this.ptr+12>>0]=e},this.get_caught=function(){return 0!=r()[this.ptr+12>>0]},this.set_rethrown=function(e){e=e?1:0,r()[this.ptr+13>>0]=e},this.get_rethrown=function(){return 0!=r()[this.ptr+13>>0]},this.init=function(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){Atomics.add(a(),this.ptr+0>>2,1)},this.release_ref=function(){var e=Atomics.sub(a(),this.ptr+0>>2,1);return $(e>0),1===e},this.set_adjusted_ptr=function(e){s()[this.ptr+16>>2]=e},this.get_adjusted_ptr=function(){return s()[this.ptr+16>>2]},this.get_exception_ptr=function(){if(jn(this.get_type()))return s()[this.excPtr>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}var mt=0;function pt(e,t,r,n){return T?qr(3,1,e,t,r,n):vt(e,t,r,n)}function vt(e,t,r,n){if("undefined"==typeof SharedArrayBuffer)return I("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var i=[];if(T&&0===i.length)return pt(e,t,r,n);var o={startRoutine:r,pthread_ptr:e,arg:n,transferList:i};return T?(o.cmd="spawnThread",postMessage(o,i),0):xe(o)}function _t(e,t,r){if(T)return qr(4,1,e,t,r);Je.varargs=r;try{var n=Je.getStreamFromFD(e);switch(t){case 0:return(o=Je.get())<0?-28:Xe.createStream(n,o).fd;case 1:case 2:case 6:case 7:return 0;case 3:return n.flags;case 4:var o=Je.get();return n.flags|=o,0;case 5:return o=Je.get(),i()[o+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return 28,a()[pn()>>2]=28,-1}}catch(e){if(void 0===Xe||!(e instanceof Xe.ErrnoError))throw e;return-e.errno}}function yt(e,t){if(T)return qr(5,1,e,t);try{var r=Je.getStreamFromFD(e);return Je.doStat(Xe.stat,r.path,t)}catch(e){if(void 0===Xe||!(e instanceof Xe.ErrnoError))throw e;return-e.errno}}function gt(e,t,r){if(T)return qr(6,1,e,t,r);Je.varargs=r;try{var n=Je.getStreamFromFD(e);switch(t){case 21509:case 21505:case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:case 21523:case 21524:return n.tty?0:-59;case 21519:if(!n.tty)return-59;var i=Je.get();return a()[i>>2]=0,0;case 21520:return n.tty?-28:-59;case 21531:return i=Je.get(),Xe.ioctl(n,t,i);default:return-28}}catch(e){if(void 0===Xe||!(e instanceof Xe.ErrnoError))throw e;return-e.errno}}function wt(e,t){if(T)return qr(7,1,e,t);try{return e=Je.getStr(e),Je.doStat(Xe.lstat,e,t)}catch(e){if(void 0===Xe||!(e instanceof Xe.ErrnoError))throw e;return-e.errno}}function Et(e,t,r){if(T)return qr(8,1,e,t,r);try{return t=Je.getStr(t),t=Je.calculateAt(e,t),"/"===(t=Le.normalize(t))[t.length-1]&&(t=t.substr(0,t.length-1)),Xe.mkdir(t,r,0),0}catch(e){if(void 0===Xe||!(e instanceof Xe.ErrnoError))throw e;return-e.errno}}function bt(e,t,r,n){if(T)return qr(9,1,e,t,r,n);try{t=Je.getStr(t);var i=256&n,o=4096&n;return $(!(n&=-6401),"unknown flags in __syscall_newfstatat: "+n),t=Je.calculateAt(e,t,o),Je.doStat(i?Xe.lstat:Xe.stat,t,r)}catch(e){if(void 0===Xe||!(e instanceof Xe.ErrnoError))throw e;return-e.errno}}function kt(e,t,r,n){if(T)return qr(10,1,e,t,r,n);Je.varargs=n;try{t=Je.getStr(t),t=Je.calculateAt(e,t);var i=n?Je.get():0;return Xe.open(t,r,i).fd}catch(e){if(void 0===Xe||!(e instanceof Xe.ErrnoError))throw e;return-e.errno}}function Tt(e,t){if(T)return qr(11,1,e,t);try{return e=Je.getStr(e),Je.doStat(Xe.stat,e,t)}catch(e){if(void 0===Xe||!(e instanceof Xe.ErrnoError))throw e;return-e.errno}}function St(e,t,r){if(T)return qr(12,1,e,t,r);try{return t=Je.getStr(t),t=Je.calculateAt(e,t),0===r?Xe.unlink(t):512===r?Xe.rmdir(t):Se("Invalid flags passed to unlinkat"),0}catch(e){if(void 0===Xe||!(e instanceof Xe.ErrnoError))throw e;return-e.errno}}var Pt={};function Ft(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function Ct(e){return this.fromWireType(a()[e>>2])}var Dt={},At={},Ot={},Rt=48,Mt=57;function Nt(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=Rt&&t<=Mt?"_"+e:e}function It(e,t){return e=Nt(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}function xt(e,t){var r=It(t,(function(e){this.name=t,this.message=e;var r=new Error(e).stack;void 0!==r&&(this.stack=this.toString()+"\n"+r.replace(/^Error(:[^\n]*)?\n/,""))}));return r.prototype=Object.create(e.prototype),r.prototype.constructor=r,r.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},r}var Lt=void 0;function jt(e){throw new Lt(e)}function Wt(e,t,r){function n(t){var n=r(t);n.length!==e.length&&jt("Mismatched type converter count");for(var i=0;i{At.hasOwnProperty(e)?i[t]=At[e]:(o.push(e),Dt.hasOwnProperty(e)||(Dt[e]=[]),Dt[e].push((()=>{i[t]=At[e],++a===o.length&&n(i)})))})),0===o.length&&n(i)}var Ut={};function Bt(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}var zt=void 0;function $t(e){for(var t="",r=e;n()[r];)t+=zt[n()[r++]];return t}var Ht=void 0;function Gt(e){throw new Ht(e)}function Vt(e,t,r={}){if(!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var n=t.name;if(e||Gt('type "'+n+'" must have a positive integer typeid pointer'),At.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;Gt("Cannot register type '"+n+"' twice")}if(At[e]=t,delete Ot[e],Dt.hasOwnProperty(e)){var i=Dt[e];delete Dt[e],i.forEach((e=>e()))}}function qt(e){Gt(e.$$.ptrType.registeredClass.name+" instance already deleted")}var Yt=!1;function Kt(e){}function Xt(e){e.count.value-=1,0===e.count.value&&function(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}(e)}function Jt(e,t,r){if(t===r)return e;if(void 0===r.baseClass)return null;var n=Jt(e,t,r.baseClass);return null===n?null:r.downcast(n)}var Zt={};var Qt=[];function er(){for(;Qt.length;){var e=Qt.pop();e.$$.deleteScheduled=!1,e.delete()}}var tr=void 0;var rr={};function nr(e,t){return t.ptrType&&t.ptr||jt("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&jt("Both smartPtrType and smartPtr must be specified"),t.count={value:1},or(Object.create(e,{$$:{value:t}}))}function ir(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var r=function(e,t){return t=function(e,t){for(void 0===t&&Gt("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}(e,t),rr[t]}(this.registeredClass,t);if(void 0!==r){if(0===r.$$.count.value)return r.$$.ptr=t,r.$$.smartPtr=e,r.clone();var n=r.clone();return this.destructor(e),n}function i(){return this.isSmartPointer?nr(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):nr(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var o,a=this.registeredClass.getActualType(t),s=Zt[a];if(!s)return i.call(this);o=this.isConst?s.constPointerType:s.pointerType;var c=Jt(t,this.registeredClass,o.registeredClass);return null===c?i.call(this):this.isSmartPointer?nr(o.registeredClass.instancePrototype,{ptrType:o,ptr:c,smartPtrType:this,smartPtr:e}):nr(o.registeredClass.instancePrototype,{ptrType:o,ptr:c})}function or(e){return"undefined"==typeof FinalizationRegistry?(or=e=>e,e):(Yt=new FinalizationRegistry((e=>{console.warn(e.leakWarning.stack.replace(/^Error: /,"")),Xt(e.$$)})),or=e=>{var t=e.$$;if(t.smartPtr){var r={$$:t},n=t.ptrType.registeredClass;r.leakWarning=new Error("Embind found a leaked C++ instance "+n.name+" <"+tt(t.ptr)+">.\nWe'll free it automatically in this case, but this functionality is not reliable across various environments.\nMake sure to invoke .delete() manually once you're done with the instance instead.\nOriginally allocated"),"captureStackTrace"in Error&&Error.captureStackTrace(r.leakWarning,ir),Yt.register(e,r,e)}return e},Kt=e=>Yt.unregister(e),or(e))}function ar(){}function sr(e,t,r){if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||Gt("Function '"+r+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[t].overloadTable+")!"),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[n.argCount]=n}}function cr(e,t,r){l.hasOwnProperty(e)?((void 0===r||void 0!==l[e].overloadTable&&void 0!==l[e].overloadTable[r])&&Gt("Cannot register public name '"+e+"' twice"),sr(l,e,e),l.hasOwnProperty(r)&&Gt("Cannot register multiple overloads of a function with the same number of arguments ("+r+")!"),l[e].overloadTable[r]=t):(l[e]=t,void 0!==r&&(l[e].numArguments=r))}function ur(e,t,r,n,i,o,a,s){this.name=e,this.constructor=t,this.instancePrototype=r,this.rawDestructor=n,this.baseClass=i,this.getActualType=o,this.upcast=a,this.downcast=s,this.pureVirtualFunctions=[]}function dr(e,t,r){for(;t!==r;)t.upcast||Gt("Expected null or instance of "+r.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function lr(e,t){if(null===t)return this.isReference&&Gt("null is not a valid "+this.name),0;t.$$||Gt('Cannot pass "'+Dr(t)+'" as a '+this.name),t.$$.ptr||Gt("Cannot pass deleted object as a pointer of type "+this.name);var r=t.$$.ptrType.registeredClass;return dr(t.$$.ptr,r,this.registeredClass)}function fr(e,t){var r;if(null===t)return this.isReference&&Gt("null is not a valid "+this.name),this.isSmartPointer?(r=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,r),r):0;t.$$||Gt('Cannot pass "'+Dr(t)+'" as a '+this.name),t.$$.ptr||Gt("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&Gt("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);var n=t.$$.ptrType.registeredClass;if(r=dr(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&Gt("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:Gt("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:r=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)r=t.$$.smartPtr;else{var i=t.clone();r=this.rawShare(r,Pr.toHandle((function(){i.delete()}))),null!==e&&e.push(this.rawDestructor,r)}break;default:Gt("Unsupporting sharing policy")}return r}function hr(e,t){if(null===t)return this.isReference&&Gt("null is not a valid "+this.name),0;t.$$||Gt('Cannot pass "'+Dr(t)+'" as a '+this.name),t.$$.ptr||Gt("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&Gt("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var r=t.$$.ptrType.registeredClass;return dr(t.$$.ptr,r,this.registeredClass)}function mr(e,t,r,n,i,o,a,s,c,u,d){this.name=e,this.registeredClass=t,this.isReference=r,this.isConst=n,this.isSmartPointer=i,this.pointeeType=o,this.sharingPolicy=a,this.rawGetPointee=s,this.rawConstructor=c,this.rawShare=u,this.rawDestructor=d,i||void 0!==t.baseClass?this.toWireType=fr:n?(this.toWireType=lr,this.destructorFunction=null):(this.toWireType=hr,this.destructorFunction=null)}function pr(e,t,r){l.hasOwnProperty(e)||jt("Replacing nonexistant public symbol"),void 0!==l[e].overloadTable&&void 0!==r?l[e].overloadTable[r]=t:(l[e]=t,l[e].argCount=r)}function vr(e,t){var r=(e=$t(e)).includes("j")?function(e,t){$(e.includes("j")||e.includes("p"),"getDynCaller should only be called with i64 sigs");var r=[];return function(){return r.length=0,Object.assign(r,arguments),function(e,t,r){return e.includes("j")?function(e,t,r){$("dynCall_"+e in l,"bad function pointer type - dynCall function not found for sig '"+e+"'"),r&&r.length?$(r.length===e.substring(1).replace(/j/g,"--").length):$(1==e.length);var n=l["dynCall_"+e];return r&&r.length?n.apply(null,[t].concat(r)):n.call(null,t)}(e,t,r):($(st(t),"missing table entry in dynCall: "+t),st(t).apply(null,r))}(e,t,r)}}(e,t):st(t);return"function"!=typeof r&&Gt("unknown function pointer with signature "+e+": "+t),r}var _r=void 0;function yr(e){var t=En(e),r=$t(t);return vn(t),r}function gr(e,t){var r=[],n={};throw t.forEach((function e(t){n[t]||At[t]||(Ot[t]?Ot[t].forEach(e):(r.push(t),n[t]=!0))})),new _r(e+": "+r.map(yr).join([", "]))}function wr(e,t){for(var r=[],n=0;n>2]);return r}function Er(e,t,r,n,i){var o=t.length;o<2&&Gt("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var a=null!==t[1]&&null!==r,s=!1,c=1;c0?", ":"")+l),f+=(u?"var rv = ":"")+"invoker(fn"+(l.length>0?", ":"")+l+");\n",s)f+="runDestructors(destructors);\n";else for(c=a?1:2;c4&&0==--Tr[e].refcount&&(Tr[e]=void 0,kr.push(e))}var Pr={toValue:e=>(e||Gt("Cannot use deleted val. handle = "+e),Tr[e].value),toHandle:e=>{switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=kr.length?kr.pop():Tr.length;return Tr[t]={refcount:1,value:e},t}}};function Fr(e,t,c){switch(t){case 0:return function(e){var t=c?r():n();return this.fromWireType(t[e])};case 1:return function(e){var t=c?i():o();return this.fromWireType(t[e>>1])};case 2:return function(e){var t=c?a():s();return this.fromWireType(t[e>>2])};default:throw new TypeError("Unknown integer type: "+e)}}function Cr(e,t){var r=At[e];return void 0===r&&Gt(t+" has unknown type "+yr(e)),r}function Dr(e){if(null===e)return"null";var t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():""+e}function Ar(e,t){switch(t){case 2:return function(e){return this.fromWireType((j.buffer!=H&&oe(j.buffer),J)[e>>2])};case 3:return function(e){return this.fromWireType(c()[e>>3])};default:throw new TypeError("Unknown float type: "+e)}}function Or(e,t,c){switch(t){case 0:return c?function(e){return r()[e]}:function(e){return n()[e]};case 1:return c?function(e){return i()[e>>1]}:function(e){return o()[e>>1]};case 2:return c?function(e){return a()[e>>2]}:function(e){return s()[e>>2]};default:throw new TypeError("Unknown integer type: "+e)}}var Rr="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function Mr(e,t){$(e%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");for(var r=e,a=r>>1,s=a+t/2;!(a>=s)&&o()[a];)++a;if((r=a<<1)-e>32&&Rr)return Rr.decode(n().slice(e,r));for(var c="",u=0;!(u>=t/2);++u){var d=i()[e+2*u>>1];if(0==d)break;c+=String.fromCharCode(d)}return c}function Nr(e,t,r){if($(t%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),$("number"==typeof r,"stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),void 0===r&&(r=2147483647),r<2)return 0;for(var n=t,o=(r-=2)<2*e.length?r/2:e.length,a=0;a>1]=s,t+=2}return i()[t>>1]=0,t-n}function Ir(e){return 2*e.length}function xr(e,t){$(e%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");for(var r=0,n="";!(r>=t/4);){var i=a()[e+4*r>>2];if(0==i)break;if(++r,i>=65536){var o=i-65536;n+=String.fromCharCode(55296|o>>10,56320|1023&o)}else n+=String.fromCharCode(i)}return n}function Lr(e,t,r){if($(t%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),$("number"==typeof r,"stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),void 0===r&&(r=2147483647),r<4)return 0;for(var n=t,i=n+r-4,o=0;o=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&e.charCodeAt(++o)),a()[t>>2]=s,(t+=4)+4>i)break}return a()[t>>2]=0,t-n}function jr(e){for(var t=0,r=0;r=55296&&n<=57343&&++r,t+=4}return t}function Wr(e){Atomics.store(a(),e>>2,1),gn()&&Pn(e),Atomics.compareExchange(a(),e>>2,1,0)}function Ur(e){return e%4==0&&(e%100!=0||e%400==0)}l.executeNotifiedProxyingQueue=Wr;var Br,zr=[0,31,60,91,121,152,182,213,244,274,305,335],$r=[0,31,59,90,120,151,181,212,243,273,304,334];function Hr(e,t,r,n,i,o,c){if(T)return qr(13,1,e,t,r,n,i,o,c);try{var u=Je.getStreamFromFD(n),d=Xe.mmap(u,e,i,t,r),l=d.ptr;return a()[o>>2]=d.allocated,s()[c>>2]=l,0}catch(e){if(void 0===Xe||!(e instanceof Xe.ErrnoError))throw e;return-e.errno}}function Gr(e,t,r,n,i,o){if(T)return qr(14,1,e,t,r,n,i,o);try{var a=Je.getStreamFromFD(i);2&r&&Je.doMsync(e,a,t,n,o),Xe.munmap(a)}catch(e){if(void 0===Xe||!(e instanceof Xe.ErrnoError))throw e;return-e.errno}}function Vr(e){var t=ie(e)+1,n=mn(t);return n&&re(e,r(),n,t),n}function qr(e,t){var r=arguments.length-2,n=arguments;if(r>19)throw"emscripten_proxy_to_main_thread_js: Too many arguments "+r+" to proxied function idx="+e+", maximum supported is 19!";return qe((()=>{for(var i=r,o=Nn(8*i),a=o>>3,s=0;s{var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:()=>performance.timeOrigin+performance.now();var Yr=[];function Kr(e){try{return j.grow(e-H.byteLength+65535>>>16),oe(j.buffer),1}catch(t){I("emscripten_realloc_buffer: Attempted to grow heap from "+H.byteLength+" bytes to "+e+" bytes, but got error: "+t)}}var Xr={};function Jr(){if(!Jr.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:p||"./this.program"};for(var t in Xr)void 0===Xr[t]?delete e[t]:e[t]=Xr[t];var r=[];for(var t in e)r.push(t+"="+e[t]);Jr.strings=r}return Jr.strings}function Zr(e,t){if(T)return qr(15,1,e,t);var n=0;return Jr().forEach((function(i,o){var a=t+n;s()[e+4*o>>2]=a,function(e,t,n){for(var i=0;i>0]=e.charCodeAt(i);r()[t>>0]=0}(i,a),n+=i.length+1})),0}function Qr(e,t){if(T)return qr(16,1,e,t);var r=Jr();s()[e>>2]=r.length;var n=0;return r.forEach((function(e){n+=e.length+1})),s()[t>>2]=n,0}function en(e){if(T)return qr(17,1,e);try{var t=Je.getStreamFromFD(e);return Xe.close(t),0}catch(e){if(void 0===Xe||!(e instanceof Xe.ErrnoError))throw e;return e.errno}}function tn(e,t){if(T)return qr(18,1,e,t);try{var n=Je.getStreamFromFD(e),i=n.tty?2:Xe.isDir(n.mode)?3:Xe.isLink(n.mode)?7:4;return r()[t>>0]=i,0}catch(e){if(void 0===Xe||!(e instanceof Xe.ErrnoError))throw e;return e.errno}}function rn(e,t,n,i){if(T)return qr(19,1,e,t,n,i);try{var o=function(e,t,n,i){for(var o=0,a=0;a>2],u=s()[t+4>>2];t+=8;var d=Xe.read(e,r(),c,u,undefined);if(d<0)return-1;if(o+=d,d>2]=o,0}catch(e){if(void 0===Xe||!(e instanceof Xe.ErrnoError))throw e;return e.errno}}function nn(e,t,r,n,i){if(T)return qr(20,1,e,t,r,n,i);try{var o=(u=r,$((c=t)==c>>>0||c==(0|c)),$(u===(0|u)),u+2097152>>>0<4194305-!!c?(c>>>0)+4294967296*u:NaN);if(isNaN(o))return 61;var s=Je.getStreamFromFD(e);return Xe.llseek(s,o,n),Ce=[s.position>>>0,(Fe=s.position,+Math.abs(Fe)>=1?Fe>0?(0|Math.min(+Math.floor(Fe/4294967296),4294967295))>>>0:~~+Math.ceil((Fe-+(~~Fe>>>0))/4294967296)>>>0:0)],a()[i>>2]=Ce[0],a()[i+4>>2]=Ce[1],s.getdents&&0===o&&0===n&&(s.getdents=null),0}catch(e){if(void 0===Xe||!(e instanceof Xe.ErrnoError))throw e;return e.errno}var c,u}function on(e,t,n,i){if(T)return qr(21,1,e,t,n,i);try{var o=function(e,t,n,i){for(var o=0,a=0;a>2],u=s()[t+4>>2];t+=8;var d=Xe.write(e,r(),c,u,undefined);if(d<0)return-1;o+=d}return o}(Je.getStreamFromFD(e),t,n);return s()[i>>2]=o,0}catch(e){if(void 0===Xe||!(e instanceof Xe.ErrnoError))throw e;return e.errno}}var an=[31,29,31,30,31,30,31,31,30,31,30,31],sn=[31,28,31,30,31,30,31,31,30,31,30,31];function cn(e,t,n,i){var o=a()[i+40>>2],s={tm_sec:a()[i>>2],tm_min:a()[i+4>>2],tm_hour:a()[i+8>>2],tm_mday:a()[i+12>>2],tm_mon:a()[i+16>>2],tm_year:a()[i+20>>2],tm_wday:a()[i+24>>2],tm_yday:a()[i+28>>2],tm_isdst:a()[i+32>>2],tm_gmtoff:a()[i+36>>2],tm_zone:o?te(o):""},c=te(n),u={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var d in u)c=c.replace(new RegExp(d,"g"),u[d]);var l=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],f=["January","February","March","April","May","June","July","August","September","October","November","December"];function h(e,t,r){for(var n="number"==typeof e?e.toString():e||"";n.length0?1:0}var n;return 0===(n=r(e.getFullYear()-t.getFullYear()))&&0===(n=r(e.getMonth()-t.getMonth()))&&(n=r(e.getDate()-t.getDate())),n}function v(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function _(e){var t=function(e,t){for(var r=new Date(e.getTime());t>0;){var n=Ur(r.getFullYear()),i=r.getMonth(),o=(n?an:sn)[i];if(!(t>o-r.getDate()))return r.setDate(r.getDate()+t),r;t-=o-r.getDate()+1,r.setDate(1),i<11?r.setMonth(i+1):(r.setMonth(0),r.setFullYear(r.getFullYear()+1))}return r}(new Date(e.tm_year+1900,0,1),e.tm_yday),r=new Date(t.getFullYear(),0,4),n=new Date(t.getFullYear()+1,0,4),i=v(r),o=v(n);return p(i,t)<=0?p(o,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var y={"%a":function(e){return l[e.tm_wday].substring(0,3)},"%A":function(e){return l[e.tm_wday]},"%b":function(e){return f[e.tm_mon].substring(0,3)},"%B":function(e){return f[e.tm_mon]},"%C":function(e){return m((e.tm_year+1900)/100|0,2)},"%d":function(e){return m(e.tm_mday,2)},"%e":function(e){return h(e.tm_mday,2," ")},"%g":function(e){return _(e).toString().substring(2)},"%G":function(e){return _(e)},"%H":function(e){return m(e.tm_hour,2)},"%I":function(e){var t=e.tm_hour;return 0==t?t=12:t>12&&(t-=12),m(t,2)},"%j":function(e){return m(e.tm_mday+function(e,t){for(var r=0,n=0;n<=t;r+=e[n++]);return r}(Ur(e.tm_year+1900)?an:sn,e.tm_mon-1),3)},"%m":function(e){return m(e.tm_mon+1,2)},"%M":function(e){return m(e.tm_min,2)},"%n":function(){return"\n"},"%p":function(e){return e.tm_hour>=0&&e.tm_hour<12?"AM":"PM"},"%S":function(e){return m(e.tm_sec,2)},"%t":function(){return"\t"},"%u":function(e){return e.tm_wday||7},"%U":function(e){var t=e.tm_yday+7-e.tm_wday;return m(Math.floor(t/7),2)},"%V":function(e){var t=Math.floor((e.tm_yday+7-(e.tm_wday+6)%7)/7);if((e.tm_wday+371-e.tm_yday-2)%7<=2&&t++,t){if(53==t){var r=(e.tm_wday+371-e.tm_yday)%7;4==r||3==r&&Ur(e.tm_year)||(t=1)}}else{t=52;var n=(e.tm_wday+7-e.tm_yday-1)%7;(4==n||5==n&&Ur(e.tm_year%400-1))&&t++}return m(t,2)},"%w":function(e){return e.tm_wday},"%W":function(e){var t=e.tm_yday+7-(e.tm_wday+6)%7;return m(Math.floor(t/7),2)},"%y":function(e){return(e.tm_year+1900).toString().substring(2)},"%Y":function(e){return e.tm_year+1900},"%z":function(e){var t=e.tm_gmtoff,r=t>=0;return t=(t=Math.abs(t)/60)/60*100+t%60,(r?"+":"-")+String("0000"+t).slice(-4)},"%Z":function(e){return e.tm_zone},"%%":function(){return"%"}};for(var d in c=c.replace(/%%/g,"\0\0"),y)c.includes(d)&&(c=c.replace(new RegExp(d,"g"),y[d](s)));var g=We(c=c.replace(/\0\0/g,"%"),!1);return g.length>t?0:(function(e,t){$(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),r().set(e,t)}(g,e),g.length-1)}nt.init();var un=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=Xe.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n};Object.defineProperties(un.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return Xe.isDir(this.mode)}},isDevice:{get:function(){return Xe.isChrdev(this.mode)}}}),Xe.FSNode=un,Xe.staticInit(),l.FS_createPath=Xe.createPath,l.FS_createDataFile=Xe.createDataFile,l.FS_createPreloadedFile=Xe.createPreloadedFile,l.FS_unlink=Xe.unlink,l.FS_createLazyFile=Xe.createLazyFile,l.FS_createDevice=Xe.createDevice,g&&Ge.staticInit(),He={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},Lt=l.InternalError=xt(Error,"InternalError"),function(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);zt=e}(),Ht=l.BindingError=xt(Error,"BindingError"),ar.prototype.isAliasOf=function(e){if(!(this instanceof ar))return!1;if(!(e instanceof ar))return!1;for(var t=this.$$.ptrType.registeredClass,r=this.$$.ptr,n=e.$$.ptrType.registeredClass,i=e.$$.ptr;t.baseClass;)r=t.upcast(r),t=t.baseClass;for(;n.baseClass;)i=n.upcast(i),n=n.baseClass;return t===n&&r===i},ar.prototype.clone=function(){if(this.$$.ptr||qt(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e,t=or(Object.create(Object.getPrototypeOf(this),{$$:{value:(e=this.$$,{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType})}}));return t.$$.count.value+=1,t.$$.deleteScheduled=!1,t},ar.prototype.delete=function(){this.$$.ptr||qt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Gt("Object already scheduled for deletion"),Kt(this),Xt(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},ar.prototype.isDeleted=function(){return!this.$$.ptr},ar.prototype.deleteLater=function(){return this.$$.ptr||qt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Gt("Object already scheduled for deletion"),Qt.push(this),1===Qt.length&&tr&&tr(er),this.$$.deleteScheduled=!0,this},l.getInheritedInstanceCount=function(){return Object.keys(rr).length},l.getLiveInheritedInstances=function(){var e=[];for(var t in rr)rr.hasOwnProperty(t)&&e.push(rr[t]);return e},l.flushPendingDeletes=er,l.setDelayFunction=function(e){tr=e,Qt.length&&tr&&tr(er)},mr.prototype.getPointee=function(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},mr.prototype.destructor=function(e){this.rawDestructor&&this.rawDestructor(e)},mr.prototype.argPackAdvance=8,mr.prototype.readValueFromPointer=Ct,mr.prototype.deleteObject=function(e){null!==e&&e.delete()},mr.prototype.fromWireType=ir,_r=l.UnboundTypeError=xt(Error,"UnboundTypeError"),l.count_emval_handles=function(){for(var e=0,t=5;t0),ft(ut.pop()),mt=0},__cxa_find_matching_catch_2:function(){var e=mt;if(!e)return yn(0),0;var t=new ht(e);t.set_adjusted_ptr(e);var r=t.get_type();if(!r)return yn(0),e;for(var n=0;n>>=0;var t=Tn(),r=Sn();Se("stack overflow (Attempt to set SP to "+tt(e)+", with stack limits ["+tt(r)+" - "+tt(t)+"]). If you require more stack space build with -sSTACK_SIZE=")},__pthread_create_js:vt,__resumeException:function(e){throw mt||(mt=e),e},__syscall_fcntl64:_t,__syscall_fstat64:yt,__syscall_ioctl:gt,__syscall_lstat64:wt,__syscall_mkdirat:Et,__syscall_newfstatat:bt,__syscall_openat:kt,__syscall_stat64:Tt,__syscall_unlinkat:St,_embind_finalize_value_array:function(e){var t=Pt[e];delete Pt[e];var r=t.elements,n=r.length,i=r.map((function(e){return e.getterReturnType})).concat(r.map((function(e){return e.setterArgumentType}))),o=t.rawConstructor,a=t.rawDestructor;Wt([e],i,(function(e){return r.forEach(((t,r)=>{var i=e[r],o=t.getter,a=t.getterContext,s=e[r+n],c=t.setter,u=t.setterContext;t.read=e=>i.fromWireType(o(a,e)),t.write=(e,t)=>{var r=[];c(u,e,s.toWireType(r,t)),Ft(r)}})),[{name:t.name,fromWireType:function(e){for(var t=new Array(n),i=0;i>c])},destructorFunction:null})},_embind_register_class:function(e,t,r,n,i,o,a,s,c,u,d,l,f){d=$t(d),o=vr(i,o),s&&(s=vr(a,s)),u&&(u=vr(c,u)),f=vr(l,f);var h=Nt(d);cr(h,(function(){gr("Cannot construct "+d+" due to unbound types",[n])})),Wt([e,t,r],n?[n]:[],(function(t){var r,i;t=t[0],i=n?(r=t.registeredClass).instancePrototype:ar.prototype;var a=It(h,(function(){if(Object.getPrototypeOf(this)!==c)throw new Ht("Use 'new' to construct "+d);if(void 0===l.constructor_body)throw new Ht(d+" has no accessible constructor");var e=l.constructor_body[arguments.length];if(void 0===e)throw new Ht("Tried to invoke ctor of "+d+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(l.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)})),c=Object.create(i,{constructor:{value:a}});a.prototype=c;var l=new ur(d,a,c,f,r,o,s,u),m=new mr(d,l,!0,!1,!1),p=new mr(d+"*",l,!1,!1,!1),v=new mr(d+" const*",l,!1,!0,!1);return Zt[e]={pointerType:p,constPointerType:v},pr(h,a),[m,p,v]}))},_embind_register_class_constructor:function(e,t,r,n,i,o){$(t>0);var a=wr(t,r);i=vr(n,i),Wt([],[e],(function(e){var r="constructor "+(e=e[0]).name;if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[t-1])throw new Ht("Cannot register multiple constructors with identical number of parameters ("+(t-1)+") for class '"+e.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return e.registeredClass.constructor_body[t-1]=()=>{gr("Cannot construct "+e.name+" due to unbound types",a)},Wt([],a,(function(n){return n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=Er(r,n,null,i,o),[]})),[]}))},_embind_register_class_function:function(e,t,r,n,i,o,a,s){var c=wr(r,n);t=$t(t),o=vr(i,o),Wt([],[e],(function(e){var n=(e=e[0]).name+"."+t;function i(){gr("Cannot call "+n+" due to unbound types",c)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(t);var u=e.registeredClass.instancePrototype,d=u[t];return void 0===d||void 0===d.overloadTable&&d.className!==e.name&&d.argCount===r-2?(i.argCount=r-2,i.className=e.name,u[t]=i):(sr(u,t,n),u[t].overloadTable[r-2]=i),Wt([],c,(function(i){var s=Er(n,i,e,o,a);return void 0===u[t].overloadTable?(s.argCount=r-2,u[t]=s):u[t].overloadTable[r-2]=s,[]})),[]}))},_embind_register_class_property:function(e,t,r,n,i,o,a,s,c,u){t=$t(t),i=vr(n,i),Wt([],[e],(function(e){var n=(e=e[0]).name+"."+t,d={get:function(){gr("Cannot access "+n+" due to unbound types",[r,a])},enumerable:!0,configurable:!0};return d.set=c?()=>{gr("Cannot access "+n+" due to unbound types",[r,a])}:e=>{Gt(n+" is a read-only property")},Object.defineProperty(e.registeredClass.instancePrototype,t,d),Wt([],c?[r,a]:[r],(function(r){var a=r[0],d={get:function(){var t=br(this,e,n+" getter");return a.fromWireType(i(o,t))},enumerable:!0};if(c){c=vr(s,c);var l=r[1];d.set=function(t){var r=br(this,e,n+" setter"),i=[];c(u,r,l.toWireType(i,t)),Ft(i)}}return Object.defineProperty(e.registeredClass.instancePrototype,t,d),[]})),[]}))},_embind_register_emval:function(e,t){Vt(e,{name:t=$t(t),fromWireType:function(e){var t=Pr.toValue(e);return Sr(e),t},toWireType:function(e,t){return Pr.toHandle(t)},argPackAdvance:8,readValueFromPointer:Ct,destructorFunction:null})},_embind_register_enum:function(e,t,r,n){var i=Bt(r);function o(){}t=$t(t),o.values={},Vt(e,{name:t,constructor:o,fromWireType:function(e){return this.constructor.values[e]},toWireType:function(e,t){return t.value},argPackAdvance:8,readValueFromPointer:Fr(t,i,n),destructorFunction:null}),cr(t,o)},_embind_register_enum_value:function(e,t,r){var n=Cr(e,"enum");t=$t(t);var i=n.constructor,o=Object.create(n.constructor.prototype,{value:{value:r},constructor:{value:It(n.name+"_"+t,(function(){}))}});i.values[r]=o,i[t]=o},_embind_register_float:function(e,t,r){var n=Bt(r);Vt(e,{name:t=$t(t),fromWireType:function(e){return e},toWireType:function(e,t){if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError('Cannot convert "'+Dr(t)+'" to '+this.name);return t},argPackAdvance:8,readValueFromPointer:Ar(t,n),destructorFunction:null})},_embind_register_function:function(e,t,r,n,i,o){var a=wr(t,r);e=$t(e),i=vr(n,i),cr(e,(function(){gr("Cannot call "+e+" due to unbound types",a)}),t-1),Wt([],a,(function(r){var n=[r[0],null].concat(r.slice(1));return pr(e,Er(e,n,null,i,o),t-1),[]}))},_embind_register_integer:function(e,t,r,n,i){t=$t(t),-1===i&&(i=4294967295);var o=Bt(r),a=e=>e;if(0===n){var s=32-8*r;a=e=>e<>>s}var c=t.includes("unsigned"),u=(e,r)=>{if("number"!=typeof e&&"boolean"!=typeof e)throw new TypeError('Cannot convert "'+Dr(e)+'" to '+r);if(ei)throw new TypeError('Passing a number "'+Dr(e)+'" from JS side to C/C++ side to an argument of type "'+t+'", which is outside the valid range ['+n+", "+i+"]!")};Vt(e,{name:t,fromWireType:a,toWireType:c?function(e,t){return u(t,this.name),t>>>0}:function(e,t){return u(t,this.name),t},argPackAdvance:8,readValueFromPointer:Or(t,o,0!==n),destructorFunction:null})},_embind_register_memory_view:function(e,t,r){var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function i(e){e>>=2;var t=s(),r=t[e],i=t[e+1];return new n(H,i,r)}Vt(e,{name:r=$t(r),fromWireType:i,argPackAdvance:8,readValueFromPointer:i},{ignoreDuplicateRegistrations:!0})},_embind_register_std_string:function(e,t){var r="std::string"===(t=$t(t));Vt(e,{name:t,fromWireType:function(e){var t,i=s()[e>>2],o=e+4;if(r)for(var a=o,c=0;c<=i;++c){var u=o+c;if(c==i||0==n()[u]){var d=te(a,u-a);void 0===t?t=d:(t+=String.fromCharCode(0),t+=d),a=u+1}}else{var l=new Array(i);for(c=0;c>2]=i,r&&o)ne(t,c,i+1);else if(o)for(var u=0;u255&&(vn(c),Gt("String has UTF-16 code units that do not fit in 8 bits")),n()[c+u]=d}else for(u=0;uo(),u=1):4===t&&(n=xr,i=Lr,c=jr,a=()=>s(),u=2),Vt(e,{name:r,fromWireType:function(e){for(var r,i=s()[e>>2],o=a(),c=e+4,d=0;d<=i;++d){var l=e+4+d*t;if(d==i||0==o[l>>u]){var f=n(c,l-c);void 0===r?r=f:(r+=String.fromCharCode(0),r+=f),c=l+t}}return vn(e),r},toWireType:function(e,n){"string"!=typeof n&&Gt("Cannot pass non-string to C++ string type "+r);var o=c(n),a=mn(4+o+t);return s()[a>>2]=o>>u,i(n,a+4,o+t),null!==e&&e.push(vn,a),a},argPackAdvance:8,readValueFromPointer:Ct,destructorFunction:function(e){vn(e)}})},_embind_register_value_array:function(e,t,r,n,i,o){Pt[e]={name:$t(t),rawConstructor:vr(r,n),rawDestructor:vr(i,o),elements:[]}},_embind_register_value_array_element:function(e,t,r,n,i,o,a,s,c){Pt[e].elements.push({getterReturnType:t,getter:vr(r,n),getterContext:i,setterArgumentType:o,setter:vr(a,s),setterContext:c})},_embind_register_value_object:function(e,t,r,n,i,o){Ut[e]={name:$t(t),rawConstructor:vr(r,n),rawDestructor:vr(i,o),fields:[]}},_embind_register_value_object_field:function(e,t,r,n,i,o,a,s,c,u){Ut[e].fields.push({fieldName:$t(t),getterReturnType:r,getter:vr(n,i),getterContext:o,setterArgumentType:a,setter:vr(s,c),setterContext:u})},_embind_register_void:function(e,t){Vt(e,{isVoid:!0,name:t=$t(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},_emscripten_default_pthread_stack_size:function(){return 2097152},_emscripten_get_now_is_monotonic:function(){return!0},_emscripten_notify_task_queue:function(e,t,r,n){if(e==t)setTimeout((()=>Wr(n)));else if(T)postMessage({targetThread:e,cmd:"processProxyingQueue",queue:n});else{var i=nt.pthreads[e];if(!i)return void I("Cannot send message to thread with ID "+e+", unknown thread ID!");i.postMessage({cmd:"processProxyingQueue",queue:n})}return 1},_emscripten_set_offscreencanvas_size:function(e,t,r){return I("emscripten_set_offscreencanvas_size: Build with -sOFFSCREENCANVAS_SUPPORT=1 to enable transferring canvases to pthreads."),-1},_emval_decref:Sr,_emval_incref:function(e){e>4&&(Tr[e].refcount+=1)},_emval_take_value:function(e,t){var r=(e=Cr(e,"_emval_take_value")).readValueFromPointer(t);return Pr.toHandle(r)},_localtime_js:function(e,t){var r,n=new Date(1e3*(r=e,s()[r>>2]+4294967296*a()[r+4>>2]));a()[t>>2]=n.getSeconds(),a()[t+4>>2]=n.getMinutes(),a()[t+8>>2]=n.getHours(),a()[t+12>>2]=n.getDate(),a()[t+16>>2]=n.getMonth(),a()[t+20>>2]=n.getFullYear()-1900,a()[t+24>>2]=n.getDay();var i=0|function(e){return(Ur(e.getFullYear())?zr:$r)[e.getMonth()]+e.getDate()-1}(n);a()[t+28>>2]=i,a()[t+36>>2]=-60*n.getTimezoneOffset();var o=new Date(n.getFullYear(),0,1),c=new Date(n.getFullYear(),6,1).getTimezoneOffset(),u=o.getTimezoneOffset(),d=0|(c!=u&&n.getTimezoneOffset()==Math.min(u,c));a()[t+32>>2]=d},_mmap_js:Hr,_munmap_js:Gr,_tzset_js:function(e,t,r){var n=(new Date).getFullYear(),i=new Date(n,0,1),o=new Date(n,6,1),c=i.getTimezoneOffset(),u=o.getTimezoneOffset(),d=Math.max(c,u);function l(e){var t=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}s()[e>>2]=60*d,a()[t>>2]=Number(c!=u);var f=l(i),h=l(o),m=Vr(f),p=Vr(h);u>2]=m,s()[r+4>>2]=p):(s()[r>>2]=p,s()[r+4>>2]=m)},abort:function(){Se("native code called abort()")},emscripten_check_blocking_allowed:function(){g||y||ct("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")},emscripten_date_now:function(){return Date.now()},emscripten_get_heap_max:function(){return 2147483648},emscripten_get_now:Br,emscripten_memcpy_big:function(e,t,r){n().copyWithin(e,t,t+r)},emscripten_num_logical_cores:function(){return g?require("os").cpus().length:navigator.hardwareConcurrency},emscripten_receive_on_main_thread_js:function(e,t,r){Yr.length=t;for(var n=r>>3,i=0;i>>=0)<=t)return!1;var r,i=2147483648;if(e>i)return I("Cannot enlarge memory, asked to go up to "+e+" bytes, but the limit is "+i+" bytes!"),!1;for(var o=1;o<=4;o*=2){var a=t*(1+.2/o);a=Math.min(a,e+100663296);var s=Math.min(i,(r=Math.max(e,a))+(65536-r%65536)%65536),c=Br(),u=Kr(s),d=Br();if(N("Heap resize call from "+t+" to "+s+" took "+(d-c)+" msecs. Success: "+!!u),u)return!0}return I("Failed to grow the heap from "+t+" bytes to "+s+" bytes, not enough memory!"),!1},emscripten_unwind_to_js_event_loop:function(){throw"unwind"},environ_get:Zr,environ_sizes_get:Qr,exit:et,fd_close:en,fd_fdstat_get:tn,fd_read:rn,fd_seek:nn,fd_write:on,invoke_ddi:function(e,t,r){var n=Rn();try{return st(e)(t,r)}catch(e){if(Mn(n),e!==e+0)throw e;Dn(1,0)}},invoke_di:function(e,t){var r=Rn();try{return st(e)(t)}catch(e){if(Mn(r),e!==e+0)throw e;Dn(1,0)}},invoke_did:function(e,t,r){var n=Rn();try{return st(e)(t,r)}catch(e){if(Mn(n),e!==e+0)throw e;Dn(1,0)}},invoke_didi:function(e,t,r,n){var i=Rn();try{return st(e)(t,r,n)}catch(e){if(Mn(i),e!==e+0)throw e;Dn(1,0)}},invoke_dii:function(e,t,r){var n=Rn();try{return st(e)(t,r)}catch(e){if(Mn(n),e!==e+0)throw e;Dn(1,0)}},invoke_diidiiii:function(e,t,r,n,i,o,a,s){var c=Rn();try{return st(e)(t,r,n,i,o,a,s)}catch(e){if(Mn(c),e!==e+0)throw e;Dn(1,0)}},invoke_diii:function(e,t,r,n){var i=Rn();try{return st(e)(t,r,n)}catch(e){if(Mn(i),e!==e+0)throw e;Dn(1,0)}},invoke_diiid:function(e,t,r,n,i){var o=Rn();try{return st(e)(t,r,n,i)}catch(e){if(Mn(o),e!==e+0)throw e;Dn(1,0)}},invoke_diiidi:function(e,t,r,n,i,o){var a=Rn();try{return st(e)(t,r,n,i,o)}catch(e){if(Mn(a),e!==e+0)throw e;Dn(1,0)}},invoke_diiif:function(e,t,r,n,i){var o=Rn();try{return st(e)(t,r,n,i)}catch(e){if(Mn(o),e!==e+0)throw e;Dn(1,0)}},invoke_diiii:function(e,t,r,n,i){var o=Rn();try{return st(e)(t,r,n,i)}catch(e){if(Mn(o),e!==e+0)throw e;Dn(1,0)}},invoke_diiiii:function(e,t,r,n,i,o){var a=Rn();try{return st(e)(t,r,n,i,o)}catch(e){if(Mn(a),e!==e+0)throw e;Dn(1,0)}},invoke_diiiiid:function(e,t,r,n,i,o,a){var s=Rn();try{return st(e)(t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_diiiiiii:function(e,t,r,n,i,o,a,s){var c=Rn();try{return st(e)(t,r,n,i,o,a,s)}catch(e){if(Mn(c),e!==e+0)throw e;Dn(1,0)}},invoke_fi:function(e,t){var r=Rn();try{return st(e)(t)}catch(e){if(Mn(r),e!==e+0)throw e;Dn(1,0)}},invoke_fii:function(e,t,r){var n=Rn();try{return st(e)(t,r)}catch(e){if(Mn(n),e!==e+0)throw e;Dn(1,0)}},invoke_fiiffii:function(e,t,r,n,i,o,a){var s=Rn();try{return st(e)(t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_fiii:function(e,t,r,n){var i=Rn();try{return st(e)(t,r,n)}catch(e){if(Mn(i),e!==e+0)throw e;Dn(1,0)}},invoke_fiiifif:function(e,t,r,n,i,o,a){var s=Rn();try{return st(e)(t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_fiiii:function(e,t,r,n,i){var o=Rn();try{return st(e)(t,r,n,i)}catch(e){if(Mn(o),e!==e+0)throw e;Dn(1,0)}},invoke_fiiiif:function(e,t,r,n,i,o){var a=Rn();try{return st(e)(t,r,n,i,o)}catch(e){if(Mn(a),e!==e+0)throw e;Dn(1,0)}},invoke_i:function(e){var t=Rn();try{return st(e)()}catch(e){if(Mn(t),e!==e+0)throw e;Dn(1,0)}},invoke_idi:function(e,t,r){var n=Rn();try{return st(e)(t,r)}catch(e){if(Mn(n),e!==e+0)throw e;Dn(1,0)}},invoke_ii:function(e,t){var r=Rn();try{return st(e)(t)}catch(e){if(Mn(r),e!==e+0)throw e;Dn(1,0)}},invoke_iid:function(e,t,r){var n=Rn();try{return st(e)(t,r)}catch(e){if(Mn(n),e!==e+0)throw e;Dn(1,0)}},invoke_iidd:function(e,t,r,n){var i=Rn();try{return st(e)(t,r,n)}catch(e){if(Mn(i),e!==e+0)throw e;Dn(1,0)}},invoke_iidddd:function(e,t,r,n,i,o){var a=Rn();try{return st(e)(t,r,n,i,o)}catch(e){if(Mn(a),e!==e+0)throw e;Dn(1,0)}},invoke_iidddii:function(e,t,r,n,i,o,a){var s=Rn();try{return st(e)(t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_iidddiii:function(e,t,r,n,i,o,a,s){var c=Rn();try{return st(e)(t,r,n,i,o,a,s)}catch(e){if(Mn(c),e!==e+0)throw e;Dn(1,0)}},invoke_iiddiiiiii:function(e,t,r,n,i,o,a,s,c,u){var d=Rn();try{return st(e)(t,r,n,i,o,a,s,c,u)}catch(e){if(Mn(d),e!==e+0)throw e;Dn(1,0)}},invoke_iidii:function(e,t,r,n,i){var o=Rn();try{return st(e)(t,r,n,i)}catch(e){if(Mn(o),e!==e+0)throw e;Dn(1,0)}},invoke_iif:function(e,t,r){var n=Rn();try{return st(e)(t,r)}catch(e){if(Mn(n),e!==e+0)throw e;Dn(1,0)}},invoke_iifffi:function(e,t,r,n,i,o){var a=Rn();try{return st(e)(t,r,n,i,o)}catch(e){if(Mn(a),e!==e+0)throw e;Dn(1,0)}},invoke_iii:function(e,t,r){var n=Rn();try{return st(e)(t,r)}catch(e){if(Mn(n),e!==e+0)throw e;Dn(1,0)}},invoke_iiid:function(e,t,r,n){var i=Rn();try{return st(e)(t,r,n)}catch(e){if(Mn(i),e!==e+0)throw e;Dn(1,0)}},invoke_iiidd:function(e,t,r,n,i){var o=Rn();try{return st(e)(t,r,n,i)}catch(e){if(Mn(o),e!==e+0)throw e;Dn(1,0)}},invoke_iiidi:function(e,t,r,n,i){var o=Rn();try{return st(e)(t,r,n,i)}catch(e){if(Mn(o),e!==e+0)throw e;Dn(1,0)}},invoke_iiidii:function(e,t,r,n,i,o){var a=Rn();try{return st(e)(t,r,n,i,o)}catch(e){if(Mn(a),e!==e+0)throw e;Dn(1,0)}},invoke_iiif:function(e,t,r,n){var i=Rn();try{return st(e)(t,r,n)}catch(e){if(Mn(i),e!==e+0)throw e;Dn(1,0)}},invoke_iiiffffffffffff:function(e,t,r,n,i,o,a,s,c,u,d,l,f,h,m){var p=Rn();try{return st(e)(t,r,n,i,o,a,s,c,u,d,l,f,h,m)}catch(e){if(Mn(p),e!==e+0)throw e;Dn(1,0)}},invoke_iiifffii:function(e,t,r,n,i,o,a,s){var c=Rn();try{return st(e)(t,r,n,i,o,a,s)}catch(e){if(Mn(c),e!==e+0)throw e;Dn(1,0)}},invoke_iiii:function(e,t,r,n){var i=Rn();try{return st(e)(t,r,n)}catch(e){if(Mn(i),e!==e+0)throw e;Dn(1,0)}},invoke_iiiid:function(e,t,r,n,i){var o=Rn();try{return st(e)(t,r,n,i)}catch(e){if(Mn(o),e!==e+0)throw e;Dn(1,0)}},invoke_iiiidd:function(e,t,r,n,i,o){var a=Rn();try{return st(e)(t,r,n,i,o)}catch(e){if(Mn(a),e!==e+0)throw e;Dn(1,0)}},invoke_iiiidii:function(e,t,r,n,i,o,a){var s=Rn();try{return st(e)(t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_iiiif:function(e,t,r,n,i){var o=Rn();try{return st(e)(t,r,n,i)}catch(e){if(Mn(o),e!==e+0)throw e;Dn(1,0)}},invoke_iiiifff:function(e,t,r,n,i,o,a){var s=Rn();try{return st(e)(t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiffff:function(e,t,r,n,i,o,a,s){var c=Rn();try{return st(e)(t,r,n,i,o,a,s)}catch(e){if(Mn(c),e!==e+0)throw e;Dn(1,0)}},invoke_iiiifffiff:function(e,t,r,n,i,o,a,s,c,u){var d=Rn();try{return st(e)(t,r,n,i,o,a,s,c,u)}catch(e){if(Mn(d),e!==e+0)throw e;Dn(1,0)}},invoke_iiiii:function(e,t,r,n,i){var o=Rn();try{return st(e)(t,r,n,i)}catch(e){if(Mn(o),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiid:function(e,t,r,n,i,o){var a=Rn();try{return st(e)(t,r,n,i,o)}catch(e){if(Mn(a),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiidd:function(e,t,r,n,i,o,a){var s=Rn();try{return st(e)(t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiddd:function(e,t,r,n,i,o,a,s){var c=Rn();try{return st(e)(t,r,n,i,o,a,s)}catch(e){if(Mn(c),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiidddi:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{return st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiidi:function(e,t,r,n,i,o,a){var s=Rn();try{return st(e)(t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiif:function(e,t,r,n,i,o){var a=Rn();try{return st(e)(t,r,n,i,o)}catch(e){if(Mn(a),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiifff:function(e,t,r,n,i,o,a,s){var c=Rn();try{return st(e)(t,r,n,i,o,a,s)}catch(e){if(Mn(c),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiifffffffffffffff:function(e,t,r,n,i,o,a,s,c,u,d,l,f,h,m,p,v,_,y,g){var w=Rn();try{return st(e)(t,r,n,i,o,a,s,c,u,d,l,f,h,m,p,v,_,y,g)}catch(e){if(Mn(w),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiifi:function(e,t,r,n,i,o,a){var s=Rn();try{return st(e)(t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiifiii:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{return st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiii:function(e,t,r,n,i,o){var a=Rn();try{return st(e)(t,r,n,i,o)}catch(e){if(Mn(a),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiidd:function(e,t,r,n,i,o,a,s){var c=Rn();try{return st(e)(t,r,n,i,o,a,s)}catch(e){if(Mn(c),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiidi:function(e,t,r,n,i,o,a,s){var c=Rn();try{return st(e)(t,r,n,i,o,a,s)}catch(e){if(Mn(c),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiidiiidiiiiidiiiii:function(e,t,r,n,i,o,a,s,c,u,d,l,f,h,m,p,v,_,y,g,w,E){var b=Rn();try{return st(e)(t,r,n,i,o,a,s,c,u,d,l,f,h,m,p,v,_,y,g,w,E)}catch(e){if(Mn(b),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiif:function(e,t,r,n,i,o,a){var s=Rn();try{return st(e)(t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiff:function(e,t,r,n,i,o,a,s){var c=Rn();try{return st(e)(t,r,n,i,o,a,s)}catch(e){if(Mn(c),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiifff:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{return st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiffi:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{return st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiii:function(e,t,r,n,i,o,a){var s=Rn();try{return st(e)(t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiid:function(e,t,r,n,i,o,a,s){var c=Rn();try{return st(e)(t,r,n,i,o,a,s)}catch(e){if(Mn(c),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiidd:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{return st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiiddi:function(e,t,r,n,i,o,a,s,c,u){var d=Rn();try{return st(e)(t,r,n,i,o,a,s,c,u)}catch(e){if(Mn(d),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiidi:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{return st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiif:function(e,t,r,n,i,o,a,s){var c=Rn();try{return st(e)(t,r,n,i,o,a,s)}catch(e){if(Mn(c),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiiff:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{return st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiiffi:function(e,t,r,n,i,o,a,s,c,u){var d=Rn();try{return st(e)(t,r,n,i,o,a,s,c,u)}catch(e){if(Mn(d),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiifi:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{return st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiifif:function(e,t,r,n,i,o,a,s,c,u){var d=Rn();try{return st(e)(t,r,n,i,o,a,s,c,u)}catch(e){if(Mn(d),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiifiiiiiii:function(e,t,r,n,i,o,a,s,c,u,d,l,f,h,m){var p=Rn();try{return st(e)(t,r,n,i,o,a,s,c,u,d,l,f,h,m)}catch(e){if(Mn(p),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiii:function(e,t,r,n,i,o,a,s){var c=Rn();try{return st(e)(t,r,n,i,o,a,s)}catch(e){if(Mn(c),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiiid:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{return st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiiiddii:function(e,t,r,n,i,o,a,s,c,u,d,l){var f=Rn();try{return st(e)(t,r,n,i,o,a,s,c,u,d,l)}catch(e){if(Mn(f),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiiiff:function(e,t,r,n,i,o,a,s,c,u){var d=Rn();try{return st(e)(t,r,n,i,o,a,s,c,u)}catch(e){if(Mn(d),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiiiffffffffffff:function(e,t,r,n,i,o,a,s,c,u,d,l,f,h,m,p,v,_,y,g){var w=Rn();try{return st(e)(t,r,n,i,o,a,s,c,u,d,l,f,h,m,p,v,_,y,g)}catch(e){if(Mn(w),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiiifffi:function(e,t,r,n,i,o,a,s,c,u,d,l){var f=Rn();try{return st(e)(t,r,n,i,o,a,s,c,u,d,l)}catch(e){if(Mn(f),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiiii:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{return st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiiiii:function(e,t,r,n,i,o,a,s,c,u){var d=Rn();try{return st(e)(t,r,n,i,o,a,s,c,u)}catch(e){if(Mn(d),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,u,d){var l=Rn();try{return st(e)(t,r,n,i,o,a,s,c,u,d)}catch(e){if(Mn(l),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,u,d,l){var f=Rn();try{return st(e)(t,r,n,i,o,a,s,c,u,d,l)}catch(e){if(Mn(f),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,u,d,l,f){var h=Rn();try{return st(e)(t,r,n,i,o,a,s,c,u,d,l,f)}catch(e){if(Mn(h),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,u,d,l,f,h){var m=Rn();try{return st(e)(t,r,n,i,o,a,s,c,u,d,l,f,h)}catch(e){if(Mn(m),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,u,d,l,f,h,m,p){var v=Rn();try{return st(e)(t,r,n,i,o,a,s,c,u,d,l,f,h,m,p)}catch(e){if(Mn(v),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiiiiiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,u,d,l,f,h,m,p,v){var _=Rn();try{return st(e)(t,r,n,i,o,a,s,c,u,d,l,f,h,m,p,v)}catch(e){if(Mn(_),e!==e+0)throw e;Dn(1,0)}},invoke_iiiiij:function(e,t,r,n,i,o,a){var s=Rn();try{return $n(e,t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_iij:function(e,t,r,n){var i=Rn();try{return Bn(e,t,r,n)}catch(e){if(Mn(i),e!==e+0)throw e;Dn(1,0)}},invoke_j:function(e){var t=Rn();try{return zn(e)}catch(e){if(Mn(t),e!==e+0)throw e;Dn(1,0)}},invoke_jiiii:function(e,t,r,n,i){var o=Rn();try{return Hn(e,t,r,n,i)}catch(e){if(Mn(o),e!==e+0)throw e;Dn(1,0)}},invoke_v:function(e){var t=Rn();try{st(e)()}catch(e){if(Mn(t),e!==e+0)throw e;Dn(1,0)}},invoke_vi:function(e,t){var r=Rn();try{st(e)(t)}catch(e){if(Mn(r),e!==e+0)throw e;Dn(1,0)}},invoke_vid:function(e,t,r){var n=Rn();try{st(e)(t,r)}catch(e){if(Mn(n),e!==e+0)throw e;Dn(1,0)}},invoke_viddddd:function(e,t,r,n,i,o,a){var s=Rn();try{st(e)(t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_viddddddi:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_vidi:function(e,t,r,n){var i=Rn();try{st(e)(t,r,n)}catch(e){if(Mn(i),e!==e+0)throw e;Dn(1,0)}},invoke_vidii:function(e,t,r,n,i){var o=Rn();try{st(e)(t,r,n,i)}catch(e){if(Mn(o),e!==e+0)throw e;Dn(1,0)}},invoke_vif:function(e,t,r){var n=Rn();try{st(e)(t,r)}catch(e){if(Mn(n),e!==e+0)throw e;Dn(1,0)}},invoke_viffiiiiii:function(e,t,r,n,i,o,a,s,c,u){var d=Rn();try{st(e)(t,r,n,i,o,a,s,c,u)}catch(e){if(Mn(d),e!==e+0)throw e;Dn(1,0)}},invoke_vifi:function(e,t,r,n){var i=Rn();try{st(e)(t,r,n)}catch(e){if(Mn(i),e!==e+0)throw e;Dn(1,0)}},invoke_vifif:function(e,t,r,n,i){var o=Rn();try{st(e)(t,r,n,i)}catch(e){if(Mn(o),e!==e+0)throw e;Dn(1,0)}},invoke_vii:function(e,t,r){var n=Rn();try{st(e)(t,r)}catch(e){if(Mn(n),e!==e+0)throw e;Dn(1,0)}},invoke_viid:function(e,t,r,n){var i=Rn();try{st(e)(t,r,n)}catch(e){if(Mn(i),e!==e+0)throw e;Dn(1,0)}},invoke_viidd:function(e,t,r,n,i){var o=Rn();try{st(e)(t,r,n,i)}catch(e){if(Mn(o),e!==e+0)throw e;Dn(1,0)}},invoke_viidi:function(e,t,r,n,i){var o=Rn();try{st(e)(t,r,n,i)}catch(e){if(Mn(o),e!==e+0)throw e;Dn(1,0)}},invoke_viidiiiddi:function(e,t,r,n,i,o,a,s,c,u){var d=Rn();try{st(e)(t,r,n,i,o,a,s,c,u)}catch(e){if(Mn(d),e!==e+0)throw e;Dn(1,0)}},invoke_viidiiii:function(e,t,r,n,i,o,a,s){var c=Rn();try{st(e)(t,r,n,i,o,a,s)}catch(e){if(Mn(c),e!==e+0)throw e;Dn(1,0)}},invoke_viif:function(e,t,r,n){var i=Rn();try{st(e)(t,r,n)}catch(e){if(Mn(i),e!==e+0)throw e;Dn(1,0)}},invoke_viifff:function(e,t,r,n,i,o){var a=Rn();try{st(e)(t,r,n,i,o)}catch(e){if(Mn(a),e!==e+0)throw e;Dn(1,0)}},invoke_viiffff:function(e,t,r,n,i,o,a){var s=Rn();try{st(e)(t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_viifffffff:function(e,t,r,n,i,o,a,s,c,u){var d=Rn();try{st(e)(t,r,n,i,o,a,s,c,u)}catch(e){if(Mn(d),e!==e+0)throw e;Dn(1,0)}},invoke_viifffi:function(e,t,r,n,i,o,a){var s=Rn();try{st(e)(t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_viifffii:function(e,t,r,n,i,o,a,s){var c=Rn();try{st(e)(t,r,n,i,o,a,s)}catch(e){if(Mn(c),e!==e+0)throw e;Dn(1,0)}},invoke_viifffiii:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_viifi:function(e,t,r,n,i){var o=Rn();try{st(e)(t,r,n,i)}catch(e){if(Mn(o),e!==e+0)throw e;Dn(1,0)}},invoke_viifiii:function(e,t,r,n,i,o,a){var s=Rn();try{st(e)(t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_viifiiifff:function(e,t,r,n,i,o,a,s,c,u){var d=Rn();try{st(e)(t,r,n,i,o,a,s,c,u)}catch(e){if(Mn(d),e!==e+0)throw e;Dn(1,0)}},invoke_viii:function(e,t,r,n){var i=Rn();try{st(e)(t,r,n)}catch(e){if(Mn(i),e!==e+0)throw e;Dn(1,0)}},invoke_viiid:function(e,t,r,n,i){var o=Rn();try{st(e)(t,r,n,i)}catch(e){if(Mn(o),e!==e+0)throw e;Dn(1,0)}},invoke_viiiddddd:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_viiiddddi:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_viiidi:function(e,t,r,n,i,o){var a=Rn();try{st(e)(t,r,n,i,o)}catch(e){if(Mn(a),e!==e+0)throw e;Dn(1,0)}},invoke_viiidiiiii:function(e,t,r,n,i,o,a,s,c,u){var d=Rn();try{st(e)(t,r,n,i,o,a,s,c,u)}catch(e){if(Mn(d),e!==e+0)throw e;Dn(1,0)}},invoke_viiif:function(e,t,r,n,i){var o=Rn();try{st(e)(t,r,n,i)}catch(e){if(Mn(o),e!==e+0)throw e;Dn(1,0)}},invoke_viiiff:function(e,t,r,n,i,o){var a=Rn();try{st(e)(t,r,n,i,o)}catch(e){if(Mn(a),e!==e+0)throw e;Dn(1,0)}},invoke_viiifff:function(e,t,r,n,i,o,a){var s=Rn();try{st(e)(t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_viiiffff:function(e,t,r,n,i,o,a,s){var c=Rn();try{st(e)(t,r,n,i,o,a,s)}catch(e){if(Mn(c),e!==e+0)throw e;Dn(1,0)}},invoke_viiifffffffffffff:function(e,t,r,n,i,o,a,s,c,u,d,l,f,h,m,p,v){var _=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d,l,f,h,m,p,v)}catch(e){if(Mn(_),e!==e+0)throw e;Dn(1,0)}},invoke_viiifffiff:function(e,t,r,n,i,o,a,s,c,u){var d=Rn();try{st(e)(t,r,n,i,o,a,s,c,u)}catch(e){if(Mn(d),e!==e+0)throw e;Dn(1,0)}},invoke_viiifffii:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_viiiffiiiii:function(e,t,r,n,i,o,a,s,c,u,d){var l=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d)}catch(e){if(Mn(l),e!==e+0)throw e;Dn(1,0)}},invoke_viiiffiiiiii:function(e,t,r,n,i,o,a,s,c,u,d,l){var f=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d,l)}catch(e){if(Mn(f),e!==e+0)throw e;Dn(1,0)}},invoke_viiifi:function(e,t,r,n,i,o){var a=Rn();try{st(e)(t,r,n,i,o)}catch(e){if(Mn(a),e!==e+0)throw e;Dn(1,0)}},invoke_viiifii:function(e,t,r,n,i,o,a){var s=Rn();try{st(e)(t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_viiii:function(e,t,r,n,i){var o=Rn();try{st(e)(t,r,n,i)}catch(e){if(Mn(o),e!==e+0)throw e;Dn(1,0)}},invoke_viiiid:function(e,t,r,n,i,o){var a=Rn();try{st(e)(t,r,n,i,o)}catch(e){if(Mn(a),e!==e+0)throw e;Dn(1,0)}},invoke_viiiidd:function(e,t,r,n,i,o,a){var s=Rn();try{st(e)(t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_viiiidi:function(e,t,r,n,i,o,a){var s=Rn();try{st(e)(t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_viiiif:function(e,t,r,n,i,o){var a=Rn();try{st(e)(t,r,n,i,o)}catch(e){if(Mn(a),e!==e+0)throw e;Dn(1,0)}},invoke_viiiifffi:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_viiiifffiiii:function(e,t,r,n,i,o,a,s,c,u,d,l){var f=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d,l)}catch(e){if(Mn(f),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiffii:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiffiii:function(e,t,r,n,i,o,a,s,c,u){var d=Rn();try{st(e)(t,r,n,i,o,a,s,c,u)}catch(e){if(Mn(d),e!==e+0)throw e;Dn(1,0)}},invoke_viiiifi:function(e,t,r,n,i,o,a){var s=Rn();try{st(e)(t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_viiiifiii:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_viiiii:function(e,t,r,n,i,o){var a=Rn();try{st(e)(t,r,n,i,o)}catch(e){if(Mn(a),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiid:function(e,t,r,n,i,o,a){var s=Rn();try{st(e)(t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiidd:function(e,t,r,n,i,o,a,s){var c=Rn();try{st(e)(t,r,n,i,o,a,s)}catch(e){if(Mn(c),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiidddi:function(e,t,r,n,i,o,a,s,c,u){var d=Rn();try{st(e)(t,r,n,i,o,a,s,c,u)}catch(e){if(Mn(d),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiddi:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiddii:function(e,t,r,n,i,o,a,s,c,u){var d=Rn();try{st(e)(t,r,n,i,o,a,s,c,u)}catch(e){if(Mn(d),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiddiiiiiiii:function(e,t,r,n,i,o,a,s,c,u,d,l,f,h,m,p){var v=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d,l,f,h,m,p)}catch(e){if(Mn(v),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiidi:function(e,t,r,n,i,o,a,s){var c=Rn();try{st(e)(t,r,n,i,o,a,s)}catch(e){if(Mn(c),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiif:function(e,t,r,n,i,o,a){var s=Rn();try{st(e)(t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiffi:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiffii:function(e,t,r,n,i,o,a,s,c,u){var d=Rn();try{st(e)(t,r,n,i,o,a,s,c,u)}catch(e){if(Mn(d),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiffiii:function(e,t,r,n,i,o,a,s,c,u,d){var l=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d)}catch(e){if(Mn(l),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiii:function(e,t,r,n,i,o,a){var s=Rn();try{st(e)(t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiid:function(e,t,r,n,i,o,a,s){var c=Rn();try{st(e)(t,r,n,i,o,a,s)}catch(e){if(Mn(c),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiidd:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiddddii:function(e,t,r,n,i,o,a,s,c,u,d,l,f){var h=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d,l,f)}catch(e){if(Mn(h),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiidddi:function(e,t,r,n,i,o,a,s,c,u,d){var l=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d)}catch(e){if(Mn(l),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiddii:function(e,t,r,n,i,o,a,s,c,u,d){var l=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d)}catch(e){if(Mn(l),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiidi:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiffi:function(e,t,r,n,i,o,a,s,c,u){var d=Rn();try{st(e)(t,r,n,i,o,a,s,c,u)}catch(e){if(Mn(d),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiffiii:function(e,t,r,n,i,o,a,s,c,u,d,l){var f=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d,l)}catch(e){if(Mn(f),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiii:function(e,t,r,n,i,o,a,s){var c=Rn();try{st(e)(t,r,n,i,o,a,s)}catch(e){if(Mn(c),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiid:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiiddddd:function(e,t,r,n,i,o,a,s,c,u,d,l,f){var h=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d,l,f)}catch(e){if(Mn(h),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiif:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiiffiiii:function(e,t,r,n,i,o,a,s,c,u,d,l,f,h){var m=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d,l,f,h)}catch(e){if(Mn(m),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiifi:function(e,t,r,n,i,o,a,s,c,u){var d=Rn();try{st(e)(t,r,n,i,o,a,s,c,u)}catch(e){if(Mn(d),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiii:function(e,t,r,n,i,o,a,s,c){var u=Rn();try{st(e)(t,r,n,i,o,a,s,c)}catch(e){if(Mn(u),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiiidd:function(e,t,r,n,i,o,a,s,c,u,d){var l=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d)}catch(e){if(Mn(l),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiiidddii:function(e,t,r,n,i,o,a,s,c,u,d,l,f,h){var m=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d,l,f,h)}catch(e){if(Mn(m),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiiiddi:function(e,t,r,n,i,o,a,s,c,u,d,l){var f=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d,l)}catch(e){if(Mn(f),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiiidi:function(e,t,r,n,i,o,a,s,c,u,d){var l=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d)}catch(e){if(Mn(l),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiiifiifififiii:function(e,t,r,n,i,o,a,s,c,u,d,l,f,h,m,p,v,_,y,g){var w=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d,l,f,h,m,p,v,_,y,g)}catch(e){if(Mn(w),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiiifiii:function(e,t,r,n,i,o,a,s,c,u,d,l,f){var h=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d,l,f)}catch(e){if(Mn(h),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiiii:function(e,t,r,n,i,o,a,s,c,u){var d=Rn();try{st(e)(t,r,n,i,o,a,s,c,u)}catch(e){if(Mn(d),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiiiii:function(e,t,r,n,i,o,a,s,c,u,d){var l=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d)}catch(e){if(Mn(l),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiiiiid:function(e,t,r,n,i,o,a,s,c,u,d,l){var f=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d,l)}catch(e){if(Mn(f),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiiiiiddii:function(e,t,r,n,i,o,a,s,c,u,d,l,f,h,m){var p=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d,l,f,h,m)}catch(e){if(Mn(p),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,u,d,l){var f=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d,l)}catch(e){if(Mn(f),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,u,d,l,f){var h=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d,l,f)}catch(e){if(Mn(h),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,u,d,l,f,h){var m=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d,l,f,h)}catch(e){if(Mn(m),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiiiiiiiid:function(e,t,r,n,i,o,a,s,c,u,d,l,f,h,m){var p=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d,l,f,h,m)}catch(e){if(Mn(p),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,u,d,l,f,h,m){var p=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d,l,f,h,m)}catch(e){if(Mn(p),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,u,d,l,f,h,m,p){var v=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d,l,f,h,m,p)}catch(e){if(Mn(v),e!==e+0)throw e;Dn(1,0)}},invoke_viiiiiiiiiiiiiiiiiiii:function(e,t,r,n,i,o,a,s,c,u,d,l,f,h,m,p,v,_,y,g,w){var E=Rn();try{st(e)(t,r,n,i,o,a,s,c,u,d,l,f,h,m,p,v,_,y,g,w)}catch(e){if(Mn(E),e!==e+0)throw e;Dn(1,0)}},invoke_viijii:function(e,t,r,n,i,o,a){var s=Rn();try{Un(e,t,r,n,i,o,a)}catch(e){if(Mn(s),e!==e+0)throw e;Dn(1,0)}},llvm_eh_typeid_for:function(e){return e},memory:j||l.wasmMemory,strftime:cn,strftime_l:function(e,t,r,n,i){return cn(e,t,r,n)}},hn=(function(){var e={env:fn,wasi_snapshot_preview1:fn};function t(e,t){var r,n,i=e.exports;if(l.asm=i,r=l.asm._emscripten_tls_init,nt.tlsInitFunctions.push(r),$(se=l.asm.__indirect_function_table,"table not found in wasm exports"),n=l.asm.__wasm_call_ctors,fe.unshift(n),W=t,!T){var o=nt.unusedWorkers.length;nt.unusedWorkers.forEach((function(e){nt.loadWasmModuleToWorker(e,(function(){--o||Te("wasm-instantiate")}))}))}}T||ke("wasm-instantiate");var r=l;function n(e){$(l===r,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),r=null,t(e.instance,e.module)}function i(t){return function(){if(!M&&(_||y)){if("function"==typeof fetch&&!Ae(Pe))return fetch(Pe,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+Pe+"'";return e.arrayBuffer()})).catch((function(){return Re(Pe)}));if(b)return new Promise((function(e,t){b(Pe,(function(t){e(new Uint8Array(t))}),t)}))}return Promise.resolve().then((function(){return Re(Pe)}))}().then((function(t){return WebAssembly.instantiate(t,e)})).then((function(e){return e})).then(t,(function(e){I("failed to asynchronously prepare wasm: "+e),Ae(Pe)&&I("warning: Loading from a file URI ("+Pe+") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing"),Se(e)}))}if(l.instantiateWasm)try{return l.instantiateWasm(e,t)}catch(e){I("Module.instantiateWasm callback failed with error: "+e),d(e)}(M||"function"!=typeof WebAssembly.instantiateStreaming||De(Pe)||Ae(Pe)||g||"function"!=typeof fetch?i(n):fetch(Pe,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(n,(function(e){return I("wasm streaming compile failed: "+e),I("falling back to ArrayBuffer instantiation"),i(n)}))}))).catch(d)}(),l.___wasm_call_ctors=Oe("__wasm_call_ctors"),l.getTempRet0=Oe("getTempRet0"),l.___cxa_free_exception=Oe("__cxa_free_exception")),mn=l._malloc=Oe("malloc"),pn=l.___errno_location=Oe("__errno_location"),vn=l._free=Oe("free"),_n=l._fflush=Oe("fflush"),yn=(l._main=Oe("__main_argc_argv"),l.setTempRet0=Oe("setTempRet0")),gn=(l._saveSetjmp=Oe("saveSetjmp"),l.__ZN5boost13serialization16singleton_module8get_lockEv=Oe("_ZN5boost13serialization16singleton_module8get_lockEv"),l.__emscripten_tls_init=Oe("_emscripten_tls_init"),l._pthread_self=Oe("pthread_self")),wn=l._emscripten_builtin_memalign=Oe("emscripten_builtin_memalign"),En=l.___getTypeName=Oe("__getTypeName"),bn=(l.__embind_initialize_bindings=Oe("_embind_initialize_bindings"),l.__emscripten_thread_init=Oe("_emscripten_thread_init")),kn=(l.__emscripten_thread_crashed=Oe("_emscripten_thread_crashed"),l._emscripten_main_thread_process_queued_calls=Oe("emscripten_main_thread_process_queued_calls"),l._emscripten_main_browser_thread_id=Oe("emscripten_main_browser_thread_id"),l._emscripten_run_in_main_runtime_thread_js=Oe("emscripten_run_in_main_runtime_thread_js")),Tn=(l._emscripten_dispatch_to_thread_=Oe("emscripten_dispatch_to_thread_"),l._emscripten_stack_get_base=function(){return(Tn=l._emscripten_stack_get_base=l.asm.emscripten_stack_get_base).apply(null,arguments)}),Sn=l._emscripten_stack_get_end=function(){return(Sn=l._emscripten_stack_get_end=l.asm.emscripten_stack_get_end).apply(null,arguments)},Pn=l.__emscripten_proxy_execute_task_queue=Oe("_emscripten_proxy_execute_task_queue"),Fn=l.__emscripten_thread_free_data=Oe("_emscripten_thread_free_data"),Cn=l.__emscripten_thread_exit=Oe("_emscripten_thread_exit"),Dn=l._setThrew=Oe("setThrew"),An=l._emscripten_stack_init=function(){return(An=l._emscripten_stack_init=l.asm.emscripten_stack_init).apply(null,arguments)},On=l._emscripten_stack_set_limits=function(){return(On=l._emscripten_stack_set_limits=l.asm.emscripten_stack_set_limits).apply(null,arguments)},Rn=(l._emscripten_stack_get_free=function(){return(l._emscripten_stack_get_free=l.asm.emscripten_stack_get_free).apply(null,arguments)},l.stackSave=Oe("stackSave")),Mn=l.stackRestore=Oe("stackRestore"),Nn=l.stackAlloc=Oe("stackAlloc"),In=l._emscripten_stack_get_current=function(){return(In=l._emscripten_stack_get_current=l.asm.emscripten_stack_get_current).apply(null,arguments)},xn=l.___cxa_demangle=Oe("__cxa_demangle"),Ln=l.___cxa_can_catch=Oe("__cxa_can_catch"),jn=l.___cxa_is_pointer_type=Oe("__cxa_is_pointer_type"),Wn=l.___set_stack_limits=Oe("__set_stack_limits"),Un=(l.dynCall_jii=Oe("dynCall_jii"),l.dynCall_viij=Oe("dynCall_viij"),l.dynCall_viijii=Oe("dynCall_viijii")),Bn=l.dynCall_iij=Oe("dynCall_iij"),zn=(l.dynCall_jiji=Oe("dynCall_jiji"),l.dynCall_j=Oe("dynCall_j")),$n=l.dynCall_iiiiij=Oe("dynCall_iiiiij"),Hn=l.dynCall_jiiii=Oe("dynCall_jiiii");function Gn(e){if(e=e||m,!(ye>0)){if(T||($(!T),An(),ue()),T)return u(l),_e(),void startWorker(l);!function(){if($(!T),l.preRun)for("function"==typeof l.preRun&&(l.preRun=[l.preRun]);l.preRun.length;)e=l.preRun.shift(),le.unshift(e);var e;it(le)}(),ye>0||(l.setStatus?(l.setStatus("Running..."),setTimeout((function(){setTimeout((function(){l.setStatus("")}),1),t()}),1)):t(),de())}function t(){ln||(ln=!0,l.calledRun=!0,z||(_e(),de(),T||it(he),u(l),l.onRuntimeInitialized&&l.onRuntimeInitialized(),Vn&&function(e){$(0==ye,'cannot call main when async dependencies remain! (listen on Module["onRuntimeInitialized"])'),$(0==le.length,"cannot call main when preRun functions remain to be called");var t=l._main;(e=e||[]).unshift(p);var n=e.length,i=Nn(4*(n+1)),o=i>>2;e.forEach((e=>{a()[o++]=function(e){var t=ie(e)+1,n=Nn(t);return re(e,r(),n,t),n}(e)})),a()[o]=0;try{var s=t(n,i);return Qe(s,!0),s}catch(e){return rt(e)}}(e),function(){if(de(),!T){if(l.postRun)for("function"==typeof l.postRun&&(l.postRun=[l.postRun]);l.postRun.length;)e=l.postRun.shift(),me.unshift(e);var e;it(me)}}()))}}if(l.dynCall_iiiiijj=Oe("dynCall_iiiiijj"),l.dynCall_iiiiiijj=Oe("dynCall_iiiiiijj"),l.addRunDependency=ke,l.removeRunDependency=Te,l.FS_createPath=Xe.createPath,l.FS_createDataFile=Xe.createDataFile,l.FS_createPreloadedFile=Xe.createPreloadedFile,l.FS_createLazyFile=Xe.createLazyFile,l.FS_createDevice=Xe.createDevice,l.FS_unlink=Xe.unlink,l.keepRuntimeAlive=ve,l.wasmMemory=j,l.ExitStatus=Ne,l.FS=Xe,l.PThread=nt,["run","UTF8ArrayToString","UTF8ToString","stringToUTF8Array","stringToUTF8","lengthBytesUTF8","addOnPreRun","addOnInit","addOnPreMain","addOnExit","addOnPostRun","FS_createFolder","FS_createLink","getLEB","getFunctionTables","alignFunctionTables","registerFunctions","prettyPrint","getCompilerSetting","out","err","callMain","abort","stackAlloc","stackSave","stackRestore","getTempRet0","setTempRet0","GROWABLE_HEAP_I8","GROWABLE_HEAP_U8","GROWABLE_HEAP_I16","GROWABLE_HEAP_U16","GROWABLE_HEAP_I32","GROWABLE_HEAP_U32","GROWABLE_HEAP_F32","GROWABLE_HEAP_F64","writeStackCookie","checkStackCookie","ptrToString","zeroMemory","stringToNewUTF8","exitJS","getHeapMax","emscripten_realloc_buffer","ENV","ERRNO_CODES","ERRNO_MESSAGES","setErrNo","inetPton4","inetNtop4","inetPton6","inetNtop6","readSockaddr","writeSockaddr","DNS","getHostByName","Protocols","Sockets","getRandomDevice","warnOnce","traverseStack","UNWIND_CACHE","convertPCtoSourceLocation","readEmAsmArgsArray","readEmAsmArgs","runEmAsmFunction","runMainThreadEmAsm","jstoi_q","jstoi_s","getExecutableName","listenOnce","autoResumeAudioContext","dynCallLegacy","getDynCaller","dynCall","handleException","runtimeKeepalivePush","runtimeKeepalivePop","callUserCallback","maybeExit","safeSetTimeout","asmjsMangle","asyncLoad","alignMemory","mmapAlloc","writeI53ToI64","writeI53ToI64Clamped","writeI53ToI64Signaling","writeI53ToU64Clamped","writeI53ToU64Signaling","readI53FromI64","readI53FromU64","convertI32PairToI53","convertI32PairToI53Checked","convertU32PairToI53","getCFunc","ccall","cwrap","uleb128Encode","sigToWasmTypes","generateFuncType","convertJsFunctionToWasm","freeTableIndexes","functionsInTableMap","getEmptyTableSlot","updateTableMap","addFunction","removeFunction","reallyNegative","unSign","strLen","reSign","formatString","setValue","getValue","PATH","PATH_FS","intArrayFromString","intArrayToString","AsciiToString","stringToAscii","UTF16Decoder","UTF16ToString","stringToUTF16","lengthBytesUTF16","UTF32ToString","stringToUTF32","lengthBytesUTF32","allocateUTF8","allocateUTF8OnStack","writeStringToMemory","writeArrayToMemory","writeAsciiToMemory","SYSCALLS","getSocketFromFD","getSocketAddress","JSEvents","registerKeyEventCallback","specialHTMLTargets","maybeCStringToJsString","findEventTarget","findCanvasEventTarget","getBoundingClientRect","fillMouseEventData","registerMouseEventCallback","registerWheelEventCallback","registerUiEventCallback","registerFocusEventCallback","fillDeviceOrientationEventData","registerDeviceOrientationEventCallback","fillDeviceMotionEventData","registerDeviceMotionEventCallback","screenOrientation","fillOrientationChangeEventData","registerOrientationChangeEventCallback","fillFullscreenChangeEventData","registerFullscreenChangeEventCallback","JSEvents_requestFullscreen","JSEvents_resizeCanvasForFullscreen","registerRestoreOldStyle","hideEverythingExceptGivenElement","restoreHiddenElements","setLetterbox","currentFullscreenStrategy","restoreOldWindowedStyle","softFullscreenResizeWebGLRenderTarget","doRequestFullscreen","fillPointerlockChangeEventData","registerPointerlockChangeEventCallback","registerPointerlockErrorEventCallback","requestPointerLock","fillVisibilityChangeEventData","registerVisibilityChangeEventCallback","registerTouchEventCallback","fillGamepadEventData","registerGamepadEventCallback","registerBeforeUnloadEventCallback","fillBatteryEventData","battery","registerBatteryEventCallback","setCanvasElementSize","getCanvasElementSize","demangle","demangleAll","jsStackTrace","stackTrace","getEnvStrings","checkWasiClock","doReadv","doWritev","dlopenMissingError","createDyncallWrapper","setImmediateWrapped","clearImmediateWrapped","polyfillSetImmediate","uncaughtExceptionCount","exceptionLast","exceptionCaught","ExceptionInfo","exception_addRef","exception_decRef","getExceptionMessageCommon","incrementExceptionRefcount","decrementExceptionRefcount","getExceptionMessage","Browser","setMainLoop","wget","MEMFS","TTY","PIPEFS","SOCKFS","_setNetworkCallback","tempFixedLengthArray","miniTempWebGLFloatBuffers","heapObjectForWebGLType","heapAccessShiftForWebGLHeap","GL","emscriptenWebGLGet","computeUnpackAlignedImageSize","emscriptenWebGLGetTexPixelData","emscriptenWebGLGetUniform","webglGetUniformLocation","webglPrepareUniformLocationsBeforeFirstUse","webglGetLeftBracePos","emscriptenWebGLGetVertexAttrib","writeGLArray","AL","SDL_unicode","SDL_ttfContext","SDL_audio","SDL","SDL_gfx","GLUT","EGL","GLFW_Window","GLFW","GLEW","IDBStore","runAndAbortIfError","ALLOC_NORMAL","ALLOC_STACK","allocate","killThread","cleanupThread","registerTLSInit","cancelThread","spawnThread","exitOnMainThread","invokeEntryPoint","executeNotifiedProxyingQueue","InternalError","BindingError","UnboundTypeError","PureVirtualError","init_embind","throwInternalError","throwBindingError","throwUnboundTypeError","ensureOverloadTable","exposePublicSymbol","replacePublicSymbol","extendError","createNamedFunction","embindRepr","registeredInstances","getBasestPointer","registerInheritedInstance","unregisterInheritedInstance","getInheritedInstance","getInheritedInstanceCount","getLiveInheritedInstances","registeredTypes","awaitingDependencies","typeDependencies","registeredPointers","registerType","whenDependentTypesAreResolved","embind_charCodes","embind_init_charCodes","readLatin1String","getTypeName","heap32VectorToArray","requireRegisteredType","getShiftFromSize","integerReadValueFromPointer","enumReadValueFromPointer","floatReadValueFromPointer","simpleReadValueFromPointer","runDestructors","new_","craftInvokerFunction","embind__requireFunction","tupleRegistrations","structRegistrations","genericPointerToWireType","constNoSmartPtrRawPointerToWireType","nonConstNoSmartPtrRawPointerToWireType","init_RegisteredPointer","RegisteredPointer","RegisteredPointer_getPointee","RegisteredPointer_destructor","RegisteredPointer_deleteObject","RegisteredPointer_fromWireType","runDestructor","releaseClassHandle","finalizationRegistry","detachFinalizer_deps","detachFinalizer","attachFinalizer","makeClassHandle","init_ClassHandle","ClassHandle","ClassHandle_isAliasOf","throwInstanceAlreadyDeleted","ClassHandle_clone","ClassHandle_delete","deletionQueue","ClassHandle_isDeleted","ClassHandle_deleteLater","flushPendingDeletes","delayFunction","setDelayFunction","RegisteredClass","shallowCopyInternalPointer","downcastPointer","upcastPointer","validateThis","char_0","char_9","makeLegalFunctionName","emval_handle_array","emval_free_list","emval_symbols","init_emval","count_emval_handles","get_first_emval","getStringOrSymbol","Emval","emval_newers","craftEmvalAllocator","emval_get_global","emval_lookupTypes","emval_allocateDestructors","emval_methodCallers","emval_addMethodCaller","emval_registeredMethods","IDBFS","NODEFS"].forEach((function(e){Object.getOwnPropertyDescriptor(l,e)||Object.defineProperty(l,e,{configurable:!0,get:function(){var t="'"+e+"' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)";L(e)&&(t+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"),Se(t)}})})),["stringToNewUTF8","inetPton4","inetNtop4","inetPton6","inetNtop6","readSockaddr","writeSockaddr","getHostByName","traverseStack","convertPCtoSourceLocation","readEmAsmArgs","runEmAsmFunction","runMainThreadEmAsm","jstoi_q","jstoi_s","listenOnce","autoResumeAudioContext","runtimeKeepalivePush","runtimeKeepalivePop","callUserCallback","maybeExit","safeSetTimeout","asmjsMangle","writeI53ToI64","writeI53ToI64Clamped","writeI53ToI64Signaling","writeI53ToU64Clamped","writeI53ToU64Signaling","readI53FromU64","convertI32PairToI53","convertU32PairToI53","getCFunc","ccall","cwrap","uleb128Encode","sigToWasmTypes","generateFuncType","convertJsFunctionToWasm","getEmptyTableSlot","updateTableMap","addFunction","removeFunction","reallyNegative","unSign","strLen","reSign","formatString","intArrayToString","AsciiToString","stringToAscii","writeStringToMemory","getSocketFromFD","getSocketAddress","registerKeyEventCallback","maybeCStringToJsString","findEventTarget","findCanvasEventTarget","getBoundingClientRect","fillMouseEventData","registerMouseEventCallback","registerWheelEventCallback","registerUiEventCallback","registerFocusEventCallback","fillDeviceOrientationEventData","registerDeviceOrientationEventCallback","fillDeviceMotionEventData","registerDeviceMotionEventCallback","screenOrientation","fillOrientationChangeEventData","registerOrientationChangeEventCallback","fillFullscreenChangeEventData","registerFullscreenChangeEventCallback","JSEvents_requestFullscreen","JSEvents_resizeCanvasForFullscreen","registerRestoreOldStyle","hideEverythingExceptGivenElement","restoreHiddenElements","setLetterbox","softFullscreenResizeWebGLRenderTarget","doRequestFullscreen","fillPointerlockChangeEventData","registerPointerlockChangeEventCallback","registerPointerlockErrorEventCallback","requestPointerLock","fillVisibilityChangeEventData","registerVisibilityChangeEventCallback","registerTouchEventCallback","fillGamepadEventData","registerGamepadEventCallback","registerBeforeUnloadEventCallback","fillBatteryEventData","battery","registerBatteryEventCallback","setCanvasElementSize","getCanvasElementSize","checkWasiClock","createDyncallWrapper","setImmediateWrapped","clearImmediateWrapped","polyfillSetImmediate","getExceptionMessageCommon","incrementExceptionRefcount","decrementExceptionRefcount","getExceptionMessage","setMainLoop","_setNetworkCallback","heapObjectForWebGLType","heapAccessShiftForWebGLHeap","emscriptenWebGLGet","computeUnpackAlignedImageSize","emscriptenWebGLGetTexPixelData","emscriptenWebGLGetUniform","webglGetUniformLocation","webglPrepareUniformLocationsBeforeFirstUse","webglGetLeftBracePos","emscriptenWebGLGetVertexAttrib","writeGLArray","SDL_unicode","SDL_ttfContext","SDL_audio","GLFW_Window","runAndAbortIfError","ALLOC_NORMAL","ALLOC_STACK","allocate","registerInheritedInstance","unregisterInheritedInstance","getStringOrSymbol","craftEmvalAllocator","emval_get_global","emval_lookupTypes","emval_allocateDestructors","emval_addMethodCaller"].forEach((function(e){"undefined"==typeof globalThis||Object.getOwnPropertyDescriptor(globalThis,e)||Object.defineProperty(globalThis,e,{configurable:!0,get:function(){var t="`"+e+"` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line",r=e;r.startsWith("_")||(r="$"+e),t+=" (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE="+r+")",L(e)&&(t+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"),ct(t)}})})),we=function e(){ln||Gn(),ln||(we=e)},l.preInit)for("function"==typeof l.preInit&&(l.preInit=[l.preInit]);l.preInit.length>0;)l.preInit.pop()();var Vn=!0;return l.noInitialRun&&(Vn=!1),Gn(),t.ready}})();"object"==typeof exports&&"object"==typeof module?module.exports=createRSRModule:"function"==typeof define&&define.amd?define([],(function(){return createRSRModule})):"object"==typeof exports&&(exports.createRSRModule=createRSRModule); \ No newline at end of file diff --git a/webserver/public/baby-gru/wasm/moorhen.worker.js b/webserver/public/baby-gru/wasm/moorhen.worker.js deleted file mode 100644 index e18bca70a..000000000 --- a/webserver/public/baby-gru/wasm/moorhen.worker.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";var Module={},ENVIRONMENT_IS_NODE="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node;if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads"),parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",(e=>onmessage({data:e})));var fs=require("fs");Object.assign(global,{self:global,require,Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(e){(0,eval)(fs.readFileSync(e,"utf8")+"//# sourceURL="+e)},postMessage:function(e){parentPort.postMessage(e)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=!1,pendingNotifiedProxyingQueues=[];function assert(e,r){e||abort("Assertion failed: "+r)}function threadPrintErr(){var e=Array.prototype.slice.call(arguments).join(" ");ENVIRONMENT_IS_NODE?fs.writeSync(2,e+"\n"):console.error(e)}function threadAlert(){var e=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:e,threadId:Module._pthread_self()})}var out=()=>{throw"out() is not defined in worker.js."},err=threadPrintErr;self.alert=threadAlert,Module.instantiateWasm=(e,r)=>{var t=new WebAssembly.Instance(Module.wasmModule,e);return r(t),Module.wasmModule=null,t.exports},self.onunhandledrejection=e=>{throw e.reason??e},self.startWorker=e=>{Module=e,postMessage({cmd:"loaded"})},self.onmessage=e=>{try{if("load"===e.data.cmd){Module.wasmModule=e.data.wasmModule;for(const r of e.data.handlers)Module[r]=function(){postMessage({cmd:"callHandler",handler:r,args:[...arguments]})};if(Module.wasmMemory=e.data.wasmMemory,Module.buffer=Module.wasmMemory.buffer,Module.ENVIRONMENT_IS_PTHREAD=!0,"string"==typeof e.data.urlOrBlob)importScripts(e.data.urlOrBlob);else{var r=URL.createObjectURL(e.data.urlOrBlob);importScripts(r),URL.revokeObjectURL(r)}createRSRModule(Module)}else if("run"===e.data.cmd){Module.__emscripten_thread_init(e.data.pthread_ptr,0,0,1),assert(e.data.pthread_ptr),Module.establishStackSpace(),Module.PThread.receiveObjectTransfer(e.data),Module.PThread.threadInitTLS(),initializedJS||(Module.__embind_initialize_bindings(),pendingNotifiedProxyingQueues.forEach((e=>{Module.executeNotifiedProxyingQueue(e)})),pendingNotifiedProxyingQueues=[],initializedJS=!0);try{Module.invokeEntryPoint(e.data.start_routine,e.data.arg)}catch(e){if("unwind"!=e){if(!(e instanceof Module.ExitStatus))throw e;Module.keepRuntimeAlive()?err("Pthread 0x"+Module._pthread_self().toString(16)+" called exit(), staying alive due to noExitRuntime."):(err("Pthread 0x"+Module._pthread_self().toString(16)+" called exit(), calling _emscripten_thread_exit."),Module.__emscripten_thread_exit(e.status))}else err("Pthread 0x"+Module._pthread_self().toString(16)+" completed its main entry point with an `unwind`, keeping the worker alive for asynchronous operation.")}}else"cancel"===e.data.cmd?Module._pthread_self()&&Module.__emscripten_thread_exit(-1):"setimmediate"===e.data.target||("processProxyingQueue"===e.data.cmd?initializedJS?Module.executeNotifiedProxyingQueue(e.data.queue):pendingNotifiedProxyingQueues.push(e.data.queue):e.data.cmd&&(err("worker.js received unknown command "+e.data.cmd),err(e.data)))}catch(e){throw err("worker.js onmessage() captured an uncaught exception: "+e),e&&e.stack&&err(e.stack),Module.__emscripten_thread_crashed&&Module.__emscripten_thread_crashed(),e}}; \ No newline at end of file diff --git a/webserver/public/baby-gru/wasm/web_example.js b/webserver/public/baby-gru/wasm/web_example.js deleted file mode 100644 index cdf597bcc..000000000 --- a/webserver/public/baby-gru/wasm/web_example.js +++ /dev/null @@ -1 +0,0 @@ -var createCCP4Module=(()=>{var e="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0;return"undefined"!=typeof __filename&&(e=e||__filename),function(r){function t(){return L.buffer!=$&&oe(L.buffer),H}function n(){return L.buffer!=$&&oe(L.buffer),G}function o(){return L.buffer!=$&&oe(L.buffer),V}function i(){return L.buffer!=$&&oe(L.buffer),Y}function a(){return L.buffer!=$&&oe(L.buffer),q}function s(){return L.buffer!=$&&oe(L.buffer),K}function c(){return L.buffer!=$&&oe(L.buffer),J}var u,l,d=void 0!==(r=r||{})?r:{};d.ready=new Promise((function(e,r){u=e,l=r})),["_main","__emscripten_thread_init","__emscripten_thread_exit","__emscripten_thread_crashed","__emscripten_tls_init","_pthread_self","executeNotifiedProxyingQueue","establishStackSpace","invokeEntryPoint","PThread","_fflush","___getTypeName","__embind_initialize_bindings","__emscripten_proxy_execute_task_queue","___set_stack_limits","onRuntimeInitialized"].forEach((e=>{Object.getOwnPropertyDescriptor(d.ready,e)||Object.defineProperty(d.ready,e,{get:()=>Te("You are getting "+e+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js"),set:()=>Te("You are setting "+e+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")})}));var f=Object.assign({},d),p=[],h="./this.program",m=(e,r)=>{throw r},v="object"==typeof window,y="function"==typeof importScripts,g="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,_=!v&&!g&&!y;if(d.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)");var w,E,b,T=d.ENVIRONMENT_IS_PTHREAD||!1,k="";function S(e){return d.locateFile?d.locateFile(e,k):k+e}function P(e){if(e instanceof Me)return;let r=e;e&&"object"==typeof e&&e.stack&&(r=[e,e.stack]),I("exiting due to exception: "+r)}if(g){if("undefined"==typeof process||!process.release||"node"!==process.release.name)throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");var C=require("fs"),F=require("path");let e;k=y?F.dirname(k)+"/":__dirname+"/",w=(e,r)=>(e=Fe(e)?new URL(e):F.normalize(e),C.readFileSync(e,r?void 0:"utf8")),b=e=>{var r=w(e,!0);return r.buffer||(r=new Uint8Array(r)),z(r.buffer),r},E=(e,r,t)=>{e=Fe(e)?new URL(e):F.normalize(e),C.readFile(e,(function(e,n){e?t(e):r(n.buffer)}))},process.argv.length>1&&(h=process.argv[1].replace(/\\/g,"/")),p=process.argv.slice(2),process.on("uncaughtException",(function(e){if(!(e instanceof Me))throw e})),process.on("unhandledRejection",(function(e){throw e})),m=(e,r)=>{if(he())throw process.exitCode=e,r;P(r),process.exit(e)},d.inspect=function(){return"[Emscripten Module object]"};try{e=require("worker_threads")}catch(e){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),e}global.Worker=e.Worker}else if(_){if("object"==typeof process&&"function"==typeof require||"object"==typeof window||"function"==typeof importScripts)throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");"undefined"!=typeof read&&(w=function(e){return read(e)}),b=function(e){let r;return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(r=read(e,"binary"),z("object"==typeof r),r)},E=function(e,r,t){setTimeout((()=>r(b(e))),0)},"undefined"!=typeof scriptArgs?p=scriptArgs:void 0!==arguments&&(p=arguments),"function"==typeof quit&&(m=(e,r)=>{P(r),quit(e)}),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)}else{if(!v&&!y)throw new Error("environment detection error");if(y?k=self.location.href:"undefined"!=typeof document&&document.currentScript&&(k=document.currentScript.src),e&&(k=e),k=0!==k.indexOf("blob:")?k.substr(0,k.replace(/[?#].*/,"").lastIndexOf("/")+1):"","object"!=typeof window&&"function"!=typeof importScripts)throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");g||(w=e=>{var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},y&&(b=e=>{var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),E=(e,r,t)=>{var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=()=>{200==n.status||0==n.status&&n.response?r(n.response):t()},n.onerror=t,n.send(null)})}g&&"undefined"==typeof performance&&(global.performance=require("perf_hooks").performance);var A=console.log.bind(console),D=console.warn.bind(console);g&&(A=e=>C.writeSync(1,e+"\n"),D=e=>C.writeSync(2,e+"\n"));var O,M,N=d.print||A,I=d.printErr||D;function R(e,r){Object.getOwnPropertyDescriptor(d,e)||Object.defineProperty(d,e,{configurable:!0,get:function(){Te("Module."+e+" has been replaced with plain "+r+" (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}})}function x(e){return"FS_createPath"===e||"FS_createDataFile"===e||"FS_createPreloadedFile"===e||"FS_unlink"===e||"addRunDependency"===e||"FS_createLazyFile"===e||"FS_createDevice"===e||"removeRunDependency"===e}Object.assign(d,f),f=null,O="fetchSettings",Object.getOwnPropertyDescriptor(d,O)&&Te("`Module."+O+"` was supplied but `"+O+"` not included in INCOMING_MODULE_JS_API"),d.arguments&&(p=d.arguments),R("arguments","arguments_"),d.thisProgram&&(h=d.thisProgram),R("thisProgram","thisProgram"),d.quit&&(m=d.quit),R("quit","quit_"),z(void 0===d.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),z(void 0===d.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),z(void 0===d.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),z(void 0===d.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),z(void 0===d.read,"Module.read option was removed (modify read_ in JS)"),z(void 0===d.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),z(void 0===d.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),z(void 0===d.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),z(void 0===d.TOTAL_MEMORY,"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),R("read","read_"),R("readAsync","readAsync"),R("readBinary","readBinary"),R("setWindowTitle","setWindowTitle"),z(v||y||g,"Pthreads do not work in this environment yet (need Web Workers, or an alternative to them)"),z(!_,"shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable."),Atomics.load,Atomics.store,Atomics.compareExchange,d.wasmBinary&&(M=d.wasmBinary),R("wasmBinary","wasmBinary");var L,W,j=d.noExitRuntime||!0;R("noExitRuntime","noExitRuntime"),"object"!=typeof WebAssembly&&Te("no native wasm support detected");var B,U=!1;function z(e,r){e||Te("Assertion failed"+(r?": "+r:""))}var $,H,G,V,Y,q,K,X,J,Q="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function Z(e,r,t){for(var n=r+t,o=r;e[o]&&!(o>=n);)++o;if(o-r>16&&e.buffer&&Q)return Q.decode(e.buffer instanceof SharedArrayBuffer?e.slice(r,o):e.subarray(r,o));for(var i="";r>10,56320|1023&u)}}else i+=String.fromCharCode((31&a)<<6|s)}else i+=String.fromCharCode(a)}return i}function ee(e,r){return e?Z(n(),e,r):""}function re(e,r,t,n){if(!(n>0))return 0;for(var o=t,i=t+n-1,a=0;a=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&e.charCodeAt(++a)),s<=127){if(t>=i)break;r[t++]=s}else if(s<=2047){if(t+1>=i)break;r[t++]=192|s>>6,r[t++]=128|63&s}else if(s<=65535){if(t+2>=i)break;r[t++]=224|s>>12,r[t++]=128|s>>6&63,r[t++]=128|63&s}else{if(t+3>=i)break;s>1114111&&nr("Invalid Unicode code point "+Je(s)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF)."),r[t++]=240|s>>18,r[t++]=128|s>>12&63,r[t++]=128|s>>6&63,r[t++]=128|63&s}}return r[t]=0,t-o}function te(e,r,t){return z("number"==typeof t,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),re(e,n(),r,t)}function ne(e){for(var r=0,t=0;t=55296&&n<=57343?(r+=4,++t):r+=3}return r}function oe(e){$=e,d.HEAP8=H=new Int8Array(e),d.HEAP16=V=new Int16Array(e),d.HEAP32=q=new Int32Array(e),d.HEAPU8=G=new Uint8Array(e),d.HEAPU16=Y=new Uint16Array(e),d.HEAPU32=K=new Uint32Array(e),d.HEAPF32=X=new Float32Array(e),d.HEAPF64=J=new Float64Array(e)}T&&($=d.buffer);var ie=5242880;d.STACK_SIZE&&z(ie===d.STACK_SIZE,"the stack size can no longer be determined at runtime");var ae,se=d.INITIAL_MEMORY||16777216;if(R("INITIAL_MEMORY","INITIAL_MEMORY"),z(se>=ie,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+se+"! (STACK_SIZE="+ie+")"),z("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&null!=Int32Array.prototype.subarray&&null!=Int32Array.prototype.set,"JS engine does not provide full typed array support"),T)L=d.wasmMemory,$=d.buffer;else if(d.wasmMemory)L=d.wasmMemory;else if(!((L=new WebAssembly.Memory({initial:se/65536,maximum:32768,shared:!0})).buffer instanceof SharedArrayBuffer))throw I("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),g&&I("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");function ce(){var e=ln();z(0==(3&e)),0==e&&(e+=4),s()[e>>2]=34821223,s()[e+4>>2]=2310721022,s()[0]=1668509029}function ue(){if(!U){var e=ln();0==e&&(e+=4);var r=s()[e>>2],t=s()[e+4>>2];34821223==r&&2310721022==t||Te("Stack overflow! Stack cookie has been overwritten at "+Je(e)+", expected hex dwords 0x89BACDFE and 0x2135467, but received "+Je(t)+" "+Je(r)),1668509029!==s()[0]&&Te("Runtime error: The application has corrupted its heap memory area (address zero)!")}}L&&($=L.buffer),z((se=$.byteLength)%65536==0),oe($),function(){var e=new Int16Array(1),r=new Int8Array(e.buffer);if(e[0]=25459,115!==r[0]||99!==r[1])throw"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)"}();var le=[],de=[],fe=[],pe=!1;function he(){return j}function me(){z(!pe),pe=!0,T||(ue(),Sn(un(),ln()),d.noFSInit||Ye.init.initialized||Ye.init(),Ye.ignorePermissions=!1,Le.init(),Ze(de))}z(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),z(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),z(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),z(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var ve=0,ye=null,ge=null,_e={};function we(e){for(var r=e;;){if(!_e[e])return e;e=r+Math.random()}}function Ee(e){ve++,d.monitorRunDependencies&&d.monitorRunDependencies(ve),e?(z(!_e[e]),_e[e]=1,null===ye&&"undefined"!=typeof setInterval&&(ye=setInterval((function(){if(U)return clearInterval(ye),void(ye=null);var e=!1;for(var r in _e)e||(e=!0,I("still waiting on run dependencies:")),I("dependency: "+r);e&&I("(end of list)")}),1e4))):I("warning: run dependency added without ID")}function be(e){if(ve--,d.monitorRunDependencies&&d.monitorRunDependencies(ve),e?(z(_e[e]),delete _e[e]):I("warning: run dependency removed without ID"),0==ve&&(null!==ye&&(clearInterval(ye),ye=null),ge)){var r=ge;ge=null,r()}}function Te(e){d.onAbort&&d.onAbort(e),I(e="Aborted("+e+")"),U=!0,B=1;var r=new WebAssembly.RuntimeError(e);throw l(r),r}var ke,Se,Pe;function Ce(e){return e.startsWith("data:application/octet-stream;base64,")}function Fe(e){return e.startsWith("file://")}function Ae(e,r){return function(){var t=e,n=r;return r||(n=d.asm),z(pe,"native function `"+t+"` called before runtime initialization"),n[e]||z(n[e],"exported native function `"+t+"` not found"),n[e].apply(null,arguments)}}function De(e){try{if(e==ke&&M)return new Uint8Array(M);if(b)return b(e);throw"both async and sync fetching of the wasm failed"}catch(e){Te(e)}}Ce(ke="web_example.wasm")||(ke=S(ke));var Oe={};function Me(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Ne(e){z(!T,"Internal Error! cleanupThread() can only ever be called from main application thread!"),z(e,"Internal Error! Null pthread_ptr in cleanupThread!");var r=Qe.pthreads[e];z(r),Qe.returnWorkerToPool(r)}var Ie={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,r)=>{for(var t=0,n=e.length-1;n>=0;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),t++):t&&(e.splice(n,1),t--)}if(r)for(;t;t--)e.unshift("..");return e},normalize:e=>{var r=Ie.isAbs(e),t="/"===e.substr(-1);return(e=Ie.normalizeArray(e.split("/").filter((e=>!!e)),!r).join("/"))||r||(e="."),e&&t&&(e+="/"),(r?"/":"")+e},dirname:e=>{var r=Ie.splitPath(e),t=r[0],n=r[1];return t||n?(n&&(n=n.substr(0,n.length-1)),t+n):"."},basename:e=>{if("/"===e)return"/";var r=(e=(e=Ie.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===r?e:e.substr(r+1)},join:function(){var e=Array.prototype.slice.call(arguments);return Ie.normalize(e.join("/"))},join2:(e,r)=>Ie.normalize(e+"/"+r)},Re={resolve:function(){for(var e="",r=!1,t=arguments.length-1;t>=-1&&!r;t--){var n=t>=0?arguments[t]:Ye.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,r=Ie.isAbs(n)}return(r?"/":"")+(e=Ie.normalizeArray(e.split("/").filter((e=>!!e)),!r).join("/"))||"."},relative:(e,r)=>{function t(e){for(var r=0;r=0&&""===e[t];t--);return r>t?[]:e.slice(r,t-r+1)}e=Re.resolve(e).substr(1),r=Re.resolve(r).substr(1);for(var n=t(e.split("/")),o=t(r.split("/")),i=Math.min(n.length,o.length),a=i,s=0;s0?t:ne(e)+1,o=new Array(n),i=re(e,o,0,o.length);return r&&(o.length=i),o}var Le={ttys:[],init:function(){},shutdown:function(){},register:function(e,r){Le.ttys[e]={input:[],output:[],ops:r},Ye.registerDevice(e,Le.stream_ops)},stream_ops:{open:function(e){var r=Le.ttys[e.node.rdev];if(!r)throw new Ye.ErrnoError(43);e.tty=r,e.seekable=!1},close:function(e){e.tty.ops.fsync(e.tty)},fsync:function(e){e.tty.ops.fsync(e.tty)},read:function(e,r,t,n,o){if(!e.tty||!e.tty.ops.get_char)throw new Ye.ErrnoError(60);for(var i=0,a=0;a0?t.slice(0,n).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(r=window.prompt("Input: "))&&(r+="\n"):"function"==typeof readline&&null!==(r=readline())&&(r+="\n");if(!r)return null;e.input=xe(r,!0)}return e.input.shift()},put_char:function(e,r){null===r||10===r?(N(Z(e.output,0)),e.output=[]):0!=r&&e.output.push(r)},fsync:function(e){e.output&&e.output.length>0&&(N(Z(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,r){null===r||10===r?(I(Z(e.output,0)),e.output=[]):0!=r&&e.output.push(r)},fsync:function(e){e.output&&e.output.length>0&&(I(Z(e.output,0)),e.output=[])}}};function We(e){e=function(e,r){return z(r,"alignment argument is required"),Math.ceil(e/r)*r}(e,65536);var r=on(65536,e);return r?function(e,r){return n().fill(0,e,e+r),e}(r,e):0}var je={ops_table:null,mount:function(e){return je.createNode(null,"/",16895,0)},createNode:function(e,r,t,n){if(Ye.isBlkdev(t)||Ye.isFIFO(t))throw new Ye.ErrnoError(63);je.ops_table||(je.ops_table={dir:{node:{getattr:je.node_ops.getattr,setattr:je.node_ops.setattr,lookup:je.node_ops.lookup,mknod:je.node_ops.mknod,rename:je.node_ops.rename,unlink:je.node_ops.unlink,rmdir:je.node_ops.rmdir,readdir:je.node_ops.readdir,symlink:je.node_ops.symlink},stream:{llseek:je.stream_ops.llseek}},file:{node:{getattr:je.node_ops.getattr,setattr:je.node_ops.setattr},stream:{llseek:je.stream_ops.llseek,read:je.stream_ops.read,write:je.stream_ops.write,allocate:je.stream_ops.allocate,mmap:je.stream_ops.mmap,msync:je.stream_ops.msync}},link:{node:{getattr:je.node_ops.getattr,setattr:je.node_ops.setattr,readlink:je.node_ops.readlink},stream:{}},chrdev:{node:{getattr:je.node_ops.getattr,setattr:je.node_ops.setattr},stream:Ye.chrdev_stream_ops}});var o=Ye.createNode(e,r,t,n);return Ye.isDir(o.mode)?(o.node_ops=je.ops_table.dir.node,o.stream_ops=je.ops_table.dir.stream,o.contents={}):Ye.isFile(o.mode)?(o.node_ops=je.ops_table.file.node,o.stream_ops=je.ops_table.file.stream,o.usedBytes=0,o.contents=null):Ye.isLink(o.mode)?(o.node_ops=je.ops_table.link.node,o.stream_ops=je.ops_table.link.stream):Ye.isChrdev(o.mode)&&(o.node_ops=je.ops_table.chrdev.node,o.stream_ops=je.ops_table.chrdev.stream),o.timestamp=Date.now(),e&&(e.contents[r]=o,e.timestamp=o.timestamp),o},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage:function(e,r){var t=e.contents?e.contents.length:0;if(!(t>=r)){r=Math.max(r,t*(t<1048576?2:1.125)>>>0),0!=t&&(r=Math.max(r,256));var n=e.contents;e.contents=new Uint8Array(r),e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0)}},resizeFileStorage:function(e,r){if(e.usedBytes!=r)if(0==r)e.contents=null,e.usedBytes=0;else{var t=e.contents;e.contents=new Uint8Array(r),t&&e.contents.set(t.subarray(0,Math.min(r,e.usedBytes))),e.usedBytes=r}},node_ops:{getattr:function(e){var r={};return r.dev=Ye.isChrdev(e.mode)?e.id:1,r.ino=e.id,r.mode=e.mode,r.nlink=1,r.uid=0,r.gid=0,r.rdev=e.rdev,Ye.isDir(e.mode)?r.size=4096:Ye.isFile(e.mode)?r.size=e.usedBytes:Ye.isLink(e.mode)?r.size=e.link.length:r.size=0,r.atime=new Date(e.timestamp),r.mtime=new Date(e.timestamp),r.ctime=new Date(e.timestamp),r.blksize=4096,r.blocks=Math.ceil(r.size/r.blksize),r},setattr:function(e,r){void 0!==r.mode&&(e.mode=r.mode),void 0!==r.timestamp&&(e.timestamp=r.timestamp),void 0!==r.size&&je.resizeFileStorage(e,r.size)},lookup:function(e,r){throw Ye.genericErrors[44]},mknod:function(e,r,t,n){return je.createNode(e,r,t,n)},rename:function(e,r,t){if(Ye.isDir(e.mode)){var n;try{n=Ye.lookupNode(r,t)}catch(e){}if(n)for(var o in n.contents)throw new Ye.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=t,r.contents[t]=e,r.timestamp=e.parent.timestamp,e.parent=r},unlink:function(e,r){delete e.contents[r],e.timestamp=Date.now()},rmdir:function(e,r){var t=Ye.lookupNode(e,r);for(var n in t.contents)throw new Ye.ErrnoError(55);delete e.contents[r],e.timestamp=Date.now()},readdir:function(e){var r=[".",".."];for(var t in e.contents)e.contents.hasOwnProperty(t)&&r.push(t);return r},symlink:function(e,r,t){var n=je.createNode(e,r,41471,0);return n.link=t,n},readlink:function(e){if(!Ye.isLink(e.mode))throw new Ye.ErrnoError(28);return e.link}},stream_ops:{read:function(e,r,t,n,o){var i=e.node.contents;if(o>=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-o,n);if(z(a>=0),a>8&&i.subarray)r.set(i.subarray(o,o+a),t);else for(var s=0;s0||n+r{if("undefined"!=typeof indexedDB)return indexedDB;var e=null;return"object"==typeof window&&(e=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB),z(e,"IDBFS used, but indexedDB not supported"),e},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function(e){return je.mount.apply(null,arguments)},syncfs:(e,r,t)=>{Be.getLocalSet(e,((n,o)=>{if(n)return t(n);Be.getRemoteSet(e,((e,n)=>{if(e)return t(e);var i=r?n:o,a=r?o:n;Be.reconcile(i,a,t)}))}))},quit:()=>{Object.values(Be.dbs).forEach((e=>e.close())),Be.dbs={}},getDB:(e,r)=>{var t,n=Be.dbs[e];if(n)return r(null,n);try{t=Be.indexedDB().open(e,Be.DB_VERSION)}catch(e){return r(e)}if(!t)return r("Unable to connect to IndexedDB");t.onupgradeneeded=e=>{var r,t=e.target.result,n=e.target.transaction;(r=t.objectStoreNames.contains(Be.DB_STORE_NAME)?n.objectStore(Be.DB_STORE_NAME):t.createObjectStore(Be.DB_STORE_NAME)).indexNames.contains("timestamp")||r.createIndex("timestamp","timestamp",{unique:!1})},t.onsuccess=()=>{n=t.result,Be.dbs[e]=n,r(null,n)},t.onerror=e=>{r(this.error),e.preventDefault()}},getLocalSet:(e,r)=>{var t={};function n(e){return"."!==e&&".."!==e}function o(e){return r=>Ie.join2(e,r)}for(var i=Ye.readdir(e.mountpoint).filter(n).map(o(e.mountpoint));i.length;){var a,s=i.pop();try{a=Ye.stat(s)}catch(e){return r(e)}Ye.isDir(a.mode)&&i.push.apply(i,Ye.readdir(s).filter(n).map(o(s))),t[s]={timestamp:a.mtime}}return r(null,{type:"local",entries:t})},getRemoteSet:(e,r)=>{var t={};Be.getDB(e.mountpoint,((e,n)=>{if(e)return r(e);try{var o=n.transaction([Be.DB_STORE_NAME],"readonly");o.onerror=e=>{r(this.error),e.preventDefault()},o.objectStore(Be.DB_STORE_NAME).index("timestamp").openKeyCursor().onsuccess=e=>{var o=e.target.result;if(!o)return r(null,{type:"remote",db:n,entries:t});t[o.primaryKey]={timestamp:o.key},o.continue()}}catch(e){return r(e)}}))},loadLocalEntry:(e,r)=>{var t,n;try{n=Ye.lookupPath(e).node,t=Ye.stat(e)}catch(e){return r(e)}return Ye.isDir(t.mode)?r(null,{timestamp:t.mtime,mode:t.mode}):Ye.isFile(t.mode)?(n.contents=je.getFileDataAsTypedArray(n),r(null,{timestamp:t.mtime,mode:t.mode,contents:n.contents})):r(new Error("node type not supported"))},storeLocalEntry:(e,r,t)=>{try{if(Ye.isDir(r.mode))Ye.mkdirTree(e,r.mode);else{if(!Ye.isFile(r.mode))return t(new Error("node type not supported"));Ye.writeFile(e,r.contents,{canOwn:!0})}Ye.chmod(e,r.mode),Ye.utime(e,r.timestamp,r.timestamp)}catch(e){return t(e)}t(null)},removeLocalEntry:(e,r)=>{try{var t=Ye.stat(e);Ye.isDir(t.mode)?Ye.rmdir(e):Ye.isFile(t.mode)&&Ye.unlink(e)}catch(e){return r(e)}r(null)},loadRemoteEntry:(e,r,t)=>{var n=e.get(r);n.onsuccess=e=>{t(null,e.target.result)},n.onerror=e=>{t(this.error),e.preventDefault()}},storeRemoteEntry:(e,r,t,n)=>{try{var o=e.put(t,r)}catch(e){return void n(e)}o.onsuccess=()=>{n(null)},o.onerror=e=>{n(this.error),e.preventDefault()}},removeRemoteEntry:(e,r,t)=>{var n=e.delete(r);n.onsuccess=()=>{t(null)},n.onerror=e=>{t(this.error),e.preventDefault()}},reconcile:(e,r,t)=>{var n=0,o=[];Object.keys(e.entries).forEach((function(t){var i=e.entries[t],a=r.entries[t];a&&i.timestamp.getTime()==a.timestamp.getTime()||(o.push(t),n++)}));var i=[];if(Object.keys(r.entries).forEach((function(r){e.entries[r]||(i.push(r),n++)})),!n)return t(null);var a=!1,s=("remote"===e.type?e.db:r.db).transaction([Be.DB_STORE_NAME],"readwrite"),c=s.objectStore(Be.DB_STORE_NAME);function u(e){if(e&&!a)return a=!0,t(e)}s.onerror=e=>{u(this.error),e.preventDefault()},s.oncomplete=e=>{a||t(null)},o.sort().forEach((e=>{"local"===r.type?Be.loadRemoteEntry(c,e,((r,t)=>{if(r)return u(r);Be.storeLocalEntry(e,t,u)})):Be.loadLocalEntry(e,((r,t)=>{if(r)return u(r);Be.storeRemoteEntry(c,e,t,u)}))})),i.sort().reverse().forEach((e=>{"local"===r.type?Be.removeLocalEntry(e,u):Be.removeRemoteEntry(c,e,u)}))}},Ue={},ze={isWindows:!1,staticInit:()=>{ze.isWindows=!!process.platform.match(/^win/);var e=process.binding("constants");e.fs&&(e=e.fs),ze.flagsForNodeMap={1024:e.O_APPEND,64:e.O_CREAT,128:e.O_EXCL,256:e.O_NOCTTY,0:e.O_RDONLY,2:e.O_RDWR,4096:e.O_SYNC,512:e.O_TRUNC,1:e.O_WRONLY,131072:e.O_NOFOLLOW},z(0===ze.flagsForNodeMap[0])},convertNodeCode:e=>{var r=e.code;return z(r in Ue,"unexpected node error code: "+r+" ("+e+")"),Ue[r]},mount:e=>(z(g),ze.createNode(null,"/",ze.getMode(e.opts.root),0)),createNode:(e,r,t,n)=>{if(!Ye.isDir(t)&&!Ye.isFile(t)&&!Ye.isLink(t))throw new Ye.ErrnoError(28);var o=Ye.createNode(e,r,t);return o.node_ops=ze.node_ops,o.stream_ops=ze.stream_ops,o},getMode:e=>{var r;try{r=C.lstatSync(e),ze.isWindows&&(r.mode=r.mode|(292&r.mode)>>2)}catch(e){if(!e.code)throw e;throw new Ye.ErrnoError(ze.convertNodeCode(e))}return r.mode},realPath:e=>{for(var r=[];e.parent!==e;)r.push(e.name),e=e.parent;return r.push(e.mount.opts.root),r.reverse(),Ie.join.apply(null,r)},flagsForNode:e=>{e&=-2097153,e&=-2049,e&=-32769,e&=-524289,e&=-65537;var r=0;for(var t in ze.flagsForNodeMap)e&t&&(r|=ze.flagsForNodeMap[t],e^=t);if(e)throw new Ye.ErrnoError(28);return r},node_ops:{getattr:e=>{var r,t=ze.realPath(e);try{r=C.lstatSync(t)}catch(e){if(!e.code)throw e;throw new Ye.ErrnoError(ze.convertNodeCode(e))}return ze.isWindows&&!r.blksize&&(r.blksize=4096),ze.isWindows&&!r.blocks&&(r.blocks=(r.size+r.blksize-1)/r.blksize|0),{dev:r.dev,ino:r.ino,mode:r.mode,nlink:r.nlink,uid:r.uid,gid:r.gid,rdev:r.rdev,size:r.size,atime:r.atime,mtime:r.mtime,ctime:r.ctime,blksize:r.blksize,blocks:r.blocks}},setattr:(e,r)=>{var t=ze.realPath(e);try{if(void 0!==r.mode&&(C.chmodSync(t,r.mode),e.mode=r.mode),void 0!==r.timestamp){var n=new Date(r.timestamp);C.utimesSync(t,n,n)}void 0!==r.size&&C.truncateSync(t,r.size)}catch(e){if(!e.code)throw e;throw new Ye.ErrnoError(ze.convertNodeCode(e))}},lookup:(e,r)=>{var t=Ie.join2(ze.realPath(e),r),n=ze.getMode(t);return ze.createNode(e,r,n)},mknod:(e,r,t,n)=>{var o=ze.createNode(e,r,t,n),i=ze.realPath(o);try{Ye.isDir(o.mode)?C.mkdirSync(i,o.mode):C.writeFileSync(i,"",{mode:o.mode})}catch(e){if(!e.code)throw e;throw new Ye.ErrnoError(ze.convertNodeCode(e))}return o},rename:(e,r,t)=>{var n=ze.realPath(e),o=Ie.join2(ze.realPath(r),t);try{C.renameSync(n,o)}catch(e){if(!e.code)throw e;throw new Ye.ErrnoError(ze.convertNodeCode(e))}e.name=t},unlink:(e,r)=>{var t=Ie.join2(ze.realPath(e),r);try{C.unlinkSync(t)}catch(e){if(!e.code)throw e;throw new Ye.ErrnoError(ze.convertNodeCode(e))}},rmdir:(e,r)=>{var t=Ie.join2(ze.realPath(e),r);try{C.rmdirSync(t)}catch(e){if(!e.code)throw e;throw new Ye.ErrnoError(ze.convertNodeCode(e))}},readdir:e=>{var r=ze.realPath(e);try{return C.readdirSync(r)}catch(e){if(!e.code)throw e;throw new Ye.ErrnoError(ze.convertNodeCode(e))}},symlink:(e,r,t)=>{var n=Ie.join2(ze.realPath(e),r);try{C.symlinkSync(t,n)}catch(e){if(!e.code)throw e;throw new Ye.ErrnoError(ze.convertNodeCode(e))}},readlink:e=>{var r=ze.realPath(e);try{return r=C.readlinkSync(r),r=F.relative(F.resolve(e.mount.opts.root),r)}catch(e){if(!e.code)throw e;if("UNKNOWN"===e.code)throw new Ye.ErrnoError(28);throw new Ye.ErrnoError(ze.convertNodeCode(e))}}},stream_ops:{open:e=>{var r=ze.realPath(e.node);try{Ye.isFile(e.node.mode)&&(e.nfd=C.openSync(r,ze.flagsForNode(e.flags)))}catch(e){if(!e.code)throw e;throw new Ye.ErrnoError(ze.convertNodeCode(e))}},close:e=>{try{Ye.isFile(e.node.mode)&&e.nfd&&C.closeSync(e.nfd)}catch(e){if(!e.code)throw e;throw new Ye.ErrnoError(ze.convertNodeCode(e))}},read:(e,r,t,n,o)=>{if(0===n)return 0;try{return C.readSync(e.nfd,Buffer.from(r.buffer),t,n,o)}catch(e){throw new Ye.ErrnoError(ze.convertNodeCode(e))}},write:(e,r,t,n,o)=>{try{return C.writeSync(e.nfd,Buffer.from(r.buffer),t,n,o)}catch(e){throw new Ye.ErrnoError(ze.convertNodeCode(e))}},llseek:(e,r,t)=>{var n=r;if(1===t)n+=e.position;else if(2===t&&Ye.isFile(e.node.mode))try{n+=C.fstatSync(e.nfd).size}catch(e){throw new Ye.ErrnoError(ze.convertNodeCode(e))}if(n<0)throw new Ye.ErrnoError(28);return n},mmap:(e,r,n,o,i)=>{if(!Ye.isFile(e.node.mode))throw new Ye.ErrnoError(43);var a=We(r);return ze.stream_ops.read(e,t(),a,r,n),{ptr:a,allocated:!0}},msync:(e,r,t,n,o)=>(ze.stream_ops.write(e,r,0,n,t,!1),0)}},$e={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"};function He(e){var r=gn(),t=e();return _n(r),t}function Ge(e){return Ge.recursionGuard=1+(0|Ge.recursionGuard),Ge.recursionGuard>1?e:(z(bn),He((function(){try{var r=e;r.startsWith("__Z")&&(r=r.substr(1));var t=ne(r)+1,n=wn(t);te(r,n,t);var o=wn(4),i=bn(n,0,0,o);if(0===a()[o>>2]&&i)return ee(i)}catch(e){}finally{rn(i),Ge.recursionGuard<2&&--Ge.recursionGuard}return e})))}function Ve(e){return e.replace(/\b_Z[\w\d_]+/g,(function(e){var r=Ge(e);return e===r?e:r+" ["+e+"]"}))}var Ye={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(e,r={})=>{if(!(e=Re.resolve(e)))return{path:"",node:null};if((r=Object.assign({follow_mount:!0,recurse_count:0},r)).recurse_count>8)throw new Ye.ErrnoError(32);for(var t=e.split("/").filter((e=>!!e)),n=Ye.root,o="/",i=0;i40)throw new Ye.ErrnoError(32)}}return{path:o,node:n}},getPath:e=>{for(var r;;){if(Ye.isRoot(e)){var t=e.mount.mountpoint;return r?"/"!==t[t.length-1]?t+"/"+r:t+r:t}r=r?e.name+"/"+r:e.name,e=e.parent}},hashName:(e,r)=>{for(var t=0,n=0;n>>0)%Ye.nameTable.length},hashAddNode:e=>{var r=Ye.hashName(e.parent.id,e.name);e.name_next=Ye.nameTable[r],Ye.nameTable[r]=e},hashRemoveNode:e=>{var r=Ye.hashName(e.parent.id,e.name);if(Ye.nameTable[r]===e)Ye.nameTable[r]=e.name_next;else for(var t=Ye.nameTable[r];t;){if(t.name_next===e){t.name_next=e.name_next;break}t=t.name_next}},lookupNode:(e,r)=>{var t=Ye.mayLookup(e);if(t)throw new Ye.ErrnoError(t,e);for(var n=Ye.hashName(e.id,r),o=Ye.nameTable[n];o;o=o.name_next){var i=o.name;if(o.parent.id===e.id&&i===r)return o}return Ye.lookup(e,r)},createNode:(e,r,t,n)=>{z("object"==typeof e);var o=new Ye.FSNode(e,r,t,n);return Ye.hashAddNode(o),o},destroyNode:e=>{Ye.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>49152==(49152&e),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:e=>{var r=Ye.flagModes[e];if(void 0===r)throw new Error("Unknown file open mode: "+e);return r},flagsToPermissionString:e=>{var r=["r","w","rw"][3&e];return 512&e&&(r+="w"),r},nodePermissions:(e,r)=>Ye.ignorePermissions||(!r.includes("r")||292&e.mode)&&(!r.includes("w")||146&e.mode)&&(!r.includes("x")||73&e.mode)?0:2,mayLookup:e=>Ye.nodePermissions(e,"x")||(e.node_ops.lookup?0:2),mayCreate:(e,r)=>{try{return Ye.lookupNode(e,r),20}catch(e){}return Ye.nodePermissions(e,"wx")},mayDelete:(e,r,t)=>{var n;try{n=Ye.lookupNode(e,r)}catch(e){return e.errno}var o=Ye.nodePermissions(e,"wx");if(o)return o;if(t){if(!Ye.isDir(n.mode))return 54;if(Ye.isRoot(n)||Ye.getPath(n)===Ye.cwd())return 10}else if(Ye.isDir(n.mode))return 31;return 0},mayOpen:(e,r)=>e?Ye.isLink(e.mode)?32:Ye.isDir(e.mode)&&("r"!==Ye.flagsToPermissionString(r)||512&r)?31:Ye.nodePermissions(e,Ye.flagsToPermissionString(r)):44,MAX_OPEN_FDS:4096,nextfd:(e=0,r=Ye.MAX_OPEN_FDS)=>{for(var t=e;t<=r;t++)if(!Ye.streams[t])return t;throw new Ye.ErrnoError(33)},getStream:e=>Ye.streams[e],createStream:(e,r,t)=>{Ye.FSStream||(Ye.FSStream=function(){this.shared={}},Ye.FSStream.prototype={},Object.defineProperties(Ye.FSStream.prototype,{object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}},flags:{get:function(){return this.shared.flags},set:function(e){this.shared.flags=e}},position:{get:function(){return this.shared.position},set:function(e){this.shared.position=e}}})),e=Object.assign(new Ye.FSStream,e);var n=Ye.nextfd(r,t);return e.fd=n,Ye.streams[n]=e,e},closeStream:e=>{Ye.streams[e]=null},chrdev_stream_ops:{open:e=>{var r=Ye.getDevice(e.node.rdev);e.stream_ops=r.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:()=>{throw new Ye.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,r)=>e<<8|r,registerDevice:(e,r)=>{Ye.devices[e]={stream_ops:r}},getDevice:e=>Ye.devices[e],getMounts:e=>{for(var r=[],t=[e];t.length;){var n=t.pop();r.push(n),t.push.apply(t,n.mounts)}return r},syncfs:(e,r)=>{"function"==typeof e&&(r=e,e=!1),Ye.syncFSRequests++,Ye.syncFSRequests>1&&I("warning: "+Ye.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var t=Ye.getMounts(Ye.root.mount),n=0;function o(e){return z(Ye.syncFSRequests>0),Ye.syncFSRequests--,r(e)}function i(e){if(e)return i.errored?void 0:(i.errored=!0,o(e));++n>=t.length&&o(null)}t.forEach((r=>{if(!r.type.syncfs)return i(null);r.type.syncfs(r,e,i)}))},mount:(e,r,t)=>{if("string"==typeof e)throw e;var n,o="/"===t,i=!t;if(o&&Ye.root)throw new Ye.ErrnoError(10);if(!o&&!i){var a=Ye.lookupPath(t,{follow_mount:!1});if(t=a.path,n=a.node,Ye.isMountpoint(n))throw new Ye.ErrnoError(10);if(!Ye.isDir(n.mode))throw new Ye.ErrnoError(54)}var s={type:e,opts:r,mountpoint:t,mounts:[]},c=e.mount(s);return c.mount=s,s.root=c,o?Ye.root=c:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),c},unmount:e=>{var r=Ye.lookupPath(e,{follow_mount:!1});if(!Ye.isMountpoint(r.node))throw new Ye.ErrnoError(28);var t=r.node,n=t.mounted,o=Ye.getMounts(n);Object.keys(Ye.nameTable).forEach((e=>{for(var r=Ye.nameTable[e];r;){var t=r.name_next;o.includes(r.mount)&&Ye.destroyNode(r),r=t}})),t.mounted=null;var i=t.mount.mounts.indexOf(n);z(-1!==i),t.mount.mounts.splice(i,1)},lookup:(e,r)=>e.node_ops.lookup(e,r),mknod:(e,r,t)=>{var n=Ye.lookupPath(e,{parent:!0}).node,o=Ie.basename(e);if(!o||"."===o||".."===o)throw new Ye.ErrnoError(28);var i=Ye.mayCreate(n,o);if(i)throw new Ye.ErrnoError(i);if(!n.node_ops.mknod)throw new Ye.ErrnoError(63);return n.node_ops.mknod(n,o,r,t)},create:(e,r)=>(r=void 0!==r?r:438,r&=4095,r|=32768,Ye.mknod(e,r,0)),mkdir:(e,r)=>(r=void 0!==r?r:511,r&=1023,r|=16384,Ye.mknod(e,r,0)),mkdirTree:(e,r)=>{for(var t=e.split("/"),n="",o=0;o(void 0===t&&(t=r,r=438),r|=8192,Ye.mknod(e,r,t)),symlink:(e,r)=>{if(!Re.resolve(e))throw new Ye.ErrnoError(44);var t=Ye.lookupPath(r,{parent:!0}).node;if(!t)throw new Ye.ErrnoError(44);var n=Ie.basename(r),o=Ye.mayCreate(t,n);if(o)throw new Ye.ErrnoError(o);if(!t.node_ops.symlink)throw new Ye.ErrnoError(63);return t.node_ops.symlink(t,n,e)},rename:(e,r)=>{var t,n,o=Ie.dirname(e),i=Ie.dirname(r),a=Ie.basename(e),s=Ie.basename(r);if(t=Ye.lookupPath(e,{parent:!0}).node,n=Ye.lookupPath(r,{parent:!0}).node,!t||!n)throw new Ye.ErrnoError(44);if(t.mount!==n.mount)throw new Ye.ErrnoError(75);var c,u=Ye.lookupNode(t,a),l=Re.relative(e,i);if("."!==l.charAt(0))throw new Ye.ErrnoError(28);if("."!==(l=Re.relative(r,o)).charAt(0))throw new Ye.ErrnoError(55);try{c=Ye.lookupNode(n,s)}catch(e){}if(u!==c){var d=Ye.isDir(u.mode),f=Ye.mayDelete(t,a,d);if(f)throw new Ye.ErrnoError(f);if(f=c?Ye.mayDelete(n,s,d):Ye.mayCreate(n,s))throw new Ye.ErrnoError(f);if(!t.node_ops.rename)throw new Ye.ErrnoError(63);if(Ye.isMountpoint(u)||c&&Ye.isMountpoint(c))throw new Ye.ErrnoError(10);if(n!==t&&(f=Ye.nodePermissions(t,"w")))throw new Ye.ErrnoError(f);Ye.hashRemoveNode(u);try{t.node_ops.rename(u,n,s)}catch(e){throw e}finally{Ye.hashAddNode(u)}}},rmdir:e=>{var r=Ye.lookupPath(e,{parent:!0}).node,t=Ie.basename(e),n=Ye.lookupNode(r,t),o=Ye.mayDelete(r,t,!0);if(o)throw new Ye.ErrnoError(o);if(!r.node_ops.rmdir)throw new Ye.ErrnoError(63);if(Ye.isMountpoint(n))throw new Ye.ErrnoError(10);r.node_ops.rmdir(r,t),Ye.destroyNode(n)},readdir:e=>{var r=Ye.lookupPath(e,{follow:!0}).node;if(!r.node_ops.readdir)throw new Ye.ErrnoError(54);return r.node_ops.readdir(r)},unlink:e=>{var r=Ye.lookupPath(e,{parent:!0}).node;if(!r)throw new Ye.ErrnoError(44);var t=Ie.basename(e),n=Ye.lookupNode(r,t),o=Ye.mayDelete(r,t,!1);if(o)throw new Ye.ErrnoError(o);if(!r.node_ops.unlink)throw new Ye.ErrnoError(63);if(Ye.isMountpoint(n))throw new Ye.ErrnoError(10);r.node_ops.unlink(r,t),Ye.destroyNode(n)},readlink:e=>{var r=Ye.lookupPath(e).node;if(!r)throw new Ye.ErrnoError(44);if(!r.node_ops.readlink)throw new Ye.ErrnoError(28);return Re.resolve(Ye.getPath(r.parent),r.node_ops.readlink(r))},stat:(e,r)=>{var t=Ye.lookupPath(e,{follow:!r}).node;if(!t)throw new Ye.ErrnoError(44);if(!t.node_ops.getattr)throw new Ye.ErrnoError(63);return t.node_ops.getattr(t)},lstat:e=>Ye.stat(e,!0),chmod:(e,r,t)=>{var n;if(!(n="string"==typeof e?Ye.lookupPath(e,{follow:!t}).node:e).node_ops.setattr)throw new Ye.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&r|-4096&n.mode,timestamp:Date.now()})},lchmod:(e,r)=>{Ye.chmod(e,r,!0)},fchmod:(e,r)=>{var t=Ye.getStream(e);if(!t)throw new Ye.ErrnoError(8);Ye.chmod(t.node,r)},chown:(e,r,t,n)=>{var o;if(!(o="string"==typeof e?Ye.lookupPath(e,{follow:!n}).node:e).node_ops.setattr)throw new Ye.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:(e,r,t)=>{Ye.chown(e,r,t,!0)},fchown:(e,r,t)=>{var n=Ye.getStream(e);if(!n)throw new Ye.ErrnoError(8);Ye.chown(n.node,r,t)},truncate:(e,r)=>{if(r<0)throw new Ye.ErrnoError(28);var t;if(!(t="string"==typeof e?Ye.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new Ye.ErrnoError(63);if(Ye.isDir(t.mode))throw new Ye.ErrnoError(31);if(!Ye.isFile(t.mode))throw new Ye.ErrnoError(28);var n=Ye.nodePermissions(t,"w");if(n)throw new Ye.ErrnoError(n);t.node_ops.setattr(t,{size:r,timestamp:Date.now()})},ftruncate:(e,r)=>{var t=Ye.getStream(e);if(!t)throw new Ye.ErrnoError(8);if(0==(2097155&t.flags))throw new Ye.ErrnoError(28);Ye.truncate(t.node,r)},utime:(e,r,t)=>{var n=Ye.lookupPath(e,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(r,t)})},open:(e,r,t)=>{if(""===e)throw new Ye.ErrnoError(44);var n;if(t=void 0===t?438:t,t=64&(r="string"==typeof r?Ye.modeStringToFlags(r):r)?4095&t|32768:0,"object"==typeof e)n=e;else{e=Ie.normalize(e);try{n=Ye.lookupPath(e,{follow:!(131072&r)}).node}catch(e){}}var o=!1;if(64&r)if(n){if(128&r)throw new Ye.ErrnoError(20)}else n=Ye.mknod(e,t,0),o=!0;if(!n)throw new Ye.ErrnoError(44);if(Ye.isChrdev(n.mode)&&(r&=-513),65536&r&&!Ye.isDir(n.mode))throw new Ye.ErrnoError(54);if(!o){var i=Ye.mayOpen(n,r);if(i)throw new Ye.ErrnoError(i)}512&r&&!o&&Ye.truncate(n,0),r&=-131713;var a=Ye.createStream({node:n,path:Ye.getPath(n),flags:r,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return a.stream_ops.open&&a.stream_ops.open(a),!d.logReadFiles||1&r||(Ye.readFiles||(Ye.readFiles={}),e in Ye.readFiles||(Ye.readFiles[e]=1)),a},close:e=>{if(Ye.isClosed(e))throw new Ye.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{Ye.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek:(e,r,t)=>{if(Ye.isClosed(e))throw new Ye.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new Ye.ErrnoError(70);if(0!=t&&1!=t&&2!=t)throw new Ye.ErrnoError(28);return e.position=e.stream_ops.llseek(e,r,t),e.ungotten=[],e.position},read:(e,r,t,n,o)=>{if(n<0||o<0)throw new Ye.ErrnoError(28);if(Ye.isClosed(e))throw new Ye.ErrnoError(8);if(1==(2097155&e.flags))throw new Ye.ErrnoError(8);if(Ye.isDir(e.node.mode))throw new Ye.ErrnoError(31);if(!e.stream_ops.read)throw new Ye.ErrnoError(28);var i=void 0!==o;if(i){if(!e.seekable)throw new Ye.ErrnoError(70)}else o=e.position;var a=e.stream_ops.read(e,r,t,n,o);return i||(e.position+=a),a},write:(e,r,t,n,o,i)=>{if(n<0||o<0)throw new Ye.ErrnoError(28);if(Ye.isClosed(e))throw new Ye.ErrnoError(8);if(0==(2097155&e.flags))throw new Ye.ErrnoError(8);if(Ye.isDir(e.node.mode))throw new Ye.ErrnoError(31);if(!e.stream_ops.write)throw new Ye.ErrnoError(28);e.seekable&&1024&e.flags&&Ye.llseek(e,0,2);var a=void 0!==o;if(a){if(!e.seekable)throw new Ye.ErrnoError(70)}else o=e.position;var s=e.stream_ops.write(e,r,t,n,o,i);return a||(e.position+=s),s},allocate:(e,r,t)=>{if(Ye.isClosed(e))throw new Ye.ErrnoError(8);if(r<0||t<=0)throw new Ye.ErrnoError(28);if(0==(2097155&e.flags))throw new Ye.ErrnoError(8);if(!Ye.isFile(e.node.mode)&&!Ye.isDir(e.node.mode))throw new Ye.ErrnoError(43);if(!e.stream_ops.allocate)throw new Ye.ErrnoError(138);e.stream_ops.allocate(e,r,t)},mmap:(e,r,t,n,o)=>{if(0!=(2&n)&&0==(2&o)&&2!=(2097155&e.flags))throw new Ye.ErrnoError(2);if(1==(2097155&e.flags))throw new Ye.ErrnoError(2);if(!e.stream_ops.mmap)throw new Ye.ErrnoError(43);return e.stream_ops.mmap(e,r,t,n,o)},msync:(e,r,t,n,o)=>e.stream_ops.msync?e.stream_ops.msync(e,r,t,n,o):0,munmap:e=>0,ioctl:(e,r,t)=>{if(!e.stream_ops.ioctl)throw new Ye.ErrnoError(59);return e.stream_ops.ioctl(e,r,t)},readFile:(e,r={})=>{if(r.flags=r.flags||0,r.encoding=r.encoding||"binary","utf8"!==r.encoding&&"binary"!==r.encoding)throw new Error('Invalid encoding type "'+r.encoding+'"');var t,n=Ye.open(e,r.flags),o=Ye.stat(e).size,i=new Uint8Array(o);return Ye.read(n,i,0,o,0),"utf8"===r.encoding?t=Z(i,0):"binary"===r.encoding&&(t=i),Ye.close(n),t},writeFile:(e,r,t={})=>{t.flags=t.flags||577;var n=Ye.open(e,t.flags,t.mode);if("string"==typeof r){var o=new Uint8Array(ne(r)+1),i=re(r,o,0,o.length);Ye.write(n,o,0,i,void 0,t.canOwn)}else{if(!ArrayBuffer.isView(r))throw new Error("Unsupported data type");Ye.write(n,r,0,r.byteLength,void 0,t.canOwn)}Ye.close(n)},cwd:()=>Ye.currentPath,chdir:e=>{var r=Ye.lookupPath(e,{follow:!0});if(null===r.node)throw new Ye.ErrnoError(44);if(!Ye.isDir(r.node.mode))throw new Ye.ErrnoError(54);var t=Ye.nodePermissions(r.node,"x");if(t)throw new Ye.ErrnoError(t);Ye.currentPath=r.path},createDefaultDirectories:()=>{Ye.mkdir("/tmp"),Ye.mkdir("/home"),Ye.mkdir("/home/web_user")},createDefaultDevices:()=>{Ye.mkdir("/dev"),Ye.registerDevice(Ye.makedev(1,3),{read:()=>0,write:(e,r,t,n,o)=>n}),Ye.mkdev("/dev/null",Ye.makedev(1,3)),Le.register(Ye.makedev(5,0),Le.default_tty_ops),Le.register(Ye.makedev(6,0),Le.default_tty1_ops),Ye.mkdev("/dev/tty",Ye.makedev(5,0)),Ye.mkdev("/dev/tty1",Ye.makedev(6,0));var e=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);return()=>(crypto.getRandomValues(e),e[0])}if(g)try{var r=require("crypto");return()=>r.randomBytes(1)[0]}catch(e){}return()=>Te("no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };")}();Ye.createDevice("/dev","random",e),Ye.createDevice("/dev","urandom",e),Ye.mkdir("/dev/shm"),Ye.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{Ye.mkdir("/proc");var e=Ye.mkdir("/proc/self");Ye.mkdir("/proc/self/fd"),Ye.mount({mount:()=>{var r=Ye.createNode(e,"fd",16895,73);return r.node_ops={lookup:(e,r)=>{var t=+r,n=Ye.getStream(t);if(!n)throw new Ye.ErrnoError(8);var o={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>n.path}};return o.parent=o,o}},r}},{},"/proc/self/fd")},createStandardStreams:()=>{d.stdin?Ye.createDevice("/dev","stdin",d.stdin):Ye.symlink("/dev/tty","/dev/stdin"),d.stdout?Ye.createDevice("/dev","stdout",null,d.stdout):Ye.symlink("/dev/tty","/dev/stdout"),d.stderr?Ye.createDevice("/dev","stderr",null,d.stderr):Ye.symlink("/dev/tty1","/dev/stderr");var e=Ye.open("/dev/stdin",0),r=Ye.open("/dev/stdout",1),t=Ye.open("/dev/stderr",1);z(0===e.fd,"invalid handle for stdin ("+e.fd+")"),z(1===r.fd,"invalid handle for stdout ("+r.fd+")"),z(2===t.fd,"invalid handle for stderr ("+t.fd+")")},ensureErrnoError:()=>{Ye.ErrnoError||(Ye.ErrnoError=function(e,r){this.node=r,this.setErrno=function(e){for(var r in this.errno=e,Ue)if(Ue[r]===e){this.code=r;break}},this.setErrno(e),this.message=$e[e],this.stack&&(Object.defineProperty(this,"stack",{value:(new Error).stack,writable:!0}),this.stack=Ve(this.stack))},Ye.ErrnoError.prototype=new Error,Ye.ErrnoError.prototype.constructor=Ye.ErrnoError,[44].forEach((e=>{Ye.genericErrors[e]=new Ye.ErrnoError(e),Ye.genericErrors[e].stack=""})))},staticInit:()=>{Ye.ensureErrnoError(),Ye.nameTable=new Array(4096),Ye.mount(je,{},"/"),Ye.createDefaultDirectories(),Ye.createDefaultDevices(),Ye.createSpecialDirectories(),Ye.filesystems={MEMFS:je,IDBFS:Be,NODEFS:ze}},init:(e,r,t)=>{z(!Ye.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),Ye.init.initialized=!0,Ye.ensureErrnoError(),d.stdin=e||d.stdin,d.stdout=r||d.stdout,d.stderr=t||d.stderr,Ye.createStandardStreams()},quit:()=>{Ye.init.initialized=!1,tn(0);for(var e=0;e{var t=0;return e&&(t|=365),r&&(t|=146),t},findObject:(e,r)=>{var t=Ye.analyzePath(e,r);return t.exists?t.object:null},analyzePath:(e,r)=>{try{e=(n=Ye.lookupPath(e,{follow:!r})).path}catch(e){}var t={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=Ye.lookupPath(e,{parent:!0});t.parentExists=!0,t.parentPath=n.path,t.parentObject=n.node,t.name=Ie.basename(e),n=Ye.lookupPath(e,{follow:!r}),t.exists=!0,t.path=n.path,t.object=n.node,t.name=n.node.name,t.isRoot="/"===n.path}catch(e){t.error=e.errno}return t},createPath:(e,r,t,n)=>{e="string"==typeof e?e:Ye.getPath(e);for(var o=r.split("/").reverse();o.length;){var i=o.pop();if(i){var a=Ie.join2(e,i);try{Ye.mkdir(a)}catch(e){}e=a}}return a},createFile:(e,r,t,n,o)=>{var i=Ie.join2("string"==typeof e?e:Ye.getPath(e),r),a=Ye.getMode(n,o);return Ye.create(i,a)},createDataFile:(e,r,t,n,o,i)=>{var a=r;e&&(e="string"==typeof e?e:Ye.getPath(e),a=r?Ie.join2(e,r):e);var s=Ye.getMode(n,o),c=Ye.create(a,s);if(t){if("string"==typeof t){for(var u=new Array(t.length),l=0,d=t.length;l{var o=Ie.join2("string"==typeof e?e:Ye.getPath(e),r),i=Ye.getMode(!!t,!!n);Ye.createDevice.major||(Ye.createDevice.major=64);var a=Ye.makedev(Ye.createDevice.major++,0);return Ye.registerDevice(a,{open:e=>{e.seekable=!1},close:e=>{n&&n.buffer&&n.buffer.length&&n(10)},read:(e,r,n,o,i)=>{for(var a=0,s=0;s{for(var a=0;a{if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!w)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=xe(w(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new Ye.ErrnoError(29)}},createLazyFile:(e,r,n,o,i)=>{function a(){this.lengthKnown=!1,this.chunks=[]}if(a.prototype.get=function(e){if(!(e>this.length-1||e<0)){var r=e%this.chunkSize,t=e/this.chunkSize|0;return this.getter(t)[r]}},a.prototype.setDataGetter=function(e){this.getter=e},a.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",n,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+n+". Status: "+e.status);var r,t=Number(e.getResponseHeader("Content-length")),o=(r=e.getResponseHeader("Accept-Ranges"))&&"bytes"===r,i=(r=e.getResponseHeader("Content-Encoding"))&&"gzip"===r,a=1048576;o||(a=t);var s=this;s.setDataGetter((e=>{var r=e*a,o=(e+1)*a-1;if(o=Math.min(o,t-1),void 0===s.chunks[e]&&(s.chunks[e]=((e,r)=>{if(e>r)throw new Error("invalid range ("+e+", "+r+") or no bytes requested!");if(r>t-1)throw new Error("only "+t+" bytes available! programmer error!");var o=new XMLHttpRequest;if(o.open("GET",n,!1),t!==a&&o.setRequestHeader("Range","bytes="+e+"-"+r),o.responseType="arraybuffer",o.overrideMimeType&&o.overrideMimeType("text/plain; charset=x-user-defined"),o.send(null),!(o.status>=200&&o.status<300||304===o.status))throw new Error("Couldn't load "+n+". Status: "+o.status);return void 0!==o.response?new Uint8Array(o.response||[]):xe(o.responseText||"",!0)})(r,o)),void 0===s.chunks[e])throw new Error("doXHR failed!");return s.chunks[e]})),!i&&t||(a=t=1,t=this.getter(0).length,a=t,N("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=t,this._chunkSize=a,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!y)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var s=new a;Object.defineProperties(s,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var c={isDevice:!1,contents:s}}else c={isDevice:!1,url:n};var u=Ye.createFile(e,r,c,o,i);c.contents?u.contents=c.contents:c.url&&(u.contents=null,u.url=c.url),Object.defineProperties(u,{usedBytes:{get:function(){return this.contents.length}}});var l={};function d(e,r,t,n,o){var i=e.node.contents;if(o>=i.length)return 0;var a=Math.min(i.length-o,n);if(z(a>=0),i.slice)for(var s=0;s{var r=u.stream_ops[e];l[e]=function(){return Ye.forceLoadFile(u),r.apply(null,arguments)}})),l.read=(e,r,t,n,o)=>(Ye.forceLoadFile(u),d(e,r,t,n,o)),l.mmap=(e,r,n,o,i)=>{Ye.forceLoadFile(u);var a=We(r);if(!a)throw new Ye.ErrnoError(48);return d(e,t(),a,r,n),{ptr:a,allocated:!0}},u.stream_ops=l,u},createPreloadedFile:(e,r,t,n,o,i,a,s,c,u)=>{var l=r?Re.resolve(Ie.join2(e,r)):e,d=we("cp "+l);function f(t){function f(t){u&&u(),s||Ye.createDataFile(e,r,t,n,o,c),i&&i(),be(d)}Browser.handledByPreloadPlugin(t,l,f,(()=>{a&&a(),be(d)}))||f(t)}Ee(d),"string"==typeof t?function(e,r,t,n){var o=we("al "+e);E(e,(r=>{z(r,'Loading data file "'+e+'" failed (no arrayBuffer).'),f(new Uint8Array(r)),o&&be(o)}),(r=>{if(!t)throw'Loading data file "'+e+'" failed.';t()})),o&&Ee(o)}(t,0,a):f(t)},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>"EM_FS_"+window.location.pathname,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(e,r,t)=>{r=r||(()=>{}),t=t||(()=>{});var n=Ye.indexedDB();try{var o=n.open(Ye.DB_NAME(),Ye.DB_VERSION)}catch(e){return t(e)}o.onupgradeneeded=()=>{N("creating db"),o.result.createObjectStore(Ye.DB_STORE_NAME)},o.onsuccess=()=>{var n=o.result.transaction([Ye.DB_STORE_NAME],"readwrite"),i=n.objectStore(Ye.DB_STORE_NAME),a=0,s=0,c=e.length;function u(){0==s?r():t()}e.forEach((e=>{var r=i.put(Ye.analyzePath(e).object.contents,e);r.onsuccess=()=>{++a+s==c&&u()},r.onerror=()=>{s++,a+s==c&&u()}})),n.onerror=t},o.onerror=t},loadFilesFromDB:(e,r,t)=>{r=r||(()=>{}),t=t||(()=>{});var n=Ye.indexedDB();try{var o=n.open(Ye.DB_NAME(),Ye.DB_VERSION)}catch(e){return t(e)}o.onupgradeneeded=t,o.onsuccess=()=>{var n=o.result;try{var i=n.transaction([Ye.DB_STORE_NAME],"readonly")}catch(e){return void t(e)}var a=i.objectStore(Ye.DB_STORE_NAME),s=0,c=0,u=e.length;function l(){0==c?r():t()}e.forEach((e=>{var r=a.get(e);r.onsuccess=()=>{Ye.analyzePath(e).exists&&Ye.unlink(e),Ye.createDataFile(Ie.dirname(e),Ie.basename(e),r.result,!0,!0,!0),++s+c==u&&l()},r.onerror=()=>{c++,s+c==u&&l()}})),i.onerror=t},o.onerror=t},absolutePath:()=>{Te("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder:()=>{Te("FS.createFolder has been removed; use FS.mkdir instead")},createLink:()=>{Te("FS.createLink has been removed; use FS.symlink instead")},joinPath:()=>{Te("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc:()=>{Te("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath:()=>{Te("FS.standardizePath has been removed; use PATH.normalize instead")}},qe={DEFAULT_POLLMASK:5,calculateAt:function(e,r,t){if(Ie.isAbs(r))return r;var n;if(n=-100===e?Ye.cwd():qe.getStreamFromFD(e).path,0==r.length){if(!t)throw new Ye.ErrnoError(44);return n}return Ie.join2(n,r)},doStat:function(e,r,t){try{var n=e(r)}catch(e){if(e&&e.node&&Ie.normalize(r)!==Ie.normalize(Ye.getPath(e.node)))return-54;throw e}a()[t>>2]=n.dev,a()[t+8>>2]=n.ino,a()[t+12>>2]=n.mode,s()[t+16>>2]=n.nlink,a()[t+20>>2]=n.uid,a()[t+24>>2]=n.gid,a()[t+28>>2]=n.rdev,Pe=[n.size>>>0,(Se=n.size,+Math.abs(Se)>=1?Se>0?(0|Math.min(+Math.floor(Se/4294967296),4294967295))>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],a()[t+40>>2]=Pe[0],a()[t+44>>2]=Pe[1],a()[t+48>>2]=4096,a()[t+52>>2]=n.blocks;var o=n.atime.getTime(),i=n.mtime.getTime(),c=n.ctime.getTime();return Pe=[Math.floor(o/1e3)>>>0,(Se=Math.floor(o/1e3),+Math.abs(Se)>=1?Se>0?(0|Math.min(+Math.floor(Se/4294967296),4294967295))>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],a()[t+56>>2]=Pe[0],a()[t+60>>2]=Pe[1],s()[t+64>>2]=o%1e3*1e3,Pe=[Math.floor(i/1e3)>>>0,(Se=Math.floor(i/1e3),+Math.abs(Se)>=1?Se>0?(0|Math.min(+Math.floor(Se/4294967296),4294967295))>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],a()[t+72>>2]=Pe[0],a()[t+76>>2]=Pe[1],s()[t+80>>2]=i%1e3*1e3,Pe=[Math.floor(c/1e3)>>>0,(Se=Math.floor(c/1e3),+Math.abs(Se)>=1?Se>0?(0|Math.min(+Math.floor(Se/4294967296),4294967295))>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],a()[t+88>>2]=Pe[0],a()[t+92>>2]=Pe[1],s()[t+96>>2]=c%1e3*1e3,Pe=[n.ino>>>0,(Se=n.ino,+Math.abs(Se)>=1?Se>0?(0|Math.min(+Math.floor(Se/4294967296),4294967295))>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],a()[t+104>>2]=Pe[0],a()[t+108>>2]=Pe[1],0},doMsync:function(e,r,t,o,i){if(!Ye.isFile(r.node.mode))throw new Ye.ErrnoError(43);if(2&o)return 0;var a=n().slice(e,e+t);Ye.msync(r,a,i,t,o)},varargs:void 0,get:function(){return z(null!=qe.varargs),qe.varargs+=4,a()[qe.varargs-4>>2]},getStr:function(e){return ee(e)},getStreamFromFD:function(e){var r=Ye.getStream(e);if(!r)throw new Ye.ErrnoError(8);return r}};function Ke(e){if(T)return Rt(1,1,e);B=e,he()||(Qe.terminateAllThreads(),d.onExit&&d.onExit(e),U=!0),m(e,new Me(e))}var Xe=function(e,r){if(B=e,function(){var e=N,r=I,t=!1;N=I=e=>{t=!0};try{tn(0),["stdout","stderr"].forEach((function(e){var r=Ye.analyzePath("/dev/"+e);if(r){var n=r.object.rdev,o=Le.ttys[n];o&&o.output&&o.output.length&&(t=!0)}}))}catch(e){}N=e,I=r,t&&nr("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.")}(),!r&&T)throw er(e),"unwind";if(he()&&!r){var t="program exited (with status: "+e+"), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)";l(t),I(t)}Ke(e)};function Je(e){return"0x"+e.toString(16).padStart(8,"0")}var Qe={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){T?Qe.initWorker():Qe.initMainThread()},initMainThread:function(){},initWorker:function(){j=!1},setExitStatus:function(e){B=e},terminateAllThreads:function(){for(var e of(z(!T,"Internal Error! terminateAllThreads() can only ever be called from main application thread!"),Object.values(Qe.pthreads)))z(e),Qe.returnWorkerToPool(e);for(var e of(z(0===Object.keys(Qe.pthreads).length),z(0===Qe.runningWorkers.length),Qe.unusedWorkers))z(!e.pthread_ptr),e.terminate();Qe.unusedWorkers=[]},returnWorkerToPool:function(e){var r=e.pthread_ptr;delete Qe.pthreads[r],Qe.unusedWorkers.push(e),Qe.runningWorkers.splice(Qe.runningWorkers.indexOf(e),1),e.pthread_ptr=0,g&&e.unref(),fn(r)},receiveObjectTransfer:function(e){},threadInitTLS:function(){Qe.tlsInitFunctions.forEach((e=>e()))},loadWasmModuleToWorker:function(r,t){r.onmessage=e=>{var n,o=e.data,i=o.cmd;if(r.pthread_ptr&&(Qe.currentProxiedOperationCallerThread=r.pthread_ptr),o.targetThread&&o.targetThread!=nn()){var a=Qe.pthreads[o.targetThread];return a?a.postMessage(o,o.transferList):I('Internal error! Worker sent a message "'+i+'" to target pthread '+o.targetThread+", but that thread no longer exists!"),void(Qe.currentProxiedOperationCallerThread=void 0)}"processProxyingQueue"===i?Ct(o.queue):"spawnThread"===i?function(e){z(!T,"Internal Error! spawnThread() can only ever be called from main application thread!"),z(e.pthread_ptr,"Internal error, no pthread ptr!");var r=Qe.getNewWorker();if(!r)return 6;z(!r.pthread_ptr,"Internal error!"),Qe.runningWorkers.push(r),Qe.pthreads[e.pthread_ptr]=r,r.pthread_ptr=e.pthread_ptr;var t={cmd:"run",start_routine:e.startRoutine,arg:e.arg,pthread_ptr:e.pthread_ptr};r.runPthread=()=>{g&&r.ref(),r.postMessage(t,e.transferList),delete r.runPthread},r.loaded&&r.runPthread()}(o):"cleanupThread"===i?Ne(o.thread):"killThread"===i?function(e){z(!T,"Internal Error! killThread() can only ever be called from main application thread!"),z(e,"Internal Error! Null pthread_ptr in killThread!");var r=Qe.pthreads[e];delete Qe.pthreads[e],r.terminate(),fn(e),Qe.runningWorkers.splice(Qe.runningWorkers.indexOf(r),1),r.pthread_ptr=0}(o.thread):"cancelThread"===i?(n=o.thread,z(!T,"Internal Error! cancelThread() can only ever be called from main application thread!"),z(n,"Internal Error! Null pthread_ptr in cancelThread!"),Qe.pthreads[n].postMessage({cmd:"cancel"})):"loaded"===i?(r.loaded=!0,g&&r.unref(),t&&t(r),r.runPthread&&r.runPthread()):"print"===i?N("Thread "+o.threadId+": "+o.text):"printErr"===i?I("Thread "+o.threadId+": "+o.text):"alert"===i?alert("Thread "+o.threadId+": "+o.text):"setimmediate"===o.target?r.postMessage(o):"callHandler"===i?d[o.handler](...o.args):i&&I("worker sent an unknown command "+i),Qe.currentProxiedOperationCallerThread=void 0},r.onerror=e=>{var t="worker sent an error!";throw r.pthread_ptr&&(t="Pthread "+Je(r.pthread_ptr)+" sent an error!"),I(t+" "+e.filename+":"+e.lineno+": "+e.message),e},g&&(r.on("message",(function(e){r.onmessage({data:e})})),r.on("error",(function(e){r.onerror(e)})),r.on("detachedExit",(function(){}))),z(L instanceof WebAssembly.Memory,"WebAssembly memory should have been loaded by now!"),z(W instanceof WebAssembly.Module,"WebAssembly Module should have been loaded by now!");var n=[];for(var o of["onExit","onAbort","print","printErr"])d.hasOwnProperty(o)&&n.push(o);r.postMessage({cmd:"load",handlers:n,urlOrBlob:d.mainScriptUrlOrBlob||e,wasmMemory:L,wasmModule:W})},allocateUnusedWorker:function(){var e,r=S("web_example.worker.js");e=new Worker(r),Qe.unusedWorkers.push(e)},getNewWorker:function(){return 0==Qe.unusedWorkers.length&&(I("Tried to spawn a new thread, but the thread pool is exhausted.\nThis might result in a deadlock unless some threads eventually exit or the code explicitly breaks out to the event loop.\nIf you want to increase the pool size, use setting `-sPTHREAD_POOL_SIZE=...`.\nIf you want to throw an explicit error instead of the risk of deadlocking in those cases, use setting `-sPTHREAD_POOL_SIZE_STRICT=2`."),Qe.allocateUnusedWorker(),Qe.loadWasmModuleToWorker(Qe.unusedWorkers[0])),Qe.unusedWorkers.pop()}};function Ze(e){for(;e.length>0;)e.shift()(d)}function er(e){if(T)return Rt(2,0,e);try{Xe(e)}catch(e){!function(e){if(e instanceof Me||"unwind"==e)return B;ue(),e instanceof WebAssembly.RuntimeError&&En()<=0&&I("Stack overflow detected. You can try increasing -sSTACK_SIZE (currently set to "+ie+")"),m(1,e)}(e)}}d.PThread=Qe,d.establishStackSpace=function(){var e=nn(),r=a()[e+52>>2],t=r-a()[e+56>>2];z(0!=r),z(0!=t),z(r>t,"stackTop must be higher then stackMax"),yn(r,t),Sn(r,t),_n(r),ce()};var rr=[];function tr(e){var r=rr[e];return r||(e>=rr.length&&(rr.length=e+1),rr[e]=r=ae.get(e)),z(ae.get(e)==r,"JavaScript-side Wasm function table mirror is out of date!"),r}function nr(e){nr.shown||(nr.shown={}),nr.shown[e]||(nr.shown[e]=1,g&&(e="warning: "+e),I(e))}d.invokeEntryPoint=function(e,r){var t=tr(e)(r);ue(),he()?Qe.setExitStatus(t):pn(t)};var or=[],ir=0,ar=0;function sr(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(e){s()[this.ptr+4>>2]=e},this.get_type=function(){return s()[this.ptr+4>>2]},this.set_destructor=function(e){s()[this.ptr+8>>2]=e},this.get_destructor=function(){return s()[this.ptr+8>>2]},this.set_refcount=function(e){a()[this.ptr>>2]=e},this.set_caught=function(e){e=e?1:0,t()[this.ptr+12>>0]=e},this.get_caught=function(){return 0!=t()[this.ptr+12>>0]},this.set_rethrown=function(e){e=e?1:0,t()[this.ptr+13>>0]=e},this.get_rethrown=function(){return 0!=t()[this.ptr+13>>0]},this.init=function(e,r){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(r),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){Atomics.add(a(),this.ptr+0>>2,1)},this.release_ref=function(){var e=Atomics.sub(a(),this.ptr+0>>2,1);return z(e>0),1===e},this.set_adjusted_ptr=function(e){s()[this.ptr+16>>2]=e},this.get_adjusted_ptr=function(){return s()[this.ptr+16>>2]},this.get_exception_ptr=function(){if(kn(this.get_type()))return s()[this.excPtr>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}function cr(e,r,t){if(T)return Rt(3,1,e,r,t);qe.varargs=t;try{var n=qe.getStreamFromFD(e);switch(r){case 0:return(i=qe.get())<0?-28:Ye.createStream(n,i).fd;case 1:case 2:case 6:case 7:return 0;case 3:return n.flags;case 4:var i=qe.get();return n.flags|=i,0;case 5:return i=qe.get(),o()[i+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return 28,a()[en()>>2]=28,-1}}catch(e){if(void 0===Ye||!(e instanceof Ye.ErrnoError))throw e;return-e.errno}}function ur(e,r){if(T)return Rt(4,1,e,r);try{var t=qe.getStreamFromFD(e);return qe.doStat(Ye.stat,t.path,r)}catch(e){if(void 0===Ye||!(e instanceof Ye.ErrnoError))throw e;return-e.errno}}function lr(e,r,t){if(T)return Rt(5,1,e,r,t);qe.varargs=t;try{var n=qe.getStreamFromFD(e);switch(r){case 21509:case 21505:case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:case 21523:case 21524:return n.tty?0:-59;case 21519:if(!n.tty)return-59;var o=qe.get();return a()[o>>2]=0,0;case 21520:return n.tty?-28:-59;case 21531:return o=qe.get(),Ye.ioctl(n,r,o);default:return-28}}catch(e){if(void 0===Ye||!(e instanceof Ye.ErrnoError))throw e;return-e.errno}}function dr(e,r){if(T)return Rt(6,1,e,r);try{return e=qe.getStr(e),qe.doStat(Ye.lstat,e,r)}catch(e){if(void 0===Ye||!(e instanceof Ye.ErrnoError))throw e;return-e.errno}}function fr(e,r,t,n){if(T)return Rt(7,1,e,r,t,n);try{r=qe.getStr(r);var o=256&n,i=4096&n;return z(!(n&=-6401),"unknown flags in __syscall_newfstatat: "+n),r=qe.calculateAt(e,r,i),qe.doStat(o?Ye.lstat:Ye.stat,r,t)}catch(e){if(void 0===Ye||!(e instanceof Ye.ErrnoError))throw e;return-e.errno}}function pr(e,r,t,n){if(T)return Rt(8,1,e,r,t,n);qe.varargs=n;try{r=qe.getStr(r),r=qe.calculateAt(e,r);var o=n?qe.get():0;return Ye.open(r,t,o).fd}catch(e){if(void 0===Ye||!(e instanceof Ye.ErrnoError))throw e;return-e.errno}}function hr(e,r){if(T)return Rt(9,1,e,r);try{return e=qe.getStr(e),qe.doStat(Ye.stat,e,r)}catch(e){if(void 0===Ye||!(e instanceof Ye.ErrnoError))throw e;return-e.errno}}function mr(e,r,t){if(T)return Rt(10,1,e,r,t);try{return r=qe.getStr(r),r=qe.calculateAt(e,r),0===t?Ye.unlink(r):512===t?Ye.rmdir(r):Te("Invalid flags passed to unlinkat"),0}catch(e){if(void 0===Ye||!(e instanceof Ye.ErrnoError))throw e;return-e.errno}}function vr(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}var yr=void 0;function gr(e){for(var r="",t=e;n()[t];)r+=yr[n()[t++]];return r}var _r={},wr={},Er={},br=48,Tr=57;function kr(e){if(void 0===e)return"_unknown";var r=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return r>=br&&r<=Tr?"_"+e:e}function Sr(e,r){return e=kr(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(r)}function Pr(e,r){var t=Sr(r,(function(e){this.name=r,this.message=e;var t=new Error(e).stack;void 0!==t&&(this.stack=this.toString()+"\n"+t.replace(/^Error(:[^\n]*)?\n/,""))}));return t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},t}var Cr=void 0;function Fr(e){throw new Cr(e)}var Ar=void 0;function Dr(e){throw new Ar(e)}function Or(e,r,t){function n(r){var n=t(r);n.length!==e.length&&Dr("Mismatched type converter count");for(var o=0;o{wr.hasOwnProperty(e)?o[r]=wr[e]:(i.push(e),_r.hasOwnProperty(e)||(_r[e]=[]),_r[e].push((()=>{o[r]=wr[e],++a===i.length&&n(o)})))})),0===i.length&&n(o)}function Mr(e,r,t={}){if(!("argPackAdvance"in r))throw new TypeError("registerType registeredInstance requires argPackAdvance");var n=r.name;if(e||Fr('type "'+n+'" must have a positive integer typeid pointer'),wr.hasOwnProperty(e)){if(t.ignoreDuplicateRegistrations)return;Fr("Cannot register type '"+n+"' twice")}if(wr[e]=r,delete Er[e],_r.hasOwnProperty(e)){var o=_r[e];delete _r[e],o.forEach((e=>e()))}}function Nr(e){Fr(e.$$.ptrType.registeredClass.name+" instance already deleted")}var Ir=!1;function Rr(e){}function xr(e){e.count.value-=1,0===e.count.value&&function(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}(e)}function Lr(e,r,t){if(r===t)return e;if(void 0===t.baseClass)return null;var n=Lr(e,r,t.baseClass);return null===n?null:t.downcast(n)}var Wr={};var jr=[];function Br(){for(;jr.length;){var e=jr.pop();e.$$.deleteScheduled=!1,e.delete()}}var Ur=void 0;var zr={};function $r(e,r){return r.ptrType&&r.ptr||Dr("makeClassHandle requires ptr and ptrType"),!!r.smartPtrType!=!!r.smartPtr&&Dr("Both smartPtrType and smartPtr must be specified"),r.count={value:1},Gr(Object.create(e,{$$:{value:r}}))}function Hr(e){var r=this.getPointee(e);if(!r)return this.destructor(e),null;var t=function(e,r){return r=function(e,r){for(void 0===r&&Fr("ptr should not be undefined");e.baseClass;)r=e.upcast(r),e=e.baseClass;return r}(e,r),zr[r]}(this.registeredClass,r);if(void 0!==t){if(0===t.$$.count.value)return t.$$.ptr=r,t.$$.smartPtr=e,t.clone();var n=t.clone();return this.destructor(e),n}function o(){return this.isSmartPointer?$r(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:r,smartPtrType:this,smartPtr:e}):$r(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var i,a=this.registeredClass.getActualType(r),s=Wr[a];if(!s)return o.call(this);i=this.isConst?s.constPointerType:s.pointerType;var c=Lr(r,this.registeredClass,i.registeredClass);return null===c?o.call(this):this.isSmartPointer?$r(i.registeredClass.instancePrototype,{ptrType:i,ptr:c,smartPtrType:this,smartPtr:e}):$r(i.registeredClass.instancePrototype,{ptrType:i,ptr:c})}function Gr(e){return"undefined"==typeof FinalizationRegistry?(Gr=e=>e,e):(Ir=new FinalizationRegistry((e=>{console.warn(e.leakWarning.stack.replace(/^Error: /,"")),xr(e.$$)})),Gr=e=>{var r=e.$$;if(r.smartPtr){var t={$$:r},n=r.ptrType.registeredClass;t.leakWarning=new Error("Embind found a leaked C++ instance "+n.name+" <"+Je(r.ptr)+">.\nWe'll free it automatically in this case, but this functionality is not reliable across various environments.\nMake sure to invoke .delete() manually once you're done with the instance instead.\nOriginally allocated"),"captureStackTrace"in Error&&Error.captureStackTrace(t.leakWarning,Hr),Ir.register(e,t,e)}return e},Rr=e=>Ir.unregister(e),Gr(e))}function Vr(){}function Yr(e,r,t){if(void 0===e[r].overloadTable){var n=e[r];e[r]=function(){return e[r].overloadTable.hasOwnProperty(arguments.length)||Fr("Function '"+t+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[r].overloadTable+")!"),e[r].overloadTable[arguments.length].apply(this,arguments)},e[r].overloadTable=[],e[r].overloadTable[n.argCount]=n}}function qr(e,r,t){d.hasOwnProperty(e)?((void 0===t||void 0!==d[e].overloadTable&&void 0!==d[e].overloadTable[t])&&Fr("Cannot register public name '"+e+"' twice"),Yr(d,e,e),d.hasOwnProperty(t)&&Fr("Cannot register multiple overloads of a function with the same number of arguments ("+t+")!"),d[e].overloadTable[t]=r):(d[e]=r,void 0!==t&&(d[e].numArguments=t))}function Kr(e,r,t,n,o,i,a,s){this.name=e,this.constructor=r,this.instancePrototype=t,this.rawDestructor=n,this.baseClass=o,this.getActualType=i,this.upcast=a,this.downcast=s,this.pureVirtualFunctions=[]}function Xr(e,r,t){for(;r!==t;)r.upcast||Fr("Expected null or instance of "+t.name+", got an instance of "+r.name),e=r.upcast(e),r=r.baseClass;return e}function Jr(e,r){if(null===r)return this.isReference&&Fr("null is not a valid "+this.name),0;r.$$||Fr('Cannot pass "'+yt(r)+'" as a '+this.name),r.$$.ptr||Fr("Cannot pass deleted object as a pointer of type "+this.name);var t=r.$$.ptrType.registeredClass;return Xr(r.$$.ptr,t,this.registeredClass)}function Qr(e,r){var t;if(null===r)return this.isReference&&Fr("null is not a valid "+this.name),this.isSmartPointer?(t=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,t),t):0;r.$$||Fr('Cannot pass "'+yt(r)+'" as a '+this.name),r.$$.ptr||Fr("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&r.$$.ptrType.isConst&&Fr("Cannot convert argument of type "+(r.$$.smartPtrType?r.$$.smartPtrType.name:r.$$.ptrType.name)+" to parameter type "+this.name);var n=r.$$.ptrType.registeredClass;if(t=Xr(r.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===r.$$.smartPtr&&Fr("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:r.$$.smartPtrType===this?t=r.$$.smartPtr:Fr("Cannot convert argument of type "+(r.$$.smartPtrType?r.$$.smartPtrType.name:r.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:t=r.$$.smartPtr;break;case 2:if(r.$$.smartPtrType===this)t=r.$$.smartPtr;else{var o=r.clone();t=this.rawShare(t,ht.toHandle((function(){o.delete()}))),null!==e&&e.push(this.rawDestructor,t)}break;default:Fr("Unsupporting sharing policy")}return t}function Zr(e,r){if(null===r)return this.isReference&&Fr("null is not a valid "+this.name),0;r.$$||Fr('Cannot pass "'+yt(r)+'" as a '+this.name),r.$$.ptr||Fr("Cannot pass deleted object as a pointer of type "+this.name),r.$$.ptrType.isConst&&Fr("Cannot convert argument of type "+r.$$.ptrType.name+" to parameter type "+this.name);var t=r.$$.ptrType.registeredClass;return Xr(r.$$.ptr,t,this.registeredClass)}function et(e){return this.fromWireType(a()[e>>2])}function rt(e,r,t,n,o,i,a,s,c,u,l){this.name=e,this.registeredClass=r,this.isReference=t,this.isConst=n,this.isSmartPointer=o,this.pointeeType=i,this.sharingPolicy=a,this.rawGetPointee=s,this.rawConstructor=c,this.rawShare=u,this.rawDestructor=l,o||void 0!==r.baseClass?this.toWireType=Qr:n?(this.toWireType=Jr,this.destructorFunction=null):(this.toWireType=Zr,this.destructorFunction=null)}function tt(e,r,t){d.hasOwnProperty(e)||Dr("Replacing nonexistant public symbol"),void 0!==d[e].overloadTable&&void 0!==t?d[e].overloadTable[t]=r:(d[e]=r,d[e].argCount=t)}function nt(e,r){var t=(e=gr(e)).includes("j")?function(e,r){z(e.includes("j")||e.includes("p"),"getDynCaller should only be called with i64 sigs");var t=[];return function(){return t.length=0,Object.assign(t,arguments),function(e,r,t){return e.includes("j")?function(e,r,t){z("dynCall_"+e in d,"bad function pointer type - dynCall function not found for sig '"+e+"'"),t&&t.length?z(t.length===e.substring(1).replace(/j/g,"--").length):z(1==e.length);var n=d["dynCall_"+e];return t&&t.length?n.apply(null,[r].concat(t)):n.call(null,r)}(e,r,t):(z(tr(r),"missing table entry in dynCall: "+r),tr(r).apply(null,t))}(e,r,t)}}(e,r):tr(r);return"function"!=typeof t&&Fr("unknown function pointer with signature "+e+": "+r),t}var ot=void 0;function it(e){var r=an(e),t=gr(r);return rn(r),t}function at(e,r){var t=[],n={};throw r.forEach((function e(r){n[r]||wr[r]||(Er[r]?Er[r].forEach(e):(t.push(r),n[r]=!0))})),new ot(e+": "+t.map(it).join([", "]))}function st(e,r){for(var t=[],n=0;n>2]);return t}function ct(e){for(;e.length;){var r=e.pop();e.pop()(r)}}function ut(e,r,t,n,o){var i=r.length;i<2&&Fr("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var a=null!==r[1]&&null!==t,s=!1,c=1;c0?", ":"")+d),f+=(u?"var rv = ":"")+"invoker(fn"+(d.length>0?", ":"")+d+");\n",s)f+="runDestructors(destructors);\n";else for(c=a?1:2;c4&&0==--ft[e].refcount&&(ft[e]=void 0,dt.push(e))}var ht={toValue:e=>(e||Fr("Cannot use deleted val. handle = "+e),ft[e].value),toHandle:e=>{switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var r=dt.length?dt.pop():ft.length;return ft[r]={refcount:1,value:e},r}}};function mt(e,r,c){switch(r){case 0:return function(e){var r=c?t():n();return this.fromWireType(r[e])};case 1:return function(e){var r=c?o():i();return this.fromWireType(r[e>>1])};case 2:return function(e){var r=c?a():s();return this.fromWireType(r[e>>2])};default:throw new TypeError("Unknown integer type: "+e)}}function vt(e,r){var t=wr[e];return void 0===t&&Fr(r+" has unknown type "+it(e)),t}function yt(e){if(null===e)return"null";var r=typeof e;return"object"===r||"array"===r||"function"===r?e.toString():""+e}function gt(e,r){switch(r){case 2:return function(e){return this.fromWireType((L.buffer!=$&&oe(L.buffer),X)[e>>2])};case 3:return function(e){return this.fromWireType(c()[e>>3])};default:throw new TypeError("Unknown float type: "+e)}}function _t(e,r,c){switch(r){case 0:return c?function(e){return t()[e]}:function(e){return n()[e]};case 1:return c?function(e){return o()[e>>1]}:function(e){return i()[e>>1]};case 2:return c?function(e){return a()[e>>2]}:function(e){return s()[e>>2]};default:throw new TypeError("Unknown integer type: "+e)}}var wt="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function Et(e,r){z(e%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");for(var t=e,a=t>>1,s=a+r/2;!(a>=s)&&i()[a];)++a;if((t=a<<1)-e>32&&wt)return wt.decode(n().slice(e,t));for(var c="",u=0;!(u>=r/2);++u){var l=o()[e+2*u>>1];if(0==l)break;c+=String.fromCharCode(l)}return c}function bt(e,r,t){if(z(r%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),z("number"==typeof t,"stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),void 0===t&&(t=2147483647),t<2)return 0;for(var n=r,i=(t-=2)<2*e.length?t/2:e.length,a=0;a>1]=s,r+=2}return o()[r>>1]=0,r-n}function Tt(e){return 2*e.length}function kt(e,r){z(e%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");for(var t=0,n="";!(t>=r/4);){var o=a()[e+4*t>>2];if(0==o)break;if(++t,o>=65536){var i=o-65536;n+=String.fromCharCode(55296|i>>10,56320|1023&i)}else n+=String.fromCharCode(o)}return n}function St(e,r,t){if(z(r%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),z("number"==typeof t,"stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),void 0===t&&(t=2147483647),t<4)return 0;for(var n=r,o=n+t-4,i=0;i=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&e.charCodeAt(++i)),a()[r>>2]=s,(r+=4)+4>o)break}return a()[r>>2]=0,r-n}function Pt(e){for(var r=0,t=0;t=55296&&n<=57343&&++t,r+=4}return r}function Ct(e){Atomics.store(a(),e>>2,1),nn()&&dn(e),Atomics.compareExchange(a(),e>>2,1,0)}function Ft(e){return e%4==0&&(e%100!=0||e%400==0)}d.executeNotifiedProxyingQueue=Ct;var At,Dt=[0,31,60,91,121,152,182,213,244,274,305,335],Ot=[0,31,59,90,120,151,181,212,243,273,304,334];function Mt(e,r,t,n,o,i,c){if(T)return Rt(11,1,e,r,t,n,o,i,c);try{var u=qe.getStreamFromFD(n),l=Ye.mmap(u,e,o,r,t),d=l.ptr;return a()[i>>2]=l.allocated,s()[c>>2]=d,0}catch(e){if(void 0===Ye||!(e instanceof Ye.ErrnoError))throw e;return-e.errno}}function Nt(e,r,t,n,o,i){if(T)return Rt(12,1,e,r,t,n,o,i);try{var a=qe.getStreamFromFD(o);2&t&&qe.doMsync(e,a,r,n,i),Ye.munmap(a)}catch(e){if(void 0===Ye||!(e instanceof Ye.ErrnoError))throw e;return-e.errno}}function It(e){var r=ne(e)+1,n=Zt(r);return n&&re(e,t(),n,r),n}function Rt(e,r){var t=arguments.length-2,n=arguments;if(t>19)throw"emscripten_proxy_to_main_thread_js: Too many arguments "+t+" to proxied function idx="+e+", maximum supported is 19!";return He((()=>{for(var o=t,i=wn(8*o),a=i>>3,s=0;s{var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:()=>performance.timeOrigin+performance.now();var xt=[];function Lt(e){try{return L.grow(e-$.byteLength+65535>>>16),oe(L.buffer),1}catch(r){I("emscripten_realloc_buffer: Attempted to grow heap from "+$.byteLength+" bytes to "+e+" bytes, but got error: "+r)}}var Wt={};function jt(){if(!jt.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:h||"./this.program"};for(var r in Wt)void 0===Wt[r]?delete e[r]:e[r]=Wt[r];var t=[];for(var r in e)t.push(r+"="+e[r]);jt.strings=t}return jt.strings}function Bt(e,r){if(T)return Rt(13,1,e,r);var n=0;return jt().forEach((function(o,i){var a=r+n;s()[e+4*i>>2]=a,function(e,r,n){for(var o=0;o>0]=e.charCodeAt(o);t()[r>>0]=0}(o,a),n+=o.length+1})),0}function Ut(e,r){if(T)return Rt(14,1,e,r);var t=jt();s()[e>>2]=t.length;var n=0;return t.forEach((function(e){n+=e.length+1})),s()[r>>2]=n,0}function zt(e){if(T)return Rt(15,1,e);try{var r=qe.getStreamFromFD(e);return Ye.close(r),0}catch(e){if(void 0===Ye||!(e instanceof Ye.ErrnoError))throw e;return e.errno}}function $t(e,r,n,o){if(T)return Rt(16,1,e,r,n,o);try{var i=function(e,r,n,o){for(var i=0,a=0;a>2],u=s()[r+4>>2];r+=8;var l=Ye.read(e,t(),c,u,undefined);if(l<0)return-1;if(i+=l,l>2]=i,0}catch(e){if(void 0===Ye||!(e instanceof Ye.ErrnoError))throw e;return e.errno}}function Ht(e,r,t,n,o){if(T)return Rt(17,1,e,r,t,n,o);try{var i=(u=t,z((c=r)==c>>>0||c==(0|c)),z(u===(0|u)),u+2097152>>>0<4194305-!!c?(c>>>0)+4294967296*u:NaN);if(isNaN(i))return 61;var s=qe.getStreamFromFD(e);return Ye.llseek(s,i,n),Pe=[s.position>>>0,(Se=s.position,+Math.abs(Se)>=1?Se>0?(0|Math.min(+Math.floor(Se/4294967296),4294967295))>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],a()[o>>2]=Pe[0],a()[o+4>>2]=Pe[1],s.getdents&&0===i&&0===n&&(s.getdents=null),0}catch(e){if(void 0===Ye||!(e instanceof Ye.ErrnoError))throw e;return e.errno}var c,u}function Gt(e,r,n,o){if(T)return Rt(18,1,e,r,n,o);try{var i=function(e,r,n,o){for(var i=0,a=0;a>2],u=s()[r+4>>2];r+=8;var l=Ye.write(e,t(),c,u,undefined);if(l<0)return-1;i+=l}return i}(qe.getStreamFromFD(e),r,n);return s()[o>>2]=i,0}catch(e){if(void 0===Ye||!(e instanceof Ye.ErrnoError))throw e;return e.errno}}var Vt=[31,29,31,30,31,30,31,31,30,31,30,31],Yt=[31,28,31,30,31,30,31,31,30,31,30,31];Qe.init();var qt=function(e,r,t,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=Ye.nextInode++,this.name=r,this.mode=t,this.node_ops={},this.stream_ops={},this.rdev=n};Object.defineProperties(qt.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return Ye.isDir(this.mode)}},isDevice:{get:function(){return Ye.isChrdev(this.mode)}}}),Ye.FSNode=qt,Ye.staticInit(),d.FS_createPath=Ye.createPath,d.FS_createDataFile=Ye.createDataFile,d.FS_createPreloadedFile=Ye.createPreloadedFile,d.FS_unlink=Ye.unlink,d.FS_createLazyFile=Ye.createLazyFile,d.FS_createDevice=Ye.createDevice,g&&ze.staticInit(),Ue={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},function(){for(var e=new Array(256),r=0;r<256;++r)e[r]=String.fromCharCode(r);yr=e}(),Cr=d.BindingError=Pr(Error,"BindingError"),Ar=d.InternalError=Pr(Error,"InternalError"),Vr.prototype.isAliasOf=function(e){if(!(this instanceof Vr))return!1;if(!(e instanceof Vr))return!1;for(var r=this.$$.ptrType.registeredClass,t=this.$$.ptr,n=e.$$.ptrType.registeredClass,o=e.$$.ptr;r.baseClass;)t=r.upcast(t),r=r.baseClass;for(;n.baseClass;)o=n.upcast(o),n=n.baseClass;return r===n&&t===o},Vr.prototype.clone=function(){if(this.$$.ptr||Nr(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e,r=Gr(Object.create(Object.getPrototypeOf(this),{$$:{value:(e=this.$$,{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType})}}));return r.$$.count.value+=1,r.$$.deleteScheduled=!1,r},Vr.prototype.delete=function(){this.$$.ptr||Nr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Fr("Object already scheduled for deletion"),Rr(this),xr(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},Vr.prototype.isDeleted=function(){return!this.$$.ptr},Vr.prototype.deleteLater=function(){return this.$$.ptr||Nr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Fr("Object already scheduled for deletion"),jr.push(this),1===jr.length&&Ur&&Ur(Br),this.$$.deleteScheduled=!0,this},d.getInheritedInstanceCount=function(){return Object.keys(zr).length},d.getLiveInheritedInstances=function(){var e=[];for(var r in zr)zr.hasOwnProperty(r)&&e.push(zr[r]);return e},d.flushPendingDeletes=Br,d.setDelayFunction=function(e){Ur=e,jr.length&&Ur&&Ur(Br)},rt.prototype.getPointee=function(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},rt.prototype.destructor=function(e){this.rawDestructor&&this.rawDestructor(e)},rt.prototype.argPackAdvance=8,rt.prototype.readValueFromPointer=et,rt.prototype.deleteObject=function(e){null!==e&&e.delete()},rt.prototype.fromWireType=Hr,ot=d.UnboundTypeError=Pr(Error,"UnboundTypeError"),d.count_emval_handles=function(){for(var e=0,r=5;r0),function(e){if(e.release_ref()&&!e.get_rethrown()){var r=e.get_destructor();r&&tr(r)(e.excPtr),Qt(e.excPtr)}}(or.pop()),ar=0},__cxa_find_matching_catch_2:function(){var e=ar;if(!e)return mn(0),0;var r=new sr(e);r.set_adjusted_ptr(e);var t=r.get_type();if(!t)return mn(0),e;for(var n=0;n>>=0;var r=un(),t=ln();Te("stack overflow (Attempt to set SP to "+Je(e)+", with stack limits ["+Je(t)+" - "+Je(r)+"]). If you require more stack space build with -sSTACK_SIZE=")},__resumeException:function(e){throw ar||(ar=e),e},__syscall_fcntl64:cr,__syscall_fstat64:ur,__syscall_ioctl:lr,__syscall_lstat64:dr,__syscall_newfstatat:fr,__syscall_openat:pr,__syscall_stat64:hr,__syscall_unlinkat:mr,_embind_register_bigint:function(e,r,t,n,o){},_embind_register_bool:function(e,r,n,i,s){var c=vr(n);Mr(e,{name:r=gr(r),fromWireType:function(e){return!!e},toWireType:function(e,r){return r?i:s},argPackAdvance:8,readValueFromPointer:function(e){var i;if(1===n)i=t();else if(2===n)i=o();else{if(4!==n)throw new TypeError("Unknown boolean type size: "+r);i=a()}return this.fromWireType(i[e>>c])},destructorFunction:null})},_embind_register_class:function(e,r,t,n,o,i,a,s,c,u,l,d,f){l=gr(l),i=nt(o,i),s&&(s=nt(a,s)),u&&(u=nt(c,u)),f=nt(d,f);var p=kr(l);qr(p,(function(){at("Cannot construct "+l+" due to unbound types",[n])})),Or([e,r,t],n?[n]:[],(function(r){var t,o;r=r[0],o=n?(t=r.registeredClass).instancePrototype:Vr.prototype;var a=Sr(p,(function(){if(Object.getPrototypeOf(this)!==c)throw new Cr("Use 'new' to construct "+l);if(void 0===d.constructor_body)throw new Cr(l+" has no accessible constructor");var e=d.constructor_body[arguments.length];if(void 0===e)throw new Cr("Tried to invoke ctor of "+l+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(d.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)})),c=Object.create(o,{constructor:{value:a}});a.prototype=c;var d=new Kr(l,a,c,f,t,i,s,u),h=new rt(l,d,!0,!1,!1),m=new rt(l+"*",d,!1,!1,!1),v=new rt(l+" const*",d,!1,!0,!1);return Wr[e]={pointerType:m,constPointerType:v},tt(p,a),[h,m,v]}))},_embind_register_class_constructor:function(e,r,t,n,o,i){z(r>0);var a=st(r,t);o=nt(n,o),Or([],[e],(function(e){var t="constructor "+(e=e[0]).name;if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[r-1])throw new Cr("Cannot register multiple constructors with identical number of parameters ("+(r-1)+") for class '"+e.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return e.registeredClass.constructor_body[r-1]=()=>{at("Cannot construct "+e.name+" due to unbound types",a)},Or([],a,(function(n){return n.splice(1,0,null),e.registeredClass.constructor_body[r-1]=ut(t,n,null,o,i),[]})),[]}))},_embind_register_class_function:function(e,r,t,n,o,i,a,s){var c=st(t,n);r=gr(r),i=nt(o,i),Or([],[e],(function(e){var n=(e=e[0]).name+"."+r;function o(){at("Cannot call "+n+" due to unbound types",c)}r.startsWith("@@")&&(r=Symbol[r.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(r);var u=e.registeredClass.instancePrototype,l=u[r];return void 0===l||void 0===l.overloadTable&&l.className!==e.name&&l.argCount===t-2?(o.argCount=t-2,o.className=e.name,u[r]=o):(Yr(u,r,n),u[r].overloadTable[t-2]=o),Or([],c,(function(o){var s=ut(n,o,e,i,a);return void 0===u[r].overloadTable?(s.argCount=t-2,u[r]=s):u[r].overloadTable[t-2]=s,[]})),[]}))},_embind_register_class_property:function(e,r,t,n,o,i,a,s,c,u){r=gr(r),o=nt(n,o),Or([],[e],(function(e){var n=(e=e[0]).name+"."+r,l={get:function(){at("Cannot access "+n+" due to unbound types",[t,a])},enumerable:!0,configurable:!0};return l.set=c?()=>{at("Cannot access "+n+" due to unbound types",[t,a])}:e=>{Fr(n+" is a read-only property")},Object.defineProperty(e.registeredClass.instancePrototype,r,l),Or([],c?[t,a]:[t],(function(t){var a=t[0],l={get:function(){var r=lt(this,e,n+" getter");return a.fromWireType(o(i,r))},enumerable:!0};if(c){c=nt(s,c);var d=t[1];l.set=function(r){var t=lt(this,e,n+" setter"),o=[];c(u,t,d.toWireType(o,r)),ct(o)}}return Object.defineProperty(e.registeredClass.instancePrototype,r,l),[]})),[]}))},_embind_register_emval:function(e,r){Mr(e,{name:r=gr(r),fromWireType:function(e){var r=ht.toValue(e);return pt(e),r},toWireType:function(e,r){return ht.toHandle(r)},argPackAdvance:8,readValueFromPointer:et,destructorFunction:null})},_embind_register_enum:function(e,r,t,n){var o=vr(t);function i(){}r=gr(r),i.values={},Mr(e,{name:r,constructor:i,fromWireType:function(e){return this.constructor.values[e]},toWireType:function(e,r){return r.value},argPackAdvance:8,readValueFromPointer:mt(r,o,n),destructorFunction:null}),qr(r,i)},_embind_register_enum_value:function(e,r,t){var n=vt(e,"enum");r=gr(r);var o=n.constructor,i=Object.create(n.constructor.prototype,{value:{value:t},constructor:{value:Sr(n.name+"_"+r,(function(){}))}});o.values[t]=i,o[r]=i},_embind_register_float:function(e,r,t){var n=vr(t);Mr(e,{name:r=gr(r),fromWireType:function(e){return e},toWireType:function(e,r){if("number"!=typeof r&&"boolean"!=typeof r)throw new TypeError('Cannot convert "'+yt(r)+'" to '+this.name);return r},argPackAdvance:8,readValueFromPointer:gt(r,n),destructorFunction:null})},_embind_register_function:function(e,r,t,n,o,i){var a=st(r,t);e=gr(e),o=nt(n,o),qr(e,(function(){at("Cannot call "+e+" due to unbound types",a)}),r-1),Or([],a,(function(t){var n=[t[0],null].concat(t.slice(1));return tt(e,ut(e,n,null,o,i),r-1),[]}))},_embind_register_integer:function(e,r,t,n,o){r=gr(r),-1===o&&(o=4294967295);var i=vr(t),a=e=>e;if(0===n){var s=32-8*t;a=e=>e<>>s}var c=r.includes("unsigned"),u=(e,t)=>{if("number"!=typeof e&&"boolean"!=typeof e)throw new TypeError('Cannot convert "'+yt(e)+'" to '+t);if(eo)throw new TypeError('Passing a number "'+yt(e)+'" from JS side to C/C++ side to an argument of type "'+r+'", which is outside the valid range ['+n+", "+o+"]!")};Mr(e,{name:r,fromWireType:a,toWireType:c?function(e,r){return u(r,this.name),r>>>0}:function(e,r){return u(r,this.name),r},argPackAdvance:8,readValueFromPointer:_t(r,i,0!==n),destructorFunction:null})},_embind_register_memory_view:function(e,r,t){var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][r];function o(e){e>>=2;var r=s(),t=r[e],o=r[e+1];return new n($,o,t)}Mr(e,{name:t=gr(t),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},_embind_register_std_string:function(e,r){var t="std::string"===(r=gr(r));Mr(e,{name:r,fromWireType:function(e){var r,o=s()[e>>2],i=e+4;if(t)for(var a=i,c=0;c<=o;++c){var u=i+c;if(c==o||0==n()[u]){var l=ee(a,u-a);void 0===r?r=l:(r+=String.fromCharCode(0),r+=l),a=u+1}}else{var d=new Array(o);for(c=0;c>2]=o,t&&i)te(r,c,o+1);else if(i)for(var u=0;u255&&(rn(c),Fr("String has UTF-16 code units that do not fit in 8 bits")),n()[c+u]=l}else for(u=0;ui(),u=1):4===r&&(n=kt,o=St,c=Pt,a=()=>s(),u=2),Mr(e,{name:t,fromWireType:function(e){for(var t,o=s()[e>>2],i=a(),c=e+4,l=0;l<=o;++l){var d=e+4+l*r;if(l==o||0==i[d>>u]){var f=n(c,d-c);void 0===t?t=f:(t+=String.fromCharCode(0),t+=f),c=d+r}}return rn(e),t},toWireType:function(e,n){"string"!=typeof n&&Fr("Cannot pass non-string to C++ string type "+t);var i=c(n),a=Zt(4+i+r);return s()[a>>2]=i>>u,o(n,a+4,i+r),null!==e&&e.push(rn,a),a},argPackAdvance:8,readValueFromPointer:et,destructorFunction:function(e){rn(e)}})},_embind_register_void:function(e,r){Mr(e,{isVoid:!0,name:r=gr(r),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,r){}})},_emscripten_get_now_is_monotonic:function(){return!0},_emscripten_notify_task_queue:function(e,r,t,n){if(e==r)setTimeout((()=>Ct(n)));else if(T)postMessage({targetThread:e,cmd:"processProxyingQueue",queue:n});else{var o=Qe.pthreads[e];if(!o)return void I("Cannot send message to thread with ID "+e+", unknown thread ID!");o.postMessage({cmd:"processProxyingQueue",queue:n})}return 1},_emscripten_set_offscreencanvas_size:function(e,r,t){return I("emscripten_set_offscreencanvas_size: Build with -sOFFSCREENCANVAS_SUPPORT=1 to enable transferring canvases to pthreads."),-1},_emval_decref:pt,_emval_incref:function(e){e>4&&(ft[e].refcount+=1)},_emval_take_value:function(e,r){var t=(e=vt(e,"_emval_take_value")).readValueFromPointer(r);return ht.toHandle(t)},_localtime_js:function(e,r){var t,n=new Date(1e3*(t=e,s()[t>>2]+4294967296*a()[t+4>>2]));a()[r>>2]=n.getSeconds(),a()[r+4>>2]=n.getMinutes(),a()[r+8>>2]=n.getHours(),a()[r+12>>2]=n.getDate(),a()[r+16>>2]=n.getMonth(),a()[r+20>>2]=n.getFullYear()-1900,a()[r+24>>2]=n.getDay();var o=0|function(e){return(Ft(e.getFullYear())?Dt:Ot)[e.getMonth()]+e.getDate()-1}(n);a()[r+28>>2]=o,a()[r+36>>2]=-60*n.getTimezoneOffset();var i=new Date(n.getFullYear(),0,1),c=new Date(n.getFullYear(),6,1).getTimezoneOffset(),u=i.getTimezoneOffset(),l=0|(c!=u&&n.getTimezoneOffset()==Math.min(u,c));a()[r+32>>2]=l},_mmap_js:Mt,_munmap_js:Nt,_tzset_js:function(e,r,t){var n=(new Date).getFullYear(),o=new Date(n,0,1),i=new Date(n,6,1),c=o.getTimezoneOffset(),u=i.getTimezoneOffset(),l=Math.max(c,u);function d(e){var r=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return r?r[1]:"GMT"}s()[e>>2]=60*l,a()[r>>2]=Number(c!=u);var f=d(o),p=d(i),h=It(f),m=It(p);u>2]=h,s()[t+4>>2]=m):(s()[t>>2]=m,s()[t+4>>2]=h)},abort:function(){Te("native code called abort()")},emscripten_check_blocking_allowed:function(){g||y||nr("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")},emscripten_date_now:function(){return Date.now()},emscripten_get_now:At,emscripten_memcpy_big:function(e,r,t){n().copyWithin(e,r,r+t)},emscripten_receive_on_main_thread_js:function(e,r,t){xt.length=r;for(var n=t>>3,o=0;o>>=0)<=r)return!1;var t,o=2147483648;if(e>o)return I("Cannot enlarge memory, asked to go up to "+e+" bytes, but the limit is "+o+" bytes!"),!1;for(var i=1;i<=4;i*=2){var a=r*(1+.2/i);a=Math.min(a,e+100663296);var s=Math.min(o,(t=Math.max(e,a))+(65536-t%65536)%65536),c=At(),u=Lt(s),l=At();if(N("Heap resize call from "+r+" to "+s+" took "+(l-c)+" msecs. Success: "+!!u),u)return!0}return I("Failed to grow the heap from "+r+" bytes to "+s+" bytes, not enough memory!"),!1},emscripten_unwind_to_js_event_loop:function(){throw"unwind"},environ_get:Bt,environ_sizes_get:Ut,exit:Xe,fd_close:zt,fd_read:$t,fd_seek:Ht,fd_write:Gt,invoke_dii:function(e,r,t){var n=gn();try{return tr(e)(r,t)}catch(e){if(_n(n),e!==e+0)throw e;hn(1,0)}},invoke_diii:function(e,r,t,n){var o=gn();try{return tr(e)(r,t,n)}catch(e){if(_n(o),e!==e+0)throw e;hn(1,0)}},invoke_fii:function(e,r,t){var n=gn();try{return tr(e)(r,t)}catch(e){if(_n(n),e!==e+0)throw e;hn(1,0)}},invoke_fiii:function(e,r,t,n){var o=gn();try{return tr(e)(r,t,n)}catch(e){if(_n(o),e!==e+0)throw e;hn(1,0)}},invoke_i:function(e){var r=gn();try{return tr(e)()}catch(e){if(_n(r),e!==e+0)throw e;hn(1,0)}},invoke_idi:function(e,r,t){var n=gn();try{return tr(e)(r,t)}catch(e){if(_n(n),e!==e+0)throw e;hn(1,0)}},invoke_ii:function(e,r){var t=gn();try{return tr(e)(r)}catch(e){if(_n(t),e!==e+0)throw e;hn(1,0)}},invoke_iid:function(e,r,t){var n=gn();try{return tr(e)(r,t)}catch(e){if(_n(n),e!==e+0)throw e;hn(1,0)}},invoke_iidddd:function(e,r,t,n,o,i){var a=gn();try{return tr(e)(r,t,n,o,i)}catch(e){if(_n(a),e!==e+0)throw e;hn(1,0)}},invoke_iii:function(e,r,t){var n=gn();try{return tr(e)(r,t)}catch(e){if(_n(n),e!==e+0)throw e;hn(1,0)}},invoke_iiid:function(e,r,t,n){var o=gn();try{return tr(e)(r,t,n)}catch(e){if(_n(o),e!==e+0)throw e;hn(1,0)}},invoke_iiii:function(e,r,t,n){var o=gn();try{return tr(e)(r,t,n)}catch(e){if(_n(o),e!==e+0)throw e;hn(1,0)}},invoke_iiiii:function(e,r,t,n,o){var i=gn();try{return tr(e)(r,t,n,o)}catch(e){if(_n(i),e!==e+0)throw e;hn(1,0)}},invoke_iiiiid:function(e,r,t,n,o,i){var a=gn();try{return tr(e)(r,t,n,o,i)}catch(e){if(_n(a),e!==e+0)throw e;hn(1,0)}},invoke_iiiiii:function(e,r,t,n,o,i){var a=gn();try{return tr(e)(r,t,n,o,i)}catch(e){if(_n(a),e!==e+0)throw e;hn(1,0)}},invoke_iiiiiidd:function(e,r,t,n,o,i,a,s){var c=gn();try{return tr(e)(r,t,n,o,i,a,s)}catch(e){if(_n(c),e!==e+0)throw e;hn(1,0)}},invoke_iiiiiii:function(e,r,t,n,o,i,a){var s=gn();try{return tr(e)(r,t,n,o,i,a)}catch(e){if(_n(s),e!==e+0)throw e;hn(1,0)}},invoke_iiiiiiii:function(e,r,t,n,o,i,a,s){var c=gn();try{return tr(e)(r,t,n,o,i,a,s)}catch(e){if(_n(c),e!==e+0)throw e;hn(1,0)}},invoke_iiiiiiiiiii:function(e,r,t,n,o,i,a,s,c,u,l){var d=gn();try{return tr(e)(r,t,n,o,i,a,s,c,u,l)}catch(e){if(_n(d),e!==e+0)throw e;hn(1,0)}},invoke_iiiiiiiiiiii:function(e,r,t,n,o,i,a,s,c,u,l,d){var f=gn();try{return tr(e)(r,t,n,o,i,a,s,c,u,l,d)}catch(e){if(_n(f),e!==e+0)throw e;hn(1,0)}},invoke_iiiiiiiiiiiii:function(e,r,t,n,o,i,a,s,c,u,l,d,f){var p=gn();try{return tr(e)(r,t,n,o,i,a,s,c,u,l,d,f)}catch(e){if(_n(p),e!==e+0)throw e;hn(1,0)}},invoke_jiiii:function(e,r,t,n,o){var i=gn();try{return Pn(e,r,t,n,o)}catch(e){if(_n(i),e!==e+0)throw e;hn(1,0)}},invoke_v:function(e){var r=gn();try{tr(e)()}catch(e){if(_n(r),e!==e+0)throw e;hn(1,0)}},invoke_vi:function(e,r){var t=gn();try{tr(e)(r)}catch(e){if(_n(t),e!==e+0)throw e;hn(1,0)}},invoke_vid:function(e,r,t){var n=gn();try{tr(e)(r,t)}catch(e){if(_n(n),e!==e+0)throw e;hn(1,0)}},invoke_vii:function(e,r,t){var n=gn();try{tr(e)(r,t)}catch(e){if(_n(n),e!==e+0)throw e;hn(1,0)}},invoke_viif:function(e,r,t,n){var o=gn();try{tr(e)(r,t,n)}catch(e){if(_n(o),e!==e+0)throw e;hn(1,0)}},invoke_viii:function(e,r,t,n){var o=gn();try{tr(e)(r,t,n)}catch(e){if(_n(o),e!==e+0)throw e;hn(1,0)}},invoke_viiid:function(e,r,t,n,o){var i=gn();try{tr(e)(r,t,n,o)}catch(e){if(_n(i),e!==e+0)throw e;hn(1,0)}},invoke_viiii:function(e,r,t,n,o){var i=gn();try{tr(e)(r,t,n,o)}catch(e){if(_n(i),e!==e+0)throw e;hn(1,0)}},invoke_viiiif:function(e,r,t,n,o,i){var a=gn();try{tr(e)(r,t,n,o,i)}catch(e){if(_n(a),e!==e+0)throw e;hn(1,0)}},invoke_viiiii:function(e,r,t,n,o,i){var a=gn();try{tr(e)(r,t,n,o,i)}catch(e){if(_n(a),e!==e+0)throw e;hn(1,0)}},invoke_viiiiii:function(e,r,t,n,o,i,a){var s=gn();try{tr(e)(r,t,n,o,i,a)}catch(e){if(_n(s),e!==e+0)throw e;hn(1,0)}},invoke_viiiiiii:function(e,r,t,n,o,i,a,s){var c=gn();try{tr(e)(r,t,n,o,i,a,s)}catch(e){if(_n(c),e!==e+0)throw e;hn(1,0)}},invoke_viiiiiiii:function(e,r,t,n,o,i,a,s,c){var u=gn();try{tr(e)(r,t,n,o,i,a,s,c)}catch(e){if(_n(u),e!==e+0)throw e;hn(1,0)}},invoke_viiiiiiiiii:function(e,r,t,n,o,i,a,s,c,u,l){var d=gn();try{tr(e)(r,t,n,o,i,a,s,c,u,l)}catch(e){if(_n(d),e!==e+0)throw e;hn(1,0)}},invoke_viiiiiiiiiiiii:function(e,r,t,n,o,i,a,s,c,u,l,d,f,p){var h=gn();try{tr(e)(r,t,n,o,i,a,s,c,u,l,d,f,p)}catch(e){if(_n(h),e!==e+0)throw e;hn(1,0)}},invoke_viiiiiiiiiiiiiii:function(e,r,t,n,o,i,a,s,c,u,l,d,f,p,h,m){var v=gn();try{tr(e)(r,t,n,o,i,a,s,c,u,l,d,f,p,h,m)}catch(e){if(_n(v),e!==e+0)throw e;hn(1,0)}},llvm_eh_typeid_for:function(e){return e},memory:L||d.wasmMemory,strftime_l:function(e,r,n,o,i){return function(e,r,n,o){var i=a()[o+40>>2],s={tm_sec:a()[o>>2],tm_min:a()[o+4>>2],tm_hour:a()[o+8>>2],tm_mday:a()[o+12>>2],tm_mon:a()[o+16>>2],tm_year:a()[o+20>>2],tm_wday:a()[o+24>>2],tm_yday:a()[o+28>>2],tm_isdst:a()[o+32>>2],tm_gmtoff:a()[o+36>>2],tm_zone:i?ee(i):""},c=ee(n),u={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var l in u)c=c.replace(new RegExp(l,"g"),u[l]);var d=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],f=["January","February","March","April","May","June","July","August","September","October","November","December"];function p(e,r,t){for(var n="number"==typeof e?e.toString():e||"";n.length0?1:0}var n;return 0===(n=t(e.getFullYear()-r.getFullYear()))&&0===(n=t(e.getMonth()-r.getMonth()))&&(n=t(e.getDate()-r.getDate())),n}function v(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function y(e){var r=function(e,r){for(var t=new Date(e.getTime());r>0;){var n=Ft(t.getFullYear()),o=t.getMonth(),i=(n?Vt:Yt)[o];if(!(r>i-t.getDate()))return t.setDate(t.getDate()+r),t;r-=i-t.getDate()+1,t.setDate(1),o<11?t.setMonth(o+1):(t.setMonth(0),t.setFullYear(t.getFullYear()+1))}return t}(new Date(e.tm_year+1900,0,1),e.tm_yday),t=new Date(r.getFullYear(),0,4),n=new Date(r.getFullYear()+1,0,4),o=v(t),i=v(n);return m(o,r)<=0?m(i,r)<=0?r.getFullYear()+1:r.getFullYear():r.getFullYear()-1}var g={"%a":function(e){return d[e.tm_wday].substring(0,3)},"%A":function(e){return d[e.tm_wday]},"%b":function(e){return f[e.tm_mon].substring(0,3)},"%B":function(e){return f[e.tm_mon]},"%C":function(e){return h((e.tm_year+1900)/100|0,2)},"%d":function(e){return h(e.tm_mday,2)},"%e":function(e){return p(e.tm_mday,2," ")},"%g":function(e){return y(e).toString().substring(2)},"%G":function(e){return y(e)},"%H":function(e){return h(e.tm_hour,2)},"%I":function(e){var r=e.tm_hour;return 0==r?r=12:r>12&&(r-=12),h(r,2)},"%j":function(e){return h(e.tm_mday+function(e,r){for(var t=0,n=0;n<=r;t+=e[n++]);return t}(Ft(e.tm_year+1900)?Vt:Yt,e.tm_mon-1),3)},"%m":function(e){return h(e.tm_mon+1,2)},"%M":function(e){return h(e.tm_min,2)},"%n":function(){return"\n"},"%p":function(e){return e.tm_hour>=0&&e.tm_hour<12?"AM":"PM"},"%S":function(e){return h(e.tm_sec,2)},"%t":function(){return"\t"},"%u":function(e){return e.tm_wday||7},"%U":function(e){var r=e.tm_yday+7-e.tm_wday;return h(Math.floor(r/7),2)},"%V":function(e){var r=Math.floor((e.tm_yday+7-(e.tm_wday+6)%7)/7);if((e.tm_wday+371-e.tm_yday-2)%7<=2&&r++,r){if(53==r){var t=(e.tm_wday+371-e.tm_yday)%7;4==t||3==t&&Ft(e.tm_year)||(r=1)}}else{r=52;var n=(e.tm_wday+7-e.tm_yday-1)%7;(4==n||5==n&&Ft(e.tm_year%400-1))&&r++}return h(r,2)},"%w":function(e){return e.tm_wday},"%W":function(e){var r=e.tm_yday+7-(e.tm_wday+6)%7;return h(Math.floor(r/7),2)},"%y":function(e){return(e.tm_year+1900).toString().substring(2)},"%Y":function(e){return e.tm_year+1900},"%z":function(e){var r=e.tm_gmtoff,t=r>=0;return r=(r=Math.abs(r)/60)/60*100+r%60,(t?"+":"-")+String("0000"+r).slice(-4)},"%Z":function(e){return e.tm_zone},"%%":function(){return"%"}};for(var l in c=c.replace(/%%/g,"\0\0"),g)c.includes(l)&&(c=c.replace(new RegExp(l,"g"),g[l](s)));var _=xe(c=c.replace(/\0\0/g,"%"),!1);return _.length>r?0:(function(e,r){z(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),t().set(e,r)}(_,e),_.length-1)}(e,r,n,o)}},Qt=(function(){var e={env:Jt,wasi_snapshot_preview1:Jt};function r(e,r){var t,n,o=e.exports;d.asm=o,t=d.asm._emscripten_tls_init,Qe.tlsInitFunctions.push(t),z(ae=d.asm.__indirect_function_table,"table not found in wasm exports"),n=d.asm.__wasm_call_ctors,de.unshift(n),W=r,T||be("wasm-instantiate")}T||Ee("wasm-instantiate");var t=d;function n(e){z(d===t,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),t=null,r(e.instance,e.module)}function o(r){return function(){if(!M&&(v||y)){if("function"==typeof fetch&&!Fe(ke))return fetch(ke,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+ke+"'";return e.arrayBuffer()})).catch((function(){return De(ke)}));if(E)return new Promise((function(e,r){E(ke,(function(r){e(new Uint8Array(r))}),r)}))}return Promise.resolve().then((function(){return De(ke)}))}().then((function(r){return WebAssembly.instantiate(r,e)})).then((function(e){return e})).then(r,(function(e){I("failed to asynchronously prepare wasm: "+e),Fe(ke)&&I("warning: Loading from a file URI ("+ke+") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing"),Te(e)}))}if(d.instantiateWasm)try{return d.instantiateWasm(e,r)}catch(e){I("Module.instantiateWasm callback failed with error: "+e),l(e)}(M||"function"!=typeof WebAssembly.instantiateStreaming||Ce(ke)||Fe(ke)||g||"function"!=typeof fetch?o(n):fetch(ke,{credentials:"same-origin"}).then((function(r){return WebAssembly.instantiateStreaming(r,e).then(n,(function(e){return I("wasm streaming compile failed: "+e),I("falling back to ArrayBuffer instantiation"),o(n)}))}))).catch(l)}(),d.___wasm_call_ctors=Ae("__wasm_call_ctors"),d.getTempRet0=Ae("getTempRet0"),d.___cxa_free_exception=Ae("__cxa_free_exception")),Zt=d._malloc=Ae("malloc"),en=d.___errno_location=Ae("__errno_location"),rn=d._free=Ae("free"),tn=d._fflush=Ae("fflush"),nn=(d.__emscripten_tls_init=Ae("_emscripten_tls_init"),d._pthread_self=Ae("pthread_self")),on=d._emscripten_builtin_memalign=Ae("emscripten_builtin_memalign"),an=d.___getTypeName=Ae("__getTypeName"),sn=(d.__embind_initialize_bindings=Ae("_embind_initialize_bindings"),d.__emscripten_thread_init=Ae("_emscripten_thread_init")),cn=(d.__emscripten_thread_crashed=Ae("_emscripten_thread_crashed"),d._emscripten_main_thread_process_queued_calls=Ae("emscripten_main_thread_process_queued_calls"),d._emscripten_main_browser_thread_id=Ae("emscripten_main_browser_thread_id"),d._emscripten_run_in_main_runtime_thread_js=Ae("emscripten_run_in_main_runtime_thread_js")),un=(d._emscripten_dispatch_to_thread_=Ae("emscripten_dispatch_to_thread_"),d._emscripten_stack_get_base=function(){return(un=d._emscripten_stack_get_base=d.asm.emscripten_stack_get_base).apply(null,arguments)}),ln=d._emscripten_stack_get_end=function(){return(ln=d._emscripten_stack_get_end=d.asm.emscripten_stack_get_end).apply(null,arguments)},dn=d.__emscripten_proxy_execute_task_queue=Ae("_emscripten_proxy_execute_task_queue"),fn=d.__emscripten_thread_free_data=Ae("_emscripten_thread_free_data"),pn=d.__emscripten_thread_exit=Ae("_emscripten_thread_exit"),hn=d._setThrew=Ae("setThrew"),mn=d.setTempRet0=Ae("setTempRet0"),vn=d._emscripten_stack_init=function(){return(vn=d._emscripten_stack_init=d.asm.emscripten_stack_init).apply(null,arguments)},yn=d._emscripten_stack_set_limits=function(){return(yn=d._emscripten_stack_set_limits=d.asm.emscripten_stack_set_limits).apply(null,arguments)},gn=(d._emscripten_stack_get_free=function(){return(d._emscripten_stack_get_free=d.asm.emscripten_stack_get_free).apply(null,arguments)},d.stackSave=Ae("stackSave")),_n=d.stackRestore=Ae("stackRestore"),wn=d.stackAlloc=Ae("stackAlloc"),En=d._emscripten_stack_get_current=function(){return(En=d._emscripten_stack_get_current=d.asm.emscripten_stack_get_current).apply(null,arguments)},bn=d.___cxa_demangle=Ae("__cxa_demangle"),Tn=d.___cxa_can_catch=Ae("__cxa_can_catch"),kn=d.___cxa_is_pointer_type=Ae("__cxa_is_pointer_type"),Sn=d.___set_stack_limits=Ae("__set_stack_limits"),Pn=(d.dynCall_jii=Ae("dynCall_jii"),d.dynCall_viij=Ae("dynCall_viij"),d.dynCall_jiji=Ae("dynCall_jiji"),d.dynCall_viijii=Ae("dynCall_viijii"),d.dynCall_jiiii=Ae("dynCall_jiiii"));function Cn(e){if(e=e||p,!(ve>0)){if(T||(z(!T),vn(),ce()),T)return u(d),me(),void startWorker(d);!function(){if(z(!T),d.preRun)for("function"==typeof d.preRun&&(d.preRun=[d.preRun]);d.preRun.length;)e=d.preRun.shift(),le.unshift(e);var e;Ze(le)}(),ve>0||(d.setStatus?(d.setStatus("Running..."),setTimeout((function(){setTimeout((function(){d.setStatus("")}),1),r()}),1)):r(),ue())}function r(){Xt||(Xt=!0,d.calledRun=!0,U||(me(),u(d),d.onRuntimeInitialized&&d.onRuntimeInitialized(),z(!d._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),function(){if(ue(),!T){if(d.postRun)for("function"==typeof d.postRun&&(d.postRun=[d.postRun]);d.postRun.length;)e=d.postRun.shift(),fe.unshift(e);var e;Ze(fe)}}()))}}if(d.dynCall_iiiiij=Ae("dynCall_iiiiij"),d.dynCall_iiiiijj=Ae("dynCall_iiiiijj"),d.dynCall_iiiiiijj=Ae("dynCall_iiiiiijj"),d.addRunDependency=Ee,d.removeRunDependency=be,d.FS_createPath=Ye.createPath,d.FS_createDataFile=Ye.createDataFile,d.FS_createPreloadedFile=Ye.createPreloadedFile,d.FS_createLazyFile=Ye.createLazyFile,d.FS_createDevice=Ye.createDevice,d.FS_unlink=Ye.unlink,d.keepRuntimeAlive=he,d.wasmMemory=L,d.ExitStatus=Me,d.FS=Ye,d.PThread=Qe,["run","UTF8ArrayToString","UTF8ToString","stringToUTF8Array","stringToUTF8","lengthBytesUTF8","addOnPreRun","addOnInit","addOnPreMain","addOnExit","addOnPostRun","FS_createFolder","FS_createLink","getLEB","getFunctionTables","alignFunctionTables","registerFunctions","prettyPrint","getCompilerSetting","out","err","callMain","abort","stackAlloc","stackSave","stackRestore","getTempRet0","setTempRet0","GROWABLE_HEAP_I8","GROWABLE_HEAP_U8","GROWABLE_HEAP_I16","GROWABLE_HEAP_U16","GROWABLE_HEAP_I32","GROWABLE_HEAP_U32","GROWABLE_HEAP_F32","GROWABLE_HEAP_F64","writeStackCookie","checkStackCookie","ptrToString","zeroMemory","stringToNewUTF8","exitJS","getHeapMax","emscripten_realloc_buffer","ENV","ERRNO_CODES","ERRNO_MESSAGES","setErrNo","inetPton4","inetNtop4","inetPton6","inetNtop6","readSockaddr","writeSockaddr","DNS","getHostByName","Protocols","Sockets","getRandomDevice","warnOnce","traverseStack","UNWIND_CACHE","convertPCtoSourceLocation","readEmAsmArgsArray","readEmAsmArgs","runEmAsmFunction","runMainThreadEmAsm","jstoi_q","jstoi_s","getExecutableName","listenOnce","autoResumeAudioContext","dynCallLegacy","getDynCaller","dynCall","handleException","runtimeKeepalivePush","runtimeKeepalivePop","callUserCallback","maybeExit","safeSetTimeout","asmjsMangle","asyncLoad","alignMemory","mmapAlloc","writeI53ToI64","writeI53ToI64Clamped","writeI53ToI64Signaling","writeI53ToU64Clamped","writeI53ToU64Signaling","readI53FromI64","readI53FromU64","convertI32PairToI53","convertI32PairToI53Checked","convertU32PairToI53","getCFunc","ccall","cwrap","uleb128Encode","sigToWasmTypes","generateFuncType","convertJsFunctionToWasm","freeTableIndexes","functionsInTableMap","getEmptyTableSlot","updateTableMap","addFunction","removeFunction","reallyNegative","unSign","strLen","reSign","formatString","setValue","getValue","PATH","PATH_FS","intArrayFromString","intArrayToString","AsciiToString","stringToAscii","UTF16Decoder","UTF16ToString","stringToUTF16","lengthBytesUTF16","UTF32ToString","stringToUTF32","lengthBytesUTF32","allocateUTF8","allocateUTF8OnStack","writeStringToMemory","writeArrayToMemory","writeAsciiToMemory","SYSCALLS","getSocketFromFD","getSocketAddress","JSEvents","registerKeyEventCallback","specialHTMLTargets","maybeCStringToJsString","findEventTarget","findCanvasEventTarget","getBoundingClientRect","fillMouseEventData","registerMouseEventCallback","registerWheelEventCallback","registerUiEventCallback","registerFocusEventCallback","fillDeviceOrientationEventData","registerDeviceOrientationEventCallback","fillDeviceMotionEventData","registerDeviceMotionEventCallback","screenOrientation","fillOrientationChangeEventData","registerOrientationChangeEventCallback","fillFullscreenChangeEventData","registerFullscreenChangeEventCallback","JSEvents_requestFullscreen","JSEvents_resizeCanvasForFullscreen","registerRestoreOldStyle","hideEverythingExceptGivenElement","restoreHiddenElements","setLetterbox","currentFullscreenStrategy","restoreOldWindowedStyle","softFullscreenResizeWebGLRenderTarget","doRequestFullscreen","fillPointerlockChangeEventData","registerPointerlockChangeEventCallback","registerPointerlockErrorEventCallback","requestPointerLock","fillVisibilityChangeEventData","registerVisibilityChangeEventCallback","registerTouchEventCallback","fillGamepadEventData","registerGamepadEventCallback","registerBeforeUnloadEventCallback","fillBatteryEventData","battery","registerBatteryEventCallback","setCanvasElementSize","getCanvasElementSize","demangle","demangleAll","jsStackTrace","stackTrace","getEnvStrings","checkWasiClock","doReadv","doWritev","dlopenMissingError","createDyncallWrapper","setImmediateWrapped","clearImmediateWrapped","polyfillSetImmediate","uncaughtExceptionCount","exceptionLast","exceptionCaught","ExceptionInfo","exception_addRef","exception_decRef","getExceptionMessageCommon","incrementExceptionRefcount","decrementExceptionRefcount","getExceptionMessage","Browser","setMainLoop","wget","MEMFS","TTY","PIPEFS","SOCKFS","_setNetworkCallback","tempFixedLengthArray","miniTempWebGLFloatBuffers","heapObjectForWebGLType","heapAccessShiftForWebGLHeap","GL","emscriptenWebGLGet","computeUnpackAlignedImageSize","emscriptenWebGLGetTexPixelData","emscriptenWebGLGetUniform","webglGetUniformLocation","webglPrepareUniformLocationsBeforeFirstUse","webglGetLeftBracePos","emscriptenWebGLGetVertexAttrib","writeGLArray","AL","SDL_unicode","SDL_ttfContext","SDL_audio","SDL","SDL_gfx","GLUT","EGL","GLFW_Window","GLFW","GLEW","IDBStore","runAndAbortIfError","ALLOC_NORMAL","ALLOC_STACK","allocate","killThread","cleanupThread","registerTLSInit","cancelThread","spawnThread","exitOnMainThread","invokeEntryPoint","executeNotifiedProxyingQueue","InternalError","BindingError","UnboundTypeError","PureVirtualError","init_embind","throwInternalError","throwBindingError","throwUnboundTypeError","ensureOverloadTable","exposePublicSymbol","replacePublicSymbol","extendError","createNamedFunction","embindRepr","registeredInstances","getBasestPointer","registerInheritedInstance","unregisterInheritedInstance","getInheritedInstance","getInheritedInstanceCount","getLiveInheritedInstances","registeredTypes","awaitingDependencies","typeDependencies","registeredPointers","registerType","whenDependentTypesAreResolved","embind_charCodes","embind_init_charCodes","readLatin1String","getTypeName","heap32VectorToArray","requireRegisteredType","getShiftFromSize","integerReadValueFromPointer","enumReadValueFromPointer","floatReadValueFromPointer","simpleReadValueFromPointer","runDestructors","new_","craftInvokerFunction","embind__requireFunction","tupleRegistrations","structRegistrations","genericPointerToWireType","constNoSmartPtrRawPointerToWireType","nonConstNoSmartPtrRawPointerToWireType","init_RegisteredPointer","RegisteredPointer","RegisteredPointer_getPointee","RegisteredPointer_destructor","RegisteredPointer_deleteObject","RegisteredPointer_fromWireType","runDestructor","releaseClassHandle","finalizationRegistry","detachFinalizer_deps","detachFinalizer","attachFinalizer","makeClassHandle","init_ClassHandle","ClassHandle","ClassHandle_isAliasOf","throwInstanceAlreadyDeleted","ClassHandle_clone","ClassHandle_delete","deletionQueue","ClassHandle_isDeleted","ClassHandle_deleteLater","flushPendingDeletes","delayFunction","setDelayFunction","RegisteredClass","shallowCopyInternalPointer","downcastPointer","upcastPointer","validateThis","char_0","char_9","makeLegalFunctionName","emval_handle_array","emval_free_list","emval_symbols","init_emval","count_emval_handles","get_first_emval","getStringOrSymbol","Emval","emval_newers","craftEmvalAllocator","emval_get_global","emval_lookupTypes","emval_allocateDestructors","emval_methodCallers","emval_addMethodCaller","emval_registeredMethods","IDBFS","NODEFS"].forEach((function(e){Object.getOwnPropertyDescriptor(d,e)||Object.defineProperty(d,e,{configurable:!0,get:function(){var r="'"+e+"' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)";x(e)&&(r+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"),Te(r)}})})),["stringToNewUTF8","inetPton4","inetNtop4","inetPton6","inetNtop6","readSockaddr","writeSockaddr","getHostByName","traverseStack","convertPCtoSourceLocation","readEmAsmArgs","runEmAsmFunction","runMainThreadEmAsm","jstoi_q","jstoi_s","listenOnce","autoResumeAudioContext","runtimeKeepalivePush","runtimeKeepalivePop","callUserCallback","maybeExit","safeSetTimeout","asmjsMangle","writeI53ToI64","writeI53ToI64Clamped","writeI53ToI64Signaling","writeI53ToU64Clamped","writeI53ToU64Signaling","readI53FromU64","convertI32PairToI53","convertU32PairToI53","getCFunc","ccall","cwrap","uleb128Encode","sigToWasmTypes","generateFuncType","convertJsFunctionToWasm","getEmptyTableSlot","updateTableMap","addFunction","removeFunction","reallyNegative","unSign","strLen","reSign","formatString","intArrayToString","AsciiToString","stringToAscii","allocateUTF8OnStack","writeStringToMemory","getSocketFromFD","getSocketAddress","registerKeyEventCallback","maybeCStringToJsString","findEventTarget","findCanvasEventTarget","getBoundingClientRect","fillMouseEventData","registerMouseEventCallback","registerWheelEventCallback","registerUiEventCallback","registerFocusEventCallback","fillDeviceOrientationEventData","registerDeviceOrientationEventCallback","fillDeviceMotionEventData","registerDeviceMotionEventCallback","screenOrientation","fillOrientationChangeEventData","registerOrientationChangeEventCallback","fillFullscreenChangeEventData","registerFullscreenChangeEventCallback","JSEvents_requestFullscreen","JSEvents_resizeCanvasForFullscreen","registerRestoreOldStyle","hideEverythingExceptGivenElement","restoreHiddenElements","setLetterbox","softFullscreenResizeWebGLRenderTarget","doRequestFullscreen","fillPointerlockChangeEventData","registerPointerlockChangeEventCallback","registerPointerlockErrorEventCallback","requestPointerLock","fillVisibilityChangeEventData","registerVisibilityChangeEventCallback","registerTouchEventCallback","fillGamepadEventData","registerGamepadEventCallback","registerBeforeUnloadEventCallback","fillBatteryEventData","battery","registerBatteryEventCallback","setCanvasElementSize","getCanvasElementSize","checkWasiClock","createDyncallWrapper","setImmediateWrapped","clearImmediateWrapped","polyfillSetImmediate","getExceptionMessageCommon","incrementExceptionRefcount","decrementExceptionRefcount","getExceptionMessage","setMainLoop","_setNetworkCallback","heapObjectForWebGLType","heapAccessShiftForWebGLHeap","emscriptenWebGLGet","computeUnpackAlignedImageSize","emscriptenWebGLGetTexPixelData","emscriptenWebGLGetUniform","webglGetUniformLocation","webglPrepareUniformLocationsBeforeFirstUse","webglGetLeftBracePos","emscriptenWebGLGetVertexAttrib","writeGLArray","SDL_unicode","SDL_ttfContext","SDL_audio","GLFW_Window","runAndAbortIfError","ALLOC_NORMAL","ALLOC_STACK","allocate","registerInheritedInstance","unregisterInheritedInstance","getStringOrSymbol","craftEmvalAllocator","emval_get_global","emval_lookupTypes","emval_allocateDestructors","emval_addMethodCaller"].forEach((function(e){"undefined"==typeof globalThis||Object.getOwnPropertyDescriptor(globalThis,e)||Object.defineProperty(globalThis,e,{configurable:!0,get:function(){var r="`"+e+"` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line",t=e;t.startsWith("_")||(t="$"+e),r+=" (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE="+t+")",x(e)&&(r+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"),nr(r)}})})),ge=function e(){Xt||Cn(),Xt||(ge=e)},d.preInit)for("function"==typeof d.preInit&&(d.preInit=[d.preInit]);d.preInit.length>0;)d.preInit.pop()();return Cn(),r.ready}})();"object"==typeof exports&&"object"==typeof module?module.exports=createCCP4Module:"function"==typeof define&&define.amd?define([],(function(){return createCCP4Module})):"object"==typeof exports&&(exports.createCCP4Module=createCCP4Module); \ No newline at end of file diff --git a/webserver/public/baby-gru/wasm/web_example.wasm b/webserver/public/baby-gru/wasm/web_example.wasm deleted file mode 100644 index 23f08128d..000000000 Binary files a/webserver/public/baby-gru/wasm/web_example.wasm and /dev/null differ diff --git a/webserver/src/App.css b/webserver/src/App.css deleted file mode 100644 index e69de29bb..000000000 diff --git a/webserver/src/App.tsx b/webserver/src/App.tsx deleted file mode 100644 index 07f897505..000000000 --- a/webserver/src/App.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { useMemo, Suspense } from 'react' -import './App.css' -import HomeSection from './pages/Home/HomeSection' -import DatabaseSection from './pages/DatabaseSection/DatabaseSection' - -import PageLoad from './components/Loading/PageLoad' -import { Routes, Route } from "react-router-dom"; -import { - BrowserRouter as Router, - Link, - useLocation -} from "react-router-dom"; -import APIHandler from './api_components/APIHandler' - -function useQuery() { - const { search } = useLocation(); - - return useMemo(() => new URLSearchParams(search), [search]); -} - -function App() { - let query = useQuery(); - - return ( - }> -
    - - - } /> - } /> - -
    -
    - ) -} - -export default App \ No newline at end of file diff --git a/webserver/src/assets/Molecule.jsx b/webserver/src/assets/Molecule.jsx deleted file mode 100644 index 6dc63cb15..000000000 --- a/webserver/src/assets/Molecule.jsx +++ /dev/null @@ -1,18 +0,0 @@ -export default function Molecule () { - return ( - - - - - - - - - - - - - - - ) -} \ No newline at end of file diff --git a/webserver/src/components/DatabaseComponents/BFactorVsRSCC.tsx b/webserver/src/components/DatabaseComponents/BFactorVsRSCC.tsx deleted file mode 100644 index 8facd08d5..000000000 --- a/webserver/src/components/DatabaseComponents/BFactorVsRSCC.tsx +++ /dev/null @@ -1,92 +0,0 @@ -import { useEffect, useState, lazy } from 'react'; - -const Plot = lazy(() => import('react-plotly.js')); - -function calculate_points(data) { - let glycans = data.data.glycans - - let x_axis = [] - let y_axis = [] - let text = [] - - for (const key in glycans) { - let glycan_type = glycans[key] - for (let i = 0; i < glycan_type.length; i++) { - let sugars = glycan_type[i].Sugars - for (let j = 0; j < sugars.length; j++) { - x_axis.push(sugars[j].BFactor) - y_axis.push(sugars[j].RSCC) - text.push(sugars[j]["Sugar ID"]) - } - } - } - - - return [x_axis, y_axis, text] -} - -export default function BFactorVsRSCC(props) { - - const [trace, setTrace] = useState({}) - - useEffect(() => { - const [x_axis, y_axis, text] = calculate_points(props) - - setTrace({ - x: x_axis, - y: y_axis, - text: text, - hoverinfo: "text", - mode: 'markers', - type: 'scatter', - marker: { - size: 8, - color: 'green', - symbol: ['o'] - }, - }) - }, []) - - - return ( -
    - BFactor vs RSCC - -
    - ) - - - -} \ No newline at end of file diff --git a/webserver/src/components/DatabaseComponents/CremerPopleGraph.tsx b/webserver/src/components/DatabaseComponents/CremerPopleGraph.tsx deleted file mode 100644 index 5c5e1ca4c..000000000 --- a/webserver/src/components/DatabaseComponents/CremerPopleGraph.tsx +++ /dev/null @@ -1,98 +0,0 @@ -import { useEffect, useState, lazy } from 'react'; - -const Plot = lazy(() => import('react-plotly.js')); - -function calculate_points(data) { - let glycans = data.data.glycans - - let x_axis = [] - let y_axis = [] - let text = [] - - for (const key in glycans) { - let glycan_type = glycans[key] - for (let i = 0; i < glycan_type.length; i++) { - let sugars = glycan_type[i].Sugars - for (let j = 0; j < sugars.length; j++) { - - x_axis.push(sugars[j].Phi) - y_axis.push(sugars[j].Theta) - text.push(sugars[j]["Sugar ID"]) - } - } - } - - - return [x_axis, y_axis, text] -} - -export default function CremerPopleGraph(props) { - - const [trace, setTrace] = useState({}) - - useEffect(() => { - const [x_axis, y_axis, text] = calculate_points(props) - - setTrace({ - x: x_axis, - y: y_axis, - text: text, - hoverinfo: "text", - mode: 'markers', - type: 'scatter', - marker: { - size: 8, - color: 'green', - symbol: ['o'] - }, - }) - - }, []) - - - return ( -
    - Conformational landscape for pyranoses - - - -
    - - ) - - - -} \ No newline at end of file diff --git a/webserver/src/components/DatabaseComponents/SNFGList.tsx b/webserver/src/components/DatabaseComponents/SNFGList.tsx deleted file mode 100644 index c94bb8077..000000000 --- a/webserver/src/components/DatabaseComponents/SNFGList.tsx +++ /dev/null @@ -1,151 +0,0 @@ -import { useMemo, useRef, useEffect, useState } from 'react'; -import { useTable } from 'react-table'; -import { DatabaseColumns } from "../../data/Constants" -import styled from 'styled-components' - -function custom_sort(a, b) { - a = a.chain - b = b.chain - if (a < b) return -1; - if (a > b) return 1; - return 0; -} - -function parse_results(data) { - let glycans = data.data.glycans - - let table_data = [] - - for (const key in glycans) { - let glycan_type = glycans[key] - for (let i = 0; i < glycan_type.length; i++) { - - let chain = glycan_type[i].RootSugarChainID - - let SNFG = glycan_type[i].SNFG - let WURCS = glycan_type[i].WURCS - - table_data.push( - { - "chain": chain, - "SNFG": SNFG, - "WURCS": WURCS - }) - } - } - - table_data.sort(custom_sort) - return table_data -} - -let Styles = styled.div` -table { - border-collapse: collapse; - border-spacing: 0; - width: 100%; - // border: 0px solid #ddd; -} - -table th { - text-align: left; - padding: 16px; - // border: 1px solid #ddd; -} - -table td { - text-align: center; - padding: 16px; - border: 1px solid #ddd; - border-style: solid none; -} - -table td { - border-style: none none; -} - -table tr:nth-child(even) { - background-color: #f6f6f6; -} - -table tr:nth-child(even) { - background-color: #F4F9FF; - // color: #000000 -} - -table th { - padding-top: 12px; - padding-bottom: 12px; - text-align: center; - background-color: #F4F9FF; - color: black; -} - -table th:first-of-type { - border-top-left-radius: 30px; -} - -table th:last-of-type { - border-top-right-radius: 30px; -} - -table tr:last-of-type td:first-of-type { - border-bottom-left-radius: 30px; -} - -table tr:last-of-type td:last-of-type { - border-bottom-right-radius: 30px; -} - -` - -export default function SNFGList(props) { - - const [data, setData] = useState([]) - const columns = useMemo(() => DatabaseColumns, []); - const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } = useTable({ columns, data }); - - useEffect(() => { - let results = parse_results(props) - setData(results) - }, []) - - return ( -
    - N- and O-glycan structure 2D descriptions - - - - - {headerGroups.map((headerGroup) => ( - - {headerGroup.headers.map((column) => ( - - ))} - - ))} - - - {rows.map((row) => { - prepareRow(row); - return ( - - {row.cells.map((cell) => { - return ( - - ); - })} - - ); - })} - -
    - {column.render('Header')} -
    - {cell.render('Cell')} -
    -
    -
    - - ) -} \ No newline at end of file diff --git a/webserver/src/components/DatabaseComponents/SNFGSection.tsx b/webserver/src/components/DatabaseComponents/SNFGSection.tsx deleted file mode 100644 index 5caade8c5..000000000 --- a/webserver/src/components/DatabaseComponents/SNFGSection.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import { useEffect, useState } from "react" - -export default function SNFGSection(props) { - - const [showSection, setShowSection] = useState(false) - - useEffect(() => {console.log(props)}, []) - - return ( -
    - Chain: {props.id} - - - - - {showSection ? - props.item.map((array_item, array_index) => { - return ( - - ) - }) - : <>} -
    - ) -} - -export function SNFGItem(props) { - - const [showWURCS, setShowWURCS] = useState(false) - - return ( -
    -
    WURCS: - - - {showWURCS ? props.item.WURCS : <>} -
    -
    -
    - ) -} \ No newline at end of file diff --git a/webserver/src/components/DatabaseComponents/SugarList.tsx b/webserver/src/components/DatabaseComponents/SugarList.tsx deleted file mode 100644 index 84087df4a..000000000 --- a/webserver/src/components/DatabaseComponents/SugarList.tsx +++ /dev/null @@ -1,171 +0,0 @@ -import { useMemo, useRef, useEffect, useState } from 'react'; -import { useTable } from 'react-table'; -import { DatabaseColumns, SugarListColumns } from "../../data/Constants" -import styled from 'styled-components' - -function custom_sort(a, b) { - let split_a = a["Sugar ID"].split("-") - let split_b = b["Sugar ID"].split("-") - - if (split_a[1] < split_b[1]) { - return -1 - } - if (split_b[1] < split_a[1]) { - return 1; - } - - if (Number(split_a[2]) < Number(split_b[2])) { - return -1; - } - - if (Number(split_b[2]) < Number(split_a[2])) { - return 1; - } - - return 0; -} - - -function parse_results(data) { - let glycans = data.data.glycans - - let table_data = [] - - for (const key in glycans) { - let glycan_type = glycans[key] - for (let i = 0; i < glycan_type.length; i++) { - let sugars = glycan_type[i].Sugars - for (let j = 0; j < sugars.length; j++) { - let keys = Object.keys(sugars[j]) - let entry = {} - - for (let k = 0; k < keys.length; k++) { - let type_key = typeof (sugars[j][keys[k]]) - - if (type_key === "number") { - entry[keys[k]] = sugars[j][keys[k]].toFixed(2) - } - else { - entry[keys[k]] = sugars[j][keys[k]] - } - } - entry["type"] = key - table_data.push(entry) - } - } - } - - table_data.sort(custom_sort) - return table_data -} - -let Styles = styled.div` -table { - border-collapse: collapse; - border-spacing: 0; - width: 100%; - // border: 0px solid #ddd; -} - -table th { - text-align: left; - padding: 16px; - // border: 1px solid #ddd; -} - -table td { - text-align: center; - padding: 16px; - border: 1px solid #ddd; - border-style: solid none; -} - -table td { - border-style: none none; -} - -table tr:nth-child(even) { - background-color: #f6f6f6; -} - -table tr:nth-child(even) { - background-color: #F4F9FF; - // color: #000000 -} - -table th { - padding-top: 12px; - padding-bottom: 12px; - text-align: center; - background-color: #F4F9FF; - color: black; -} - -table th:first-of-type { - border-top-left-radius: 30px; -} - -table th:last-of-type { - border-top-right-radius: 30px; -} - -table tr:last-of-type td:first-of-type { - border-bottom-left-radius: 30px; -} - -table tr:last-of-type td:last-of-type { - border-bottom-right-radius: 30px; -} - -` - -export default function SugarList(props) { - - const [data, setData] = useState([]) - const columns = useMemo(() => SugarListColumns, []); - const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } = useTable({ columns, data }); - - useEffect(() => { - let results = parse_results(props) - setData(results) - }, []) - - return ( -
    - Detailed monosaccharide validation data - - - - - {headerGroups.map((headerGroup) => ( - - {headerGroup.headers.map((column) => ( - - ))} - - ))} - - - {rows.map((row) => { - prepareRow(row); - return ( - - {row.cells.map((cell) => { - return ( - - ); - })} - - ); - })} - -
    - {column.render('Header')} -
    - {cell.render('Cell')} -
    -
    -
    - ) -} \ No newline at end of file diff --git a/webserver/src/components/DatabaseFetch/DatabaseFetch.jsx b/webserver/src/components/DatabaseFetch/DatabaseFetch.jsx deleted file mode 100644 index 2ecbc4229..000000000 --- a/webserver/src/components/DatabaseFetch/DatabaseFetch.jsx +++ /dev/null @@ -1,42 +0,0 @@ -import { useEffect, useState } from "react"; - -export default function DatabaseFetch({ PDBCode, setPDBCode, submitPressed }) { - - const [pdb, setPDB] = useState("") - - useEffect(() => { - if (pdb.length != 4) { return } - if (!pdb.match(/^[a-z0-9]+$/i)) { return } - - setPDBCode(pdb) - submitPressed(true) - }, [pdb]) - - return ( - <> - {PDBCode != true ? -
    - -
    : - <> - } - - ) -} \ No newline at end of file diff --git a/webserver/src/components/DatabaseResult/DatabaseResult.tsx b/webserver/src/components/DatabaseResult/DatabaseResult.tsx deleted file mode 100644 index e6a61462a..000000000 --- a/webserver/src/components/DatabaseResult/DatabaseResult.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { useEffect, useState } from "react" -import { DatabaseResultProps } from "../../interfaces/types" -import CremerPopleGraph from "../DatabaseComponents/CremerPopleGraph" -import BFactorVsRSCC from "../DatabaseComponents/BFactorVsRSCC" -import SNFGList from "../DatabaseComponents/SNFGList" -import SugarList from "../DatabaseComponents/SugarList" - -export default function DatabaseResult(props: DatabaseResultProps) { - - const [data, setData] = useState() - useEffect(() => { - if (!props.results) return - - setData(props.results) - }, []) - - return ( - <> - {data !== undefined ? -
    -

    Validation Report - {props.PDBCode}

    -
    - - -
    - - - -
    : - <>} - - ) -} \ No newline at end of file diff --git a/webserver/src/components/GlycanDetail/GlycanDetail.tsx b/webserver/src/components/GlycanDetail/GlycanDetail.tsx deleted file mode 100644 index 869971045..000000000 --- a/webserver/src/components/GlycanDetail/GlycanDetail.tsx +++ /dev/null @@ -1,96 +0,0 @@ -import {lazy, useCallback, useEffect, useState} from "react"; -import {MoorhenContainer, MoorhenContextProvider} from 'moorhen' - -import {GlycanDetailProps} from "../../interfaces/types" -import { type } from "os"; -const GlycanDetailInfoBox = lazy(() => import('./GlycanDetailInfoBox')); -const TorsionMultiPlot = lazy(() => import('../TorsionPlot/TorsionMultiPlot.tsx')); - - -export default function GlycanDetail(props: GlycanDetailProps) { - - async function handle_click(e) { - - let new_center_string = e.target.dataset.chainid + "/" + e.target.dataset.seqnum + "(" + e.target.dataset.resname + ")" - const selectedMolecule = props.controls.current.molecules.find((molecule) => molecule.name === "mol-1") - await selectedMolecule.centreOn(new_center_string) - - } - - const ref = useCallback((node: HTMLElement | null) => { - if (node !== null) { - - let useList = node.querySelectorAll('use') - - for (let i = 0; i < useList.length; i++) { - useList[i].addEventListener('click', handle_click) - } - } - - document.querySelectorAll("svg")[0].setAttribute("width", "50vw") - document.querySelectorAll("svg")[0].setAttribute("height", "100%") - - }, []) - - async function handleContourChange(e) { - props.map.contourLevel = Number(e.target.value) - await props.map.doCootContour( - ...props.map.glRef.current.origin.map(coord => -coord), - props.map.mapRadius, - props.map.contourLevel - ) - } - - const [width, setWidth] = useState(900); - const [height, setHeight] = useState(600); - const [torsionTab, setTorsionTab] = useState(0) - - return ( -
    - -
    -
    - -
    -

    Glycan Details

    -
    -
    - -
    - -
    - -

    SNFG

    - -
    -
    - Hover over a linkage to see a summary -
    - -

    Visualise

    - - - - - - - { - return [width, height]; - }} viewOnly={true}/> - - - -

    Torsion Plots

    - - - -
    ); -} diff --git a/webserver/src/components/GlycanDetail/GlycanDetailInfoBox.jsx b/webserver/src/components/GlycanDetail/GlycanDetailInfoBox.jsx deleted file mode 100644 index d75337dc1..000000000 --- a/webserver/src/components/GlycanDetail/GlycanDetailInfoBox.jsx +++ /dev/null @@ -1,21 +0,0 @@ - - -export default function GlycanDetailInfoBox({ row }) { - - return ( -
    -

    Validation Report

    -
    -

    Glycan ID: {row.id}

    -

    Glytoucan ID: {row.glytoucan_id}

    -
    -
    -

    Number of conformation issues: {row.conformation_err}

    -

    Number of anomer issues: {row.anomer_err}

    -

    Number of torsion issues: {row.torsion_err}

    -

    Number of pucker issues: {row.puckering_err}

    -

    Number of chirality issues: {row.chirality_err}

    -
    -
    - ) -} \ No newline at end of file diff --git a/webserver/src/components/GlycanDetail/GlycanDetailTable.jsx b/webserver/src/components/GlycanDetail/GlycanDetailTable.jsx deleted file mode 100644 index bee0b81e8..000000000 --- a/webserver/src/components/GlycanDetail/GlycanDetailTable.jsx +++ /dev/null @@ -1,129 +0,0 @@ -import {useMemo, useState} from "react"; -import {useTable} from 'react-table'; -import styled from 'styled-components' - - -const Styles = styled.div` - table { - border-spacing: 0; - width: 100%; - border: 0px solid #ddd; - border-collapse: seperate; - } - - table th { - text-align: left; - padding: 16px; - // border: 1px solid #ddd; - } - table td { - text-align: center; - padding: 16px; - border: 1px solid #ddd; - border-style: solid none; - } - - table tbody tr { - border: 1px solid #000000; - border-style: solid none; - } - - table td { - border-style: none none; - } - - table tr:nth-child(even) { - background-color: #f6f6f6; - } - - table tr:nth-child(even) { - background-color: #F4F9FF; - } - - table th { - padding-top: 12px; - padding-bottom: 12px; - text-align: center; - background-color: #F4F9FF; - color: black; - } - - table th:first-of-type { - border-top-left-radius: 30px; - } - table th:last-of-type { - border-top-right-radius: 30px; - } - table tr:last-of-type td:first-of-type { - border-bottom-left-radius: 30px; - } - table tr:last-of-type td:last-of-type { - border-bottom-right-radius: 30px; - } - - ` -export default function GlycanDetailTable({row}) { - const DATA = {} - - - console.log(DATA) - - const [data, setData] = useState(); - - const COLUMNS = [ - { - Header: 'Chain', - accessor: 'chain', - }, - { - Header: 'ID', - accessor: 'id', - }, - { - Header: 'GlytoucanID', - accessor: 'glytoucan_id', - }, - ] - - const columns = useMemo(() => COLUMNS, []); - const {getTableProps, getTableBodyProps, headerGroups, rows, prepareRow} = useTable({columns, data}); - - - return ( - -
    - - - {headerGroups.map((headerGroup) => ( - - {headerGroup.headers.map((column) => ( - - ))} - - ))} - - - {rows.map((row) => { - prepareRow(row); - return ( - - {row.cells.map((cell) => { - - return ( - - ); - })} - - ); - })} - -
    - {column.render('Header')} -
    - {cell.render('Cell')} -
    -
    -
    - ); - -} \ No newline at end of file diff --git a/webserver/src/components/Information/Information.tsx b/webserver/src/components/Information/Information.tsx deleted file mode 100644 index 27e5ee483..000000000 --- a/webserver/src/components/Information/Information.tsx +++ /dev/null @@ -1,61 +0,0 @@ -import {TORSIONS_CITATION, GLYCOMICS_CITATION} from "../../data/Constants" - -export function Information({}) { - return
    -
    -
    - How does it work? - - Carbohydrates, including O- and N-glycans attached to protein and lipid structures, are increasingly important in cellular biology. Crystallographic refinement of sugars is, however, very poorly performed, with thousands of incorrect structures polluting the Protein Data Bank. Privateer is a software that aims to detect and prevent conformational, regiochemical and stereochemical anomalies in cyclic carbohydrate structures. Multiple features can be used to assess the validity of a glycan chain. -
    - -
    -
    - -
    - Stereochemical Validation - - Cyclic carbohydrates usually have clear conformational preferences in terms of energy. Whilst enzymes can force sugars into higher-energy conformations in order to achieve catalysis, sugars tend to stay in their original lowest-energy conformation, which for pyranoses is either a 4C1 or a 1C4 chair. Privateer checks each glycan for the correct stereochemistry and highlights any outliers. - -
    -
    - -
    -
    - Real Space Correlation Coefficient Validation - The real space correlation coefficient metric quantitatively describes how well a modelled residue fits its associated experimental density. It is defined by calculating the difference between observed (experimental) structural factors and calculated structural factors associated with the fitted model. For monosaccharides that are modelled as components of glycans, RSCC values of above 0.80 are considered to signify a good model fit to its associated experimental density. A real space correlation coefficient against omit mFo-DFc electron density is reported as a quality of fit indicator. -
    - - -
    - -
    - -
    - Glycomics-Powered Validation - - - - - When modelling glycans, it is possible to produce incorrect glycan compositions that do nor conform with general glycan biosynthesis knowledge. In Privateer, users can check their glycan structure and composition against glycomics databases. This allows the identification of inconsistent linkages, and following this, alternative compositions will be suggested to provide a more accurate, complete structure. -
    -
    - -
    -
    - Linkage Torsion Validation - - - - - - - Torsion angle analysis allows the validation of the overall conformation of N-glycans. Using a compiled set of glycosidic linkage torsional preferences harvested from a curated set of glycoprotein models, a Z score for each proposed glycan linkage is calculated and displayed within the Symbol Nomenclature For Glycan (SNFG) image. -
    - -
    -
    -
    -
    ; -} - diff --git a/webserver/src/components/Loading/Loading.tsx b/webserver/src/components/Loading/Loading.tsx deleted file mode 100644 index 7acbe5fb1..000000000 --- a/webserver/src/components/Loading/Loading.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import ClipLoader from "react-spinners/ClipLoader"; - -export default function Loading(props: {loadingText: string}) { - return ( -
    -

    {props.loadingText}

    - - -
    - ) -} \ No newline at end of file diff --git a/webserver/src/components/NoGlycans/NoGlycans.tsx b/webserver/src/components/NoGlycans/NoGlycans.tsx deleted file mode 100644 index d34ddc02c..000000000 --- a/webserver/src/components/NoGlycans/NoGlycans.tsx +++ /dev/null @@ -1,25 +0,0 @@ - -import {NoGlycansProps} from "../../interfaces/types.tsx" - -export default function NoGlycans(props: NoGlycansProps) { - return ( -
    - -

    {props.text}

    - -
    - -
    - -
    - ) -} \ No newline at end of file diff --git a/webserver/src/components/PDBFetch/PDBFetch.jsx b/webserver/src/components/PDBFetch/PDBFetch.jsx deleted file mode 100644 index de969af3e..000000000 --- a/webserver/src/components/PDBFetch/PDBFetch.jsx +++ /dev/null @@ -1,54 +0,0 @@ -import { useEffect, useState } from "react"; - -export default function PDBFetch({PDBCode, setPDBCode, submitPressed}) { - - const [pdb, setPDB] = useState("") - - useEffect( () => { - if (pdb.length != 4) { return } - if (!pdb.match(/^[a-z0-9]+$/i)) { return } - - setPDBCode(pdb) - submitPressed(true) - }, [pdb]) - - return ( - <> - {PDBCode != true ? -
    - -
    : - <> - } - - ) -} \ No newline at end of file diff --git a/webserver/src/components/PrivateerDisplay/SNFG.tsx b/webserver/src/components/PrivateerDisplay/SNFG.tsx deleted file mode 100644 index 37f44f192..000000000 --- a/webserver/src/components/PrivateerDisplay/SNFG.tsx +++ /dev/null @@ -1,133 +0,0 @@ -import {lazy, useEffect, useRef, useState} from "react"; -import {MoorhenMap, MoorhenMolecule} from 'moorhen' -import {SNFGProps} from "../../interfaces/types" - -const SVGTable = lazy(() => import('../SVGTable/SVGTable.tsx')); -const GlycanDetail = lazy(() => import('../GlycanDetail/GlycanDetail.tsx')); - -export default function SNFG (props: SNFGProps) { - const [rowClicked, setRowClicked] = useState(false) - const [rowID, setRowID] = useState(0) - const [hideMoorhen, setHideMoorhen] = useState(true) - const [allowRowClick, setAllowRowClick] = useState(false) - - const [dataLoaded, setDataLoaded] = useState(false) - - const [cootInitialized, setCootInitialized] = useState(false) - const controls = useRef() - const [molecule, setMolecule] = useState() - const [map, setMap] = useState() - const forwardControls = (forwardedControls) => { - setCootInitialized(true) - controls.current = forwardedControls - } - - const [yScrollPosition, setYScrollPosition] = useState(0) - - useEffect(() => { - async function load_map_and_model() { - if (cootInitialized && controls.current && !dataLoaded) { - setAllowRowClick(true) - let newMolecule = new MoorhenMolecule(controls.current.commandCentre, controls.current.glRef, controls.current.monomerLibrary) - newMolecule.loadToCootFromString(props.fileContent, 'mol-1').then(() => { - controls.current.changeMolecules({action: 'Add', item: newMolecule}); - newMolecule.fetchIfDirtyAndDraw('CBs').then(() => { - let id = props.tableData[rowID].id - - let sugar_name = id.split("-")[0] - let sugar_id = id.split("-")[1].split("/")[0].split(":")[0] - let sugar_chain = id.split("/")[1].split("_")[0] - - let center_string = sugar_chain + "/" + sugar_id + "(" + sugar_name + ")" - - newMolecule.centreOn(center_string) - setMolecule(newMolecule) - } - ) - }) - - const map = new MoorhenMap(controls.current.commandCentre, controls.current.glRef); - const mapMetadata = { - F: "FWT", - PHI: "PHWT", - Fobs: "FP", - SigFobs: "SIGFP", - FreeR: "FREE", - isDifference: false, - useWeight: false, - calcStructFact: true, - } - if (props.PDBCode == "") { - await map.loadToCootFromMtzData(props.mtzData, "map-1", mapMetadata) - } - else { - await map.loadToCootFromMapData(props.mtzData, "map-1", false) - - } - map.suggestedContourLevel = 0.3 - console.log("Suggested level", map.suggestedContourLevel, map) - controls.current.changeMaps({ action: "Add", item: map }) - controls.current.setActiveMap(map) - setMap(map) - setDataLoaded(true) - } - } - load_map_and_model() - }, [cootInitialized]) - - - useEffect(() => { - async function move_view() { - if (!cootInitialized) {return} - - setYScrollPosition(window.scrollY) - let id = props.tableData[rowID].id - let sugar_name = id.split("-")[0] - let sugar_id = id.split("-")[1].split("/")[0].split(":")[0] - let sugar_chain = id.split("/")[1].split("_")[0] - - let center_string = sugar_chain + "/" + sugar_id + "(" + sugar_name + ")" - const selectedMolecule = controls.current.molecules.find((molecule) => molecule.name === "mol-1") - await selectedMolecule.centreOn(center_string) - window.scrollTo(0, 0) - setHideMoorhen(false) - } - move_view() - }, [rowClicked]) - - let glycanDetailProps = { - tableData:props.tableData, - hideMoorhen:hideMoorhen, - setHideMoorhen:setHideMoorhen, - rowID:rowID, - forwardControls:forwardControls, - scrollPosition:yScrollPosition, - controls:controls, - molecule:molecule, - map:map - } - - let svgTableProps = { - tableData:props.tableData, - allowRowClick:allowRowClick, - rowClick:rowClicked, - setRowClicked:setRowClicked, - setRowID:setRowID - } - - return ( -
    -
    -
    -

    Detected {props.tableData.length} Glycans - in {props.filename}

    - -
    - -
    - - -
    - ) - -} \ No newline at end of file diff --git a/webserver/src/components/SVGTable/SVGTable.tsx b/webserver/src/components/SVGTable/SVGTable.tsx deleted file mode 100644 index d6c7014d0..000000000 --- a/webserver/src/components/SVGTable/SVGTable.tsx +++ /dev/null @@ -1,125 +0,0 @@ -import {useMemo, useRef, useState} from 'react'; -import {useTable} from 'react-table'; -import {COLUMNS} from "../../data/Constants" -import styled from 'styled-components' -import {SVGTableProps} from "../../interfaces/types" - - -let Styles = styled.div` -table { - border-collapse: collapse; - border-spacing: 0; - width: 100%; - // border: 0px solid #ddd; -} - -table th { - text-align: left; - padding: 16px; - // border: 1px solid #ddd; -} - -table td { - text-align: center; - padding: 16px; - border: 1px solid #ddd; - border-style: solid none; -} - -table td { - border-style: none none; -} - -table tr:nth-child(even) { - background-color: #f6f6f6; -} - -table tr:nth-child(even) { - background-color: #F4F9FF; - // color: #000000 -} - -table th { - padding-top: 12px; - padding-bottom: 12px; - text-align: center; - background-color: #F4F9FF; - color: black; -} - -table th:first-of-type { - border-top-left-radius: 30px; -} - -table th:last-of-type { - border-top-right-radius: 30px; -} - -table tr:last-of-type td:first-of-type { - border-bottom-left-radius: 30px; -} - -table tr:last-of-type td:last-of-type { - border-bottom-right-radius: 30px; -} - -#row:hover { - scale: 101%; - cursor: grab; -} -` - - export default function SVGTable(props: SVGTableProps) { - const [data, setData] = useState(props.tableData); - const controls = useRef() - - const columns = useMemo(() => COLUMNS, []); - const {getTableProps, getTableBodyProps, headerGroups, rows, prepareRow} = useTable({columns, data}); - - - const handleRowClick = ((rowId: number) => { - if (props.allowRowClick) { - props.setRowClicked(!props.rowClick) - props.setRowID(rowId) - } - }) - - - return ( - // @ts-ignore - -
    - - - {headerGroups.map((headerGroup) => ( - - {headerGroup.headers.map((column) => ( - - ))} - - ))} - - - {rows.map((row) => { - prepareRow(row); - return ( - {if(props.allowRowClick) {handleRowClick(row.id)}}} - title="Click to visualise." id='row'> - {row.cells.map((cell) => { - return ( - - ); - })} - - ); - })} - -
    - {column.render('Header')} -
    - {cell.render('Cell')} -
    -
    -
    - ); -}; \ No newline at end of file diff --git a/webserver/src/components/Submit/Submit.jsx b/webserver/src/components/Submit/Submit.jsx deleted file mode 100644 index 471d4e11a..000000000 --- a/webserver/src/components/Submit/Submit.jsx +++ /dev/null @@ -1,56 +0,0 @@ -import Molecule from "../../assets/Molecule" - -function FileLine({icon, name}) { - return ( -
    -
    - {icon} -
    -

    {name}

    -
    - ) -} - -export default function Submit({coordinateFile, reflectionFile, submitPressed, setResetApp, allowSubmit}) { - - const getFileList = () => { - const array = [] - if (coordinateFile) { - array.push(} name={coordinateFile.name} key={"c"}/>) - } - if (reflectionFile) { - array.push(} name={reflectionFile.name} key={"r"}/>) - } - return array - } - - return ( -
    - -

    File uploaded:

    - {getFileList()} - - -
    - - - {allowSubmit ? : - } - -
    -
    - ) -} \ No newline at end of file diff --git a/webserver/src/components/TorsionPlot/TorsionMultiPlot.tsx b/webserver/src/components/TorsionPlot/TorsionMultiPlot.tsx deleted file mode 100644 index 24c579517..000000000 --- a/webserver/src/components/TorsionPlot/TorsionMultiPlot.tsx +++ /dev/null @@ -1,79 +0,0 @@ -import { useEffect, lazy} from "react"; - -const TorsionPlot = lazy(() => import('./TorsionPlot')); - - -function sortTorsions(torsions) { - const linkage_set = new Set(); - - torsions.map((torsion) => { - let linkage_string = "" - if (torsion.sugar_1 == "ASN") { - linkage_string = torsion.sugar_1 + "-" + torsion.atom_number_2 + "," + torsion.atom_number_1 + "-" + torsion.sugar_2 - } - else { - linkage_string = torsion.sugar_2 + "-" + torsion.atom_number_2 + "," + torsion.atom_number_1 + "-" + torsion.sugar_1 - } - linkage_set.add(linkage_string) - }) - - const linkage_array = Array.from(linkage_set) - - const sorted_linkage_array = {} - - linkage_array.map((item) => { - sorted_linkage_array[item] = [] - }) - - torsions.map((torsion) => { - let linkage_string = "" - if (torsion.sugar_1 == "ASN") { - linkage_string = torsion.sugar_1 + "-" + torsion.atom_number_2 + "," + torsion.atom_number_1 + "-" + torsion.sugar_2 - } - else { - linkage_string = torsion.sugar_2 + "-" + torsion.atom_number_2 + "," + torsion.atom_number_1 + "-" + torsion.sugar_1 - } - - sorted_linkage_array[linkage_string].push({"phi": torsion.phi, "psi": torsion.psi}) - }) - - return [linkage_array, sorted_linkage_array] -} - -function TorsionMultiPlotTabs({torsions, setTab}) { - - const [linkage_array, sorted_linkage_array] = sortTorsions(torsions) - - return ( - linkage_array.map((item, index) => { - return ( -
  • - -
  • - - ) - }) - ) -} - -export default function TorsionMultiPlot({torsions, tab, setTab}) { - - - const [linkage_array, sorted_linkage_array] = sortTorsions(torsions) - - useEffect(() => { - setTab(0) - }, []) - - return ( -
    -
    -
      - -
    -
    - - -
    - ) -} \ No newline at end of file diff --git a/webserver/src/components/TorsionPlot/TorsionPlot.tsx b/webserver/src/components/TorsionPlot/TorsionPlot.tsx deleted file mode 100644 index a8bb87d73..000000000 --- a/webserver/src/components/TorsionPlot/TorsionPlot.tsx +++ /dev/null @@ -1,107 +0,0 @@ -import { useEffect, useState, lazy } from 'react'; - -import { linkage_db, bin_db} from '../../data/Constants'; -const Plot = lazy(() => import('react-plotly.js')); - -export default function TorsionPlot({linkage_type, sorted_torsion_list}) { - - - const [trace, setTrace] = useState({}) - const [overlay, setOverlay] = useState({}) - const [linkageFound, setLinkageFound] = useState({}) - - useEffect(() => { - fetch(linkage_db[linkage_type]) - .then((response) => response.json()) - .then((responseJson) => { - let xData = [] - let yData = [] - - for (let i = 0; i < responseJson.length; i++) { - xData.push(parseFloat(responseJson[i].phi)) - yData.push(parseFloat(responseJson[i].psi)) - } - - setTrace({ - x: xData, - y: yData, - name: 'density', - ncontours: 100, - colorscale: 'Hot', - reversescale: true, - showscale: true, - type: 'histogram2d', - dragmode: false, - colorbar: { - title: "Frequency", - side: "bottom" - }, - xbins: { - start: -180, - end: 180, - size: 4 - }, - autobiny: false, - ybins: bin_db[linkage_type] - }) - setLinkageFound(true) - }) - .catch((error) => { - console.error(error); - console.log(linkage_type," is not in the DB most likely ") - setLinkageFound(false) - }); - - let overlay_phi = [] - let overlay_psi = [] - - for (let i = 0; i < sorted_torsion_list[linkage_type].length; i++) { - overlay_phi.push(sorted_torsion_list[linkage_type][i].phi) - overlay_psi.push(sorted_torsion_list[linkage_type][i].psi) - - } - - setOverlay({ - x: overlay_phi, - y: overlay_psi, - mode: 'markers', - type: 'scatter', - marker: { - size: 8, - color: 'blue', - symbol: ['x'] - }, - }) - - }, [linkage_type]) - - return ( - !linkageFound? ( -

    {linkage_type} does not have enough datapoints to generate a torsion plot.

    - ): - - ); - } - diff --git a/webserver/src/components/Upload/Upload.tsx b/webserver/src/components/Upload/Upload.tsx deleted file mode 100644 index 41a9f97d3..000000000 --- a/webserver/src/components/Upload/Upload.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import { useEffect, useState } from "react"; -import UploadButton from "./UploadButton" -import Submit from "../Submit/Submit"; -import PDBFetch from "../PDBFetch/PDBFetch"; -import {HeaderProps, UploadButtonProps} from "../../interfaces/types" - -export default function Upload(props: HeaderProps) { - const [showUploadAgain, setShowUploadAgain] = useState(true) - const [showSubmit, setShowSubmit] = useState(false) - const [allowSubmit, setAllowSubmit] = useState(false) - const [showPDBFetch, setShowPDBFetch] = useState(true) - - useEffect(() => { - setShowPDBFetch(true) - }, [props.resetApp]) - - useEffect(() => { - if (props.coordinateFile && props.reflectionFile) { - setShowSubmit(true) - setShowUploadAgain(false) - setAllowSubmit(true) - setShowPDBFetch(false) - } - - if (props.coordinateFile && !props.reflectionFile) { - setShowSubmit(true) - setShowUploadAgain(true) - setAllowSubmit(true) - setShowPDBFetch(false) - } - - if (!props.coordinateFile && props.reflectionFile) { - setShowSubmit(true) - setShowUploadAgain(true) - setAllowSubmit(false) - setShowPDBFetch(false) - } - - if (!props.coordinateFile && !props.reflectionFile) { - setShowSubmit(false) - setShowUploadAgain(true) - setAllowSubmit(false) - setShowPDBFetch(true) - } - }, [props.coordinateFile, props.reflectionFile]) - - const uploadButtonProps: UploadButtonProps = { - setCoordinateFile: props.setCoordinateFile, - setReflectionFile: props.setReflectionFile - } - - return ( -
    - { showUploadAgain === true ? : <>} - {showSubmit === true ? - : <>} - - {showPDBFetch === true ? -
    OR
    - : - <>} - {showPDBFetch === true ? - - : - <>} - -
    - ) -} \ No newline at end of file diff --git a/webserver/src/components/Upload/UploadButton.tsx b/webserver/src/components/Upload/UploadButton.tsx deleted file mode 100644 index 1db30598f..000000000 --- a/webserver/src/components/Upload/UploadButton.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import { useState } from "react"; -import { UploadButtonProps } from "../../interfaces/types"; -export default function UploadButton(props: UploadButtonProps) { - - const fileUpload = (e: any) => { - if (e.target.files) { - for (let i = 0; i < e.target.files.length; i++) { - let splitname = e.target.files[i].name.split(".") - let ext = splitname[splitname.length - 1] - - if (ext == "pdb" || ext == "cif" || ext == "mmcif") { - props.setCoordinateFile(e.target.files[i]) - } - else if (ext == "mtz") { - props.setReflectionFile(e.target.files[i]) - } - else { - console.error("Unknown File Type.") - } - } - } - } - - const [dragActivate, setDragActive] = useState(false) - - const handleDragOver = (e: any) => { - e.preventDefault(); - e.stopPropagation(); - setDragActive(true) - - }; - - const handleDrop = (e: any) => { - e.preventDefault(); - e.stopPropagation(); - if (e.dataTransfer.files[0]) { - props.setCoordinateFile(e.dataTransfer.files[0]) - } - setDragActive(false) - }; - - - return ( -
    - {!dragActivate ? - : - } -
    - ) -} \ No newline at end of file diff --git a/webserver/src/data/Constants.tsx b/webserver/src/data/Constants.tsx deleted file mode 100644 index 3447780df..000000000 --- a/webserver/src/data/Constants.tsx +++ /dev/null @@ -1,134 +0,0 @@ -export const GITHUB_REPO = "https://github.com/glycojones/privateer" -export const GENERAL_CITATION = "https://doi.org/10.1038/nsmb.3115" -export const TORSIONS_CITATION = "http://dx.doi.org/10.1107/S2059798323003510" -export const GLYCOMICS_CITATION = "https://doi.org/10.3762/bjoc.16.204" - -export const COLUMNS = [ - { - Header: 'Chain', - accessor: 'chain', - }, - { - Header: 'ID', - accessor: 'id', - }, - { - Header: 'SNFG', - accessor: 'svg', - Cell: tableProps => { - return - } - }, - { - Header: 'GlytoucanID', - accessor: 'glytoucan_id', - }, - // { - // Header: "Explore", - // Cell: tableProps => { - // return - // } - // } - // { - // Header: 'GlyConnect ID', - // accessor: 'glyconnect_id', - // }, - // { - // Header: 'WURCS', - // accessor: 'wurcs', - // }, - -]; - -export const DatabaseColumns = [ - { - Header: 'Chain', - accessor: 'chain', - }, - { - Header: 'SNFG', - accessor: 'SNFG', - Cell: tableProps => { - return ( - -
    - ) - } - }, - { - Header: "WURCS", - accessor: 'WURCS' - } -] - -export const SugarListColumns = [ - { - Header: "Sugar ID", - accessor: "Sugar ID" - }, - { - Header: "Q", - accessor: "Q" - }, - { - Header: "Phi", - accessor: "Phi", - }, - { - Header: "Theta", - accessor: "Theta" - }, - { - Header: "RSCC", - accessor: "RSCC" - }, - { - Header: "B Factor", - accessor: "BFactor" - }, - { - Header: "Detected Type", - accessor: "Detected Type" - }, - { - Header: "mFo", - accessor: "mFo" - }, - { - Header: "Type", - accessor: "type" - } -] - -export const linkage_db = { - "GAL-1,4-NAG" : 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/GAL-1,4-NAG.json', - "NAG-1,2-MAN" : 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/NAG-1,2-MAN.json', - "MAN-1,6-MAN" : 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/MAN-1,6-MAN.json', - "FUC-1,3-NAG" : 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/FUC-1,3-NAG.json', - "MAN-1,3-BMA" : 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/MAN-1,3-BMA.json', - "NAG-1,4-NAG" : 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/NAG-1,4-NAG.json', - "ASN-1,2-NAG" : 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/ASN-1,2-NAG.json', - "MAN-1,6-BMA" : 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/MAN-1,6-BMA.json', - "BMA-1,4-NAG" : 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/BMA-1,4-NAG.json', - "FUC-1,6-NAG" : 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/FUC-1,6-NAG.json', - "MAN-1,3-MAN" : 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/MAN-1,3-MAN.json', - "MAN-1,2-MAN" : 'https://raw.githubusercontent.com/Dialpuri/N-glycanTorsionDatabase/main/data_json/MAN-1,2-MAN.json', - } - -export const bin_db = { - "ASN-1,2-NAG" : {start: 0, end: 360,size: 4}, - "NAG-1,2-MAN" : {start: -180, end: 180, size: 4}, - "MAN-1,6-MAN" : {start: -180, end: 180, size: 4}, - "FUC-1,3-NAG" : {start: -180, end: 180, size: 4}, - "MAN-1,3-BMA" : {start: -180, end: 180, size: 4}, - "NAG-1,4-NAG" : {start: -180, end: 180, size: 4}, - "GAL-1,4-NAG" : {start: -180, end: 180, size: 4}, - "MAN-1,6-BMA" : {start: -180, end: 180, size: 4}, - "BMA-1,4-NAG" : {start: -180, end: 180, size: 4}, - "FUC-1,6-NAG" : {start: -180, end: 180, size: 4}, - "MAN-1,3-MAN" : {start: -180, end: 180, size: 4}, - "MAN-1,2-MAN" : {start: -180, end: 180, size: 4}, - } diff --git a/webserver/src/interfaces/types.ts b/webserver/src/interfaces/types.ts deleted file mode 100644 index 74aaddb0f..000000000 --- a/webserver/src/interfaces/types.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { Dispatch, SetStateAction } from "react"; - -export interface TorsionEntry { - sugar_1: string, - sugar_2: string, - atom_number_1: string - atom_number_2: string, - phi: number, - psi: number -} - -export interface TableDataEntry { - svg: string, - wurcs: string, - chain: string, - glyconnect_id: string, - glytoucan_id: string, - id: string, - torsion_err: number, - conformation_err: number, - anomer_err: number, - puckering_err: number, - chirality_err: number, - torsions: Array -} - -export interface HeaderProps { - resetApp: boolean, - setResetApp: Dispatch>, - PDBCode: string, - setPDBCode: Dispatch>, - coordinateFile: File | null, - setCoordinateFile: Dispatch>, - reflectionFile: File | null, - setReflectionFile: Dispatch>, - submit: boolean, - setSubmit: Dispatch>, - tableData: Array | null, - loadingText: string, - fileContent: string | ArrayBuffer, - fallback: boolean, - mtzData: Uint8Array | null, - failureText: string -} - -export interface DatabaseHeaderProps { - resetApp: boolean, - setResetApp: Dispatch>, - PDBCode: string, - setPDBCode: Dispatch>, - submit: boolean, - setSubmit: Dispatch>, - loadingText: string, - fallback: boolean, - failureText: string, - results: any, -} - -export interface DatabaseResultProps { - results: any - PDBCode: string -} - - -export interface SNFGProps extends HeaderProps { - filename: string -} - -export interface UploadButtonProps { - setCoordinateFile: Dispatch>, - setReflectionFile: Dispatch> -} - -export interface GlycanDetailProps { - tableData: Array, - hideMoorhen: boolean, - setHideMoorhen: Dispatch>, - rowID: number, - forwardControls: any, - scrollPosition: number, - controls: any, - molecule: any, - map: any -} - -export interface NoGlycansProps { - setResetApp: Dispatch>, - text: string -} - -export interface SVGTableProps { - tableData: Array, - allowRowClick: boolean, - rowClick: boolean, - setRowClicked: Dispatch>, - setRowID: Dispatch> -} - diff --git a/webserver/src/layouts/BorderElement.tsx b/webserver/src/layouts/BorderElement.tsx deleted file mode 100644 index 47b85a9af..000000000 --- a/webserver/src/layouts/BorderElement.tsx +++ /dev/null @@ -1,15 +0,0 @@ -export default function BorderElement({topColor, bottomColor, reverse}) { - - const divStyle = { - height: "90px", - backgroundImage: `linear-gradient(to bottom right, ${topColor}, ${topColor} 50%, ${bottomColor} 50%, ${bottomColor})` - }; - - if (reverse) { - divStyle['backgroundImage'] = `linear-gradient(to top right, ${bottomColor}, ${bottomColor} 50%, ${topColor} 50%, ${topColor})` - } - - return ( -
    - ) -} \ No newline at end of file diff --git a/webserver/src/layouts/DatabaseHeader.tsx b/webserver/src/layouts/DatabaseHeader.tsx deleted file mode 100644 index 9eb7812f1..000000000 --- a/webserver/src/layouts/DatabaseHeader.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { lazy, Suspense } from 'react' - -const Upload = lazy(() => import('../components/Upload/Upload.tsx')); -const Loading = lazy(() => import('../components/Loading/Loading.tsx')); -const NavBar = lazy(() => import('./NavBar.tsx')); -const NoGlycans = lazy(() => import("../components/NoGlycans/NoGlycans.tsx")) -const DatabaseFetch = lazy(() => import("../components/DatabaseFetch/DatabaseFetch.jsx")) -const DatabaseResult = lazy(() => import("../components/DatabaseResult/DatabaseResult.jsx")) - -import {DatabaseHeaderProps} from "../interfaces/types" - -export function DatabaseHeader(props: DatabaseHeaderProps) { - - return ( -
    - -
    - {props.fallback !== true ? - }> - {!props.results ? - - : - } - - : - }
    -
    ); -} diff --git a/webserver/src/layouts/Footer.tsx b/webserver/src/layouts/Footer.tsx deleted file mode 100644 index 24da36a32..000000000 --- a/webserver/src/layouts/Footer.tsx +++ /dev/null @@ -1,28 +0,0 @@ -export default function Footer() { - - - return ( -
    -
    - - - Jordan Dialpuri, Haroldas Bagdonas and Jon Agirre -
    - © 2023 University of York. All Rights Reserved. -
    - Disclaimer -
    - - - - - - -
    - -
    - -
    -
    - ) -} \ No newline at end of file diff --git a/webserver/src/layouts/Header.tsx b/webserver/src/layouts/Header.tsx deleted file mode 100644 index bbb6f02c7..000000000 --- a/webserver/src/layouts/Header.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { lazy, Suspense } from 'react' - -import SNFG from '../components/PrivateerDisplay/SNFG.tsx' - -const Upload = lazy(() => import('../components/Upload/Upload.tsx')); -const Loading = lazy(() => import('../components/Loading/Loading.tsx')); -const NavBar = lazy(() => import('./NavBar.tsx')); -const NoGlycans = lazy(() => import("../components/NoGlycans/NoGlycans.tsx")) - -import {HeaderProps} from "../interfaces/types" - -export function Header(props: HeaderProps) { - - let filename = "" - if (props.PDBCode != "") { - filename = props.PDBCode - } - else if (props.coordinateFile) { - filename = props.coordinateFile.name - } - - return ( -
    - -
    - {props.fallback !== true ? - }> - {props.submit === false ? - - : props.tableData === null ? - : - } - - : - }
    -
    ); -} diff --git a/webserver/src/layouts/NavBar.tsx b/webserver/src/layouts/NavBar.tsx deleted file mode 100644 index 742ed79d8..000000000 --- a/webserver/src/layouts/NavBar.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import { Dispatch, SetStateAction } from "react" -import { GENERAL_CITATION, GITHUB_REPO } from "../data/Constants.tsx" - -export default function NavBar({ setResetApp }: { setResetApp: Dispatch> }) { - - return ( -
    -
    - Validate your carbohydrates online with - - The Swiss Army knife for carbohydrate structure validation, refinement and analysis -
    - -
    - - - - -
    -
    - ) -} diff --git a/webserver/src/main.tsx b/webserver/src/main.tsx deleted file mode 100644 index 4d61a3701..000000000 --- a/webserver/src/main.tsx +++ /dev/null @@ -1,14 +0,0 @@ -// import React from 'react' -import ReactDOM from 'react-dom/client' -import App from './App' -import './index.css' -import { BrowserRouter } from 'react-router-dom' - -ReactDOM.createRoot(document.getElementById('root')).render( - // - - - - - // , -) diff --git a/webserver/src/pages/DatabaseSection/DatabaseSection.tsx b/webserver/src/pages/DatabaseSection/DatabaseSection.tsx deleted file mode 100644 index 5c360f8b5..000000000 --- a/webserver/src/pages/DatabaseSection/DatabaseSection.tsx +++ /dev/null @@ -1,96 +0,0 @@ -import { lazy, useEffect, useState } from "react"; -import { Information } from '../../components/Information/Information.tsx'; - -const Footer = lazy(() => import('../../layouts/Footer.tsx')); -const BorderElement = lazy(() => import('../../layouts/BorderElement.tsx')); - -import { DatabaseHeaderProps } from "../../interfaces/types" -import { DatabaseHeader } from "../../layouts/DatabaseHeader.tsx"; - -import pako from "pako" - -export default function DatabaseSection(props) { - - const [PDBCode, setPDBCode] = useState("") - const [submit, setSubmit] = useState(false); - const [loadingText, setLoadingText] = useState("Validating Glycans..."); - const [resetApp, setResetApp] = useState(false) - const [fallback, setFallBack] = useState(false) - const [failureText, setFailureText] = useState("") - const [results, setResults] = useState("") - const [failure, setFailure] = useState(false) - - function handle_database_lookup(PDBCode) { - let pdb_code = PDBCode.toLowerCase() - let middlefix = pdb_code.substring(1, 3) - - let url = `https://raw.githubusercontent.com/Dialpuri/PrivateerDatabase/master/${middlefix}/${pdb_code}.json.gz` - - try { - fetch(url, { - method: "GET" - }).then(response => { - let buffer = response.arrayBuffer() - buffer.then((bytes) => { - var decompressedData = pako.inflate(bytes, { to: 'string' }); - var jsonString = decompressedData.toString('utf-8'); - var jsonObject = JSON.parse(jsonString); - setResults(jsonObject) - }).catch(e => { - setFallBack(true) - setFailureText("Cannot be found in database") - }) - }).catch(e => { - console.log(e) - }) - } catch { - console.log("not in db") - } - } - - useEffect(() => { - if (PDBCode != "") { - setLoadingText(`Fetching ${PDBCode.toUpperCase()} from the database`) - handle_database_lookup(PDBCode) - } - }, [submit]) - - useEffect(() => { - console.log(props, props.query.get("pdb")) - if (props.query.get("pdb") != null) { - handle_database_lookup(props.query.get("pdb")) - } - }, []) - - - useEffect(() => { - setSubmit(false) - setFallBack(false) - setResetApp(false) - setPDBCode("") - setResults("") - }, [resetApp]) - - const main_props: DatabaseHeaderProps = { - resetApp: resetApp, - setResetApp: setResetApp, - PDBCode: PDBCode, - setPDBCode: setPDBCode, - submit: submit, - setSubmit: setSubmit, - loadingText: loadingText, - fallback: fallback, - failureText: failureText, - results: results, - } - - return ( - <> - - - - -
    - - ) -} \ No newline at end of file diff --git a/webserver/src/pages/Home/HomeSection.tsx b/webserver/src/pages/Home/HomeSection.tsx deleted file mode 100644 index 10e914f32..000000000 --- a/webserver/src/pages/Home/HomeSection.tsx +++ /dev/null @@ -1,164 +0,0 @@ -import { lazy, useEffect, useState } from "react"; - -import { Header } from '../../layouts/Header'; -import { Information } from '../../components/Information/Information.tsx'; - -// @ts-ignore -import privateer_module from "../../wasm/privateer.js" -import loadGlytoucan from "../../utils/loadGlytoucan.ts" - -const Footer = lazy(() => import('../../layouts/Footer.tsx')); -const BorderElement = lazy(() => import('../../layouts/BorderElement.tsx')); - -import { fetch_map, fetch_pdb } from "../../utils/fetch_from_pdb.ts" - -import {TableDataEntry, HeaderProps} from "../../interfaces/types" - - -export default function HomeSection() { - const [coordinateFile, setCoordinateFile] = useState(null); - const [reflectionFile, setReflectionFile] = useState(null); - const [PDBCode, setPDBCode] = useState("") - const [fileContent, setFileContent] = useState("") - const [mtzData, setMtzData] = useState(null) - const [submit, setSubmit] = useState(false); - const [tableData, setTableData] = useState | null>(null); - const [loadingText, setLoadingText] = useState("Validating Glycans..."); - const [resetApp, setResetApp] = useState(false) - const [fallback, setFallBack] = useState(false) - const [failureText, setFailureText] = useState("") - - let sanitize_id = (id: string) => { - const regex = /: *32/g; - const new_id = id.replace(regex, "") - return new_id - } - - async function run_privateer(Module: any, fileContent: string | ArrayBuffer, name: string) { - - setFileContent(fileContent) - - let x = Module.read_structure_to_table(fileContent, name) - - let table_data = []; - for (var i = 0; i < x.size(); i++) { - let table_entry = x.get(i) - - table_entry.id = sanitize_id(table_entry.id) - - let collected_torsions = [] - for (var j = 0; j < table_entry.torsions.size(); j++) { - collected_torsions.push(table_entry.torsions.get(j)); - } - table_entry.torsions = collected_torsions - const regex = /: *32/g; - table_entry.svg = table_entry.svg.replace(regex, "") - table_data.push(table_entry) - - } - - if (x.size() == 0 ) { - setFailureText("There were no detected glycans in this model.") - setFallBack(true) - } - - // Get Glyconnect ID from WURCS - setLoadingText("Querying Glytoucan...") - await loadGlytoucan(table_data) - - - setTableData(table_data); - } - - useEffect(() => { - if (PDBCode != "") { - setLoadingText(`Fetching ${PDBCode.toUpperCase()} from the PDB`) - - fetch_map(PDBCode).then((response: ArrayBuffer) => { - let array = new Uint8Array(response) - setMtzData(array) - }).catch((e: any) => { - setLoadingText("MTZ not found, continuing...") - }) - - fetch_pdb(PDBCode).then((response: ArrayBuffer) => { - setFileContent(response) - setLoadingText("Validating Glycans...") - - privateer_module().then((Module: any) => run_privateer(Module, response, PDBCode)) - - }).catch((e: any) => { - setFailureText("This PDB code could not be found") - setLoadingText("There were no detected glycans in this file.") - setFallBack(true) - }) - - } else { - privateer_module().then((Module: { [x: string]: (arg0: string, arg1: string, arg2: Uint8Array, arg3: boolean, arg4: boolean, arg5: boolean) => void; }) => { - - - var coordinateReader = new FileReader(); - var reflectionReader = new FileReader(); - - coordinateReader.onload = () => { run_privateer(Module, coordinateReader.result, coordinateFile!.name) } - - if (coordinateFile) { - coordinateReader.readAsText(coordinateFile); - } - - reflectionReader.onload = async () => { - let map_data = new Uint8Array(reflectionReader.result); - setMtzData(map_data) - - Module['FS_createDataFile']('/', "input.mtz", map_data, true, true, true) - } - - if (reflectionFile) { - reflectionReader.readAsArrayBuffer(reflectionFile) - } - - }).catch((e: any) => console.log(e)); - } - - - }, [submit]) - - useEffect(() => { - setReflectionFile(null) - setCoordinateFile(null) - setSubmit(false) - setTableData(null) - setFallBack(false) - setResetApp(false) - setPDBCode("") - }, [resetApp]) - - const main_props: HeaderProps = { - resetApp: resetApp, - setResetApp: setResetApp, - PDBCode: PDBCode, - setPDBCode: setPDBCode, - coordinateFile: coordinateFile, - setCoordinateFile: setCoordinateFile, - reflectionFile: reflectionFile, - setReflectionFile: setReflectionFile, - submit: submit, - setSubmit: setSubmit, - tableData: tableData, - loadingText: loadingText, - fileContent: fileContent, - fallback: fallback, - mtzData: mtzData, - failureText: failureText - } - - return ( - <> -
    - - - -
    - - ) -} \ No newline at end of file diff --git a/webserver/src/reportWebVitals.js b/webserver/src/reportWebVitals.js deleted file mode 100644 index 14ba227b3..000000000 --- a/webserver/src/reportWebVitals.js +++ /dev/null @@ -1,13 +0,0 @@ -const reportWebVitals = onPerfEntry => { - if (onPerfEntry && onPerfEntry instanceof Function) { - import('web-vitals').then(({getCLS, getFID, getFCP, getLCP, getTTFB}) => { - getCLS(onPerfEntry); - getFID(onPerfEntry); - getFCP(onPerfEntry); - getLCP(onPerfEntry); - getTTFB(onPerfEntry); - }); - } -}; - -export default reportWebVitals; diff --git a/webserver/src/utils/fetch_from_pdb.ts b/webserver/src/utils/fetch_from_pdb.ts deleted file mode 100644 index 24e4c3043..000000000 --- a/webserver/src/utils/fetch_from_pdb.ts +++ /dev/null @@ -1,42 +0,0 @@ - -export async function fetch_pdb(PDBCode: string) { - if (PDBCode == null) {return} - console.log("Fetching PDB ", PDBCode) - let pdb_url = `https://files.rcsb.org/download/${PDBCode.toUpperCase()}.pdb` - - let file = fetch(pdb_url) - .then(response => { - if (!response.ok) { - throw new Error('Network error'); - } - return response.text() - }) - .then(file => { - return Promise.resolve(file) - }) - .catch((e) => { - throw new Error("PDB Not Found") - }) - return file -} - -export async function fetch_map(PDBCode: string) { - if (PDBCode == null) {return} - console.log("Fetching MTZ ", PDBCode) - let mtz_url = `https://www.ebi.ac.uk/pdbe/entry-files/${PDBCode.toLowerCase()}.ccp4` - - let file = fetch(mtz_url) - .then(response => { - if (!response.ok) { - throw new Error('Network error'); - } - return response.arrayBuffer() - }) - .then(file => { - return Promise.resolve(file) - }) - .catch((e) => { - throw new Error("Map Not Found") - }) - return file -} diff --git a/webserver/src/utils/loadGlyconnect.js b/webserver/src/utils/loadGlyconnect.js deleted file mode 100644 index 62a96c1ce..000000000 --- a/webserver/src/utils/loadGlyconnect.js +++ /dev/null @@ -1,44 +0,0 @@ -async function get_glyconnect_id(glytoucan_id) { - let url = "https://glyconnect.expasy.org/api/structures/search/glytoucan" - - console.log(JSON.stringify({"glytoucan_id": glytoucan_id})) - - fetch(url, { - method: "POST", - body: JSON.stringify({"glytoucan_id": glytoucan_id}), - headers: { - "Content-type": "application/json; charset=UTF-8" - } - }).then((response) => { - const contentType = response.headers.get("content-type") - if (contentType && contentType.indexOf("application/json") !== -1) { - return response.json() - } else if (response.status == 404) { - return Promise.reject("404 Error") - } - }).catch((error) => { - return Promise.reject(error) - // console.log(error) - }) -} - -export default async function load_glyconnect(table_data) { - - let promises = []; - - for (var i = 0; i < table_data.length; i++) { - let item = table_data[i] - promises.push(get_glyconnect_id(item.glytoucan_id)) - } - - try { - const data = await Promise.all(promises) - } catch { - - } - data.forEach((data, index) => { - // console.log(data) - // table_data[index].glytoucan_id = data[0].id; - }) - return table_data; -} diff --git a/webserver/src/utils/loadGlytoucan.ts b/webserver/src/utils/loadGlytoucan.ts deleted file mode 100644 index 02be677d5..000000000 --- a/webserver/src/utils/loadGlytoucan.ts +++ /dev/null @@ -1,30 +0,0 @@ -import {TableDataEntry} from "../interfaces/types" - - -async function get_glytoucan_id(wurcs: string) { - let url = "https://api.glycosmos.org/sparqlist/wurcs2gtcids?wurcs=" + encodeURIComponent(wurcs) - - return fetch(url, { - method: "GET" // default, so we can ignore - }) - .then((response) => response.json()) - .catch((error) => console.log(error)) -} - -export default async function load_glytoucan(table_data: Array) { - - let promises = []; - - for (var i = 0; i < table_data.length; i++) { - let item = table_data[i] - // const id = get_glyconnect_id(item.wurcs) - promises.push(get_glytoucan_id(item.wurcs)) - } - - const data = await Promise.all(promises) - - data.forEach((data, index) => { - table_data[index].glytoucan_id = data[0].id; - }) - return table_data; -} \ No newline at end of file diff --git a/webserver/src/wasm/privateer.js b/webserver/src/wasm/privateer.js deleted file mode 100644 index 1e074ea4d..000000000 --- a/webserver/src/wasm/privateer.js +++ /dev/null @@ -1,16 +0,0 @@ - -var privateer_module = (() => { - var _scriptDir = import.meta.url; - - return ( -async function(moduleArg = {}) { - -var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});["_main","getExceptionMessage","___get_exception_message","_free","___cpp_exception","___cxa_increment_exception_refcount","___cxa_decrement_exception_refcount","___thrown_object_from_unwind_exception","_memory","___indirect_function_table","_fflush","___set_stack_limits","onRuntimeInitialized"].forEach(prop=>{if(!Object.getOwnPropertyDescriptor(Module["ready"],prop)){Object.defineProperty(Module["ready"],prop,{get:()=>abort("You are getting "+prop+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js"),set:()=>abort("You are setting "+prop+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")})}});if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){if(Module["ENVIRONMENT_IS_PTHREAD"]||Module["$ww"])return;var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="privateer.data";var REMOTE_PACKAGE_BASE="privateer.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"](`Downloading data... (${loaded}/${total})`)}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","unprocessed_files",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"](`fp ${this.name}`)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"](`fp ${that.name}`);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(Module["ENVIRONMENT"]){throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)")}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_NODE){if(typeof process=="undefined"||!process.release||process.release.name!=="node")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");var nodeVersion=process.versions.node;var numericVersion=nodeVersion.split(".").slice(0,3);numericVersion=numericVersion[0]*1e4+numericVersion[1]*100+numericVersion[2].split("-")[0]*1;if(numericVersion<16e4){throw new Error("This emscripten-generated code requires node v16.0.0 (detected v"+nodeVersion+")")}const{createRequire:createRequire}=await import("module");var require=createRequire(import.meta.url);var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=require("url").fileURLToPath(new URL("./",import.meta.url))}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=(filename,onload,onerror,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)onerror(err);else onload(binary?data.buffer:data)})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow};Module["inspect"]=()=>"[Emscripten Module object]"}else if(ENVIRONMENT_IS_SHELL){if(typeof process=="object"&&typeof require==="function"||typeof window=="object"||typeof importScripts=="function")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");if(typeof read!="undefined"){read_=read}readBinary=f=>{if(typeof readbuffer=="function"){return new Uint8Array(readbuffer(f))}let data=read(f,"binary");assert(typeof data=="object");return data};readAsync=(f,onload,onerror)=>{setTimeout(()=>onload(readBinary(f)))};if(typeof clearTimeout=="undefined"){globalThis.clearTimeout=id=>{}}if(typeof setTimeout=="undefined"){globalThis.setTimeout=f=>typeof f=="function"?f():abort()}if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit=="function"){quit_=(status,toThrow)=>{setTimeout(()=>{if(!(toThrow instanceof ExitStatus)){let toLog=toThrow;if(toThrow&&typeof toThrow=="object"&&toThrow.stack){toLog=[toThrow,toThrow.stack]}err(`exiting due to exception: ${toLog}`)}quit(status)});throw toThrow}}if(typeof print!="undefined"){if(typeof console=="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}if(!(typeof window=="object"||typeof importScripts=="function"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}}else{throw new Error("environment detection error")}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;checkIncomingModuleAPI();if(Module["arguments"])arguments_=Module["arguments"];legacyModuleProp("arguments","arguments_");if(Module["thisProgram"])thisProgram=Module["thisProgram"];legacyModuleProp("thisProgram","thisProgram");if(Module["quit"])quit_=Module["quit"];legacyModuleProp("quit","quit_");assert(typeof Module["memoryInitializerPrefixURL"]=="undefined","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["pthreadMainPrefixURL"]=="undefined","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["cdInitializerPrefixURL"]=="undefined","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["filePackagePrefixURL"]=="undefined","Module.filePackagePrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["read"]=="undefined","Module.read option was removed (modify read_ in JS)");assert(typeof Module["readAsync"]=="undefined","Module.readAsync option was removed (modify readAsync in JS)");assert(typeof Module["readBinary"]=="undefined","Module.readBinary option was removed (modify readBinary in JS)");assert(typeof Module["setWindowTitle"]=="undefined","Module.setWindowTitle option was removed (modify emscripten_set_window_title in JS)");assert(typeof Module["TOTAL_MEMORY"]=="undefined","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY");legacyModuleProp("asm","wasmExports");legacyModuleProp("read","read_");legacyModuleProp("readAsync","readAsync");legacyModuleProp("readBinary","readBinary");legacyModuleProp("setWindowTitle","setWindowTitle");assert(!ENVIRONMENT_IS_SHELL,"shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable.");var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];legacyModuleProp("wasmBinary","wasmBinary");if(typeof WebAssembly!="object"){abort("no native wasm support detected")}function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE!="undefined"&&ENVIRONMENT_IS_NODE){var buf=Buffer.from(s,"base64");return new Uint8Array(buf.buffer,buf.byteOffset,buf.length)}var decoded=atob(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i>2]=34821223;checkInt32(34821223);HEAPU32[max+4>>2]=2310721022;checkInt32(2310721022);HEAPU32[0>>2]=1668509029;checkInt32(1668509029)}function checkStackCookie(){if(ABORT)return;var max=_emscripten_stack_get_end();if(max==0){max+=4}var cookie1=HEAPU32[max>>2];var cookie2=HEAPU32[max+4>>2];if(cookie1!=34821223||cookie2!=2310721022){abort(`Stack overflow! Stack cookie has been overwritten at ${ptrToString(max)}, expected hex dwords 0x89BACDFE and 0x2135467, but received ${ptrToString(cookie2)} ${ptrToString(cookie1)}`)}if(HEAPU32[0>>2]!=1668509029){abort("Runtime error: The application has corrupted its heap memory area (address zero)!")}}(function(){var h16=new Int16Array(1);var h8=new Int8Array(h16.buffer);h16[0]=25459;if(h8[0]!==115||h8[1]!==99)throw"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)"})();var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){assert(!runtimeInitialized);runtimeInitialized=true;checkStackCookie();setStackLimits();if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){checkStackCookie();if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}assert(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;var runDependencyTracking={};function getUniqueRunDependency(id){var orig=id;while(1){if(!runDependencyTracking[id])return id;id=orig+Math.random()}}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(!runDependencyTracking[id]);runDependencyTracking[id]=1;if(runDependencyWatcher===null&&typeof setInterval!="undefined"){runDependencyWatcher=setInterval(()=>{if(ABORT){clearInterval(runDependencyWatcher);runDependencyWatcher=null;return}var shown=false;for(var dep in runDependencyTracking){if(!shown){shown=true;err("still waiting on run dependencies:")}err(`dependency: ${dep}`)}if(shown){err("(end of list)")}},1e4)}}else{err("warning: run dependency added without ID")}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(runDependencyTracking[id]);delete runDependencyTracking[id]}else{err("warning: run dependency removed without ID")}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;if(runtimeInitialized){___trap()}var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");function createExportWrapper(name){return function(){assert(runtimeInitialized,`native function \`${name}\` called before runtime initialization`);var f=wasmExports[name];assert(f,`exported native function \`${name}\` not found`);return f.apply(null,arguments)}}var wasmBinaryFile;if(Module["locateFile"]){wasmBinaryFile="privateer.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}}else{wasmBinaryFile=new URL("privateer.wasm",import.meta.url).href}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(binaryFile)){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{if(!response["ok"]){throw"failed to load wasm binary file at '"+binaryFile+"'"}return response["arrayBuffer"]()}).catch(()=>getBinarySync(binaryFile))}else if(readAsync){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),reject)})}}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(instance=>instance).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);if(isFileURI(wasmBinaryFile)){err(`warning: Loading from a file URI (${wasmBinaryFile}) is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing`)}abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function createWasm(){var info={"env":wasmImports,"wasi_snapshot_preview1":wasmImports};function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["memory"];assert(wasmMemory,"memory not found in wasm exports");updateMemoryViews();wasmTable=wasmExports["__indirect_function_table"];assert(wasmTable,"table not found in wasm exports");addOnInit(wasmExports["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");var trueModule=Module;function receiveInstantiationResult(result){assert(Module===trueModule,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?");trueModule=null;receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function legacyModuleProp(prop,newName,incomming=true){if(!Object.getOwnPropertyDescriptor(Module,prop)){Object.defineProperty(Module,prop,{configurable:true,get(){let extra=incomming?" (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)":"";abort(`\`Module.${prop}\` has been replaced by \`${newName}\``+extra)}})}}function ignoredModuleProp(prop){if(Object.getOwnPropertyDescriptor(Module,prop)){abort(`\`Module.${prop}\` was supplied but \`${prop}\` not included in INCOMING_MODULE_JS_API`)}}function isExportedByForceFilesystem(name){return name==="FS_createPath"||name==="FS_createDataFile"||name==="FS_createPreloadedFile"||name==="FS_unlink"||name==="addRunDependency"||name==="FS_createLazyFile"||name==="FS_createDevice"||name==="removeRunDependency"}function missingGlobal(sym,msg){if(typeof globalThis!=="undefined"){Object.defineProperty(globalThis,sym,{configurable:true,get(){warnOnce(`\`${sym}\` is not longer defined by emscripten. ${msg}`);return undefined}})}}missingGlobal("buffer","Please use HEAP8.buffer or wasmMemory.buffer");missingGlobal("asm","Please use wasmExports instead");function missingLibrarySymbol(sym){if(typeof globalThis!=="undefined"&&!Object.getOwnPropertyDescriptor(globalThis,sym)){Object.defineProperty(globalThis,sym,{configurable:true,get(){var msg=`\`${sym}\` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line`;var librarySymbol=sym;if(!librarySymbol.startsWith("_")){librarySymbol="$"+sym}msg+=` (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE='${librarySymbol}')`;if(isExportedByForceFilesystem(sym)){msg+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"}warnOnce(msg);return undefined}})}unexportedRuntimeSymbol(sym)}function unexportedRuntimeSymbol(sym){if(!Object.getOwnPropertyDescriptor(Module,sym)){Object.defineProperty(Module,sym,{configurable:true,get(){var msg=`'${sym}' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the Emscripten FAQ)`;if(isExportedByForceFilesystem(sym)){msg+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"}abort(msg)}})}}var MAX_UINT8=2**8-1;var MAX_UINT16=2**16-1;var MAX_UINT32=2**32-1;var MAX_UINT53=2**53-1;var MAX_UINT64=2**64-1;var MIN_INT8=-(2**(8-1))+1;var MIN_INT16=-(2**(16-1))+1;var MIN_INT32=-(2**(32-1))+1;var MIN_INT53=-(2**(53-1))+1;var MIN_INT64=-(2**(64-1))+1;function checkInt(value,bits,min,max){assert(Number.isInteger(Number(value)),`attempt to write non-integer (${value}) into integer heap`);assert(value<=max,`value (${value}) too large to write as ${bits}-bit value`);assert(value>=min,`value (${value}) too small to write as ${bits}-bit value`)}var checkInt8=value=>checkInt(value,8,MIN_INT8,MAX_UINT8);var checkInt16=value=>checkInt(value,16,MIN_INT16,MAX_UINT16);var checkInt32=value=>checkInt(value,32,MIN_INT32,MAX_UINT32);var checkInt64=value=>checkInt(value,64,MIN_INT64,MAX_UINT64);function dbg(text){console.warn.apply(console,arguments)}function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var getCppExceptionTag=()=>wasmExports["__cpp_exception"];var getCppExceptionThrownObjectFromWebAssemblyException=ex=>{var unwind_header=ex.getArg(getCppExceptionTag(),0);return ___thrown_object_from_unwind_exception(unwind_header)};var withStackSave=f=>{var stack=stackSave();var ret=f();stackRestore(stack);return ret};var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{assert(typeof str==="string",`stringToUTF8Array expects a string (got ${typeof str})`);if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;if(u>1114111)warnOnce("Invalid Unicode code point "+ptrToString(u)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF).");heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>{assert(typeof maxBytesToWrite=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!");return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)};var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;var UTF8ArrayToString=(heapOrArray,idx,maxBytesToRead)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>{assert(typeof ptr=="number",`UTF8ToString expects a number (got ${typeof ptr})`);return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""};var demangle=func=>{demangle.recursionGuard=(demangle.recursionGuard|0)+1;if(demangle.recursionGuard>1)return func;return withStackSave(()=>{try{var s=func;if(s.startsWith("__Z"))s=s.substr(1);var buf=stringToUTF8OnStack(s);var status=stackAlloc(4);var ret=___cxa_demangle(buf,0,0,status);if(HEAP32[status>>2]===0&&ret){return UTF8ToString(ret)}}catch(e){}finally{_free(ret);if(demangle.recursionGuard<2)--demangle.recursionGuard}return func})};var getExceptionMessageCommon=ptr=>withStackSave(()=>{var type_addr_addr=stackAlloc(4);var message_addr_addr=stackAlloc(4);___get_exception_message(ptr,type_addr_addr,message_addr_addr);var type_addr=HEAPU32[type_addr_addr>>2];var message_addr=HEAPU32[message_addr_addr>>2];var type=UTF8ToString(type_addr);_free(type_addr);var message;if(message_addr){message=UTF8ToString(message_addr);_free(message_addr)}return[type,message]});var getExceptionMessage=ex=>{var ptr=getCppExceptionThrownObjectFromWebAssemblyException(ex);return getExceptionMessageCommon(ptr)};Module["getExceptionMessage"]=getExceptionMessage;var noExitRuntime=Module["noExitRuntime"]||true;var ptrToString=ptr=>{assert(typeof ptr==="number");ptr>>>=0;return"0x"+ptr.toString(16).padStart(8,"0")};var setStackLimits=()=>{var stackLow=_emscripten_stack_get_base();var stackHigh=_emscripten_stack_get_end();___set_stack_limits(stackLow,stackHigh)};function jsStackTrace(){var error=new Error;if(!error.stack){try{throw new Error}catch(e){error=e}if(!error.stack){return"(no stack trace available)"}}return error.stack.toString()}var demangleAll=text=>{var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})};var warnOnce=text=>{if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}};var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};var ___handle_stack_overflow=requested=>{var base=_emscripten_stack_get_base();var end=_emscripten_stack_get_end();abort(`stack overflow (Attempt to set SP to ${ptrToString(requested)}`+`, with stack limits [${ptrToString(end)} - ${ptrToString(base)}`+"]). If you require more stack space build with -sSTACK_SIZE=")};var setErrNo=value=>{HEAP32[___errno_location()>>2]=value;checkInt32(value);return value};var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments);return PATH.normalize(paths.join("/"))},join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");var randomFillSync=crypto_module["randomFillSync"];if(randomFillSync){return view=>crypto_module["randomFillSync"](view)}var randomBytes=crypto_module["randomBytes"];return view=>(view.set(randomBytes(view.byteLength)),view)}catch(e){}}abort("no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: (array) => { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };")};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var zeroMemory=(address,size)=>{HEAPU8.fill(0,address,address+size);return address};var alignMemory=(size,alignment)=>{assert(alignment,"alignment argument is required");return Math.ceil(size/alignment)*alignment};var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;return zeroMemory(ptr,size)};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw FS.genericErrors[44]},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url,arrayBuffer=>{assert(arrayBuffer,`Loading data file "${url}" failed (no arrayBuffer).`);onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module["preloadPlugins"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={"r":0,"r+":2,"w":512|64|1,"w+":512|64|2,"a":1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var ERRNO_CODES={"EPERM":63,"ENOENT":44,"ESRCH":71,"EINTR":27,"EIO":29,"ENXIO":60,"E2BIG":1,"ENOEXEC":45,"EBADF":8,"ECHILD":12,"EAGAIN":6,"EWOULDBLOCK":6,"ENOMEM":48,"EACCES":2,"EFAULT":21,"ENOTBLK":105,"EBUSY":10,"EEXIST":20,"EXDEV":75,"ENODEV":43,"ENOTDIR":54,"EISDIR":31,"EINVAL":28,"ENFILE":41,"EMFILE":33,"ENOTTY":59,"ETXTBSY":74,"EFBIG":22,"ENOSPC":51,"ESPIPE":70,"EROFS":69,"EMLINK":34,"EPIPE":64,"EDOM":18,"ERANGE":68,"ENOMSG":49,"EIDRM":24,"ECHRNG":106,"EL2NSYNC":156,"EL3HLT":107,"EL3RST":108,"ELNRNG":109,"EUNATCH":110,"ENOCSI":111,"EL2HLT":112,"EDEADLK":16,"ENOLCK":46,"EBADE":113,"EBADR":114,"EXFULL":115,"ENOANO":104,"EBADRQC":103,"EBADSLT":102,"EDEADLOCK":16,"EBFONT":101,"ENOSTR":100,"ENODATA":116,"ETIME":117,"ENOSR":118,"ENONET":119,"ENOPKG":120,"EREMOTE":121,"ENOLINK":47,"EADV":122,"ESRMNT":123,"ECOMM":124,"EPROTO":65,"EMULTIHOP":36,"EDOTDOT":125,"EBADMSG":9,"ENOTUNIQ":126,"EBADFD":127,"EREMCHG":128,"ELIBACC":129,"ELIBBAD":130,"ELIBSCN":131,"ELIBMAX":132,"ELIBEXEC":133,"ENOSYS":52,"ENOTEMPTY":55,"ENAMETOOLONG":37,"ELOOP":32,"EOPNOTSUPP":138,"EPFNOSUPPORT":139,"ECONNRESET":15,"ENOBUFS":42,"EAFNOSUPPORT":5,"EPROTOTYPE":67,"ENOTSOCK":57,"ENOPROTOOPT":50,"ESHUTDOWN":140,"ECONNREFUSED":14,"EADDRINUSE":3,"ECONNABORTED":13,"ENETUNREACH":40,"ENETDOWN":38,"ETIMEDOUT":73,"EHOSTDOWN":142,"EHOSTUNREACH":23,"EINPROGRESS":26,"EALREADY":7,"EDESTADDRREQ":17,"EMSGSIZE":35,"EPROTONOSUPPORT":66,"ESOCKTNOSUPPORT":137,"EADDRNOTAVAIL":4,"ENETRESET":39,"EISCONN":30,"ENOTCONN":53,"ETOOMANYREFS":141,"EUSERS":136,"EDQUOT":19,"ESTALE":72,"ENOTSUP":138,"ENOMEDIUM":148,"EILSEQ":25,"EOVERFLOW":61,"ECANCELED":11,"ENOTRECOVERABLE":56,"EOWNERDEAD":62,"ESTRPIPE":135};var NODEFS={isWindows:false,staticInit(){NODEFS.isWindows=!!process.platform.match(/^win/);var flags=process.binding("constants");if(flags["fs"]){flags=flags["fs"]}NODEFS.flagsForNodeMap={1024:flags["O_APPEND"],64:flags["O_CREAT"],128:flags["O_EXCL"],256:flags["O_NOCTTY"],0:flags["O_RDONLY"],2:flags["O_RDWR"],4096:flags["O_SYNC"],512:flags["O_TRUNC"],1:flags["O_WRONLY"],131072:flags["O_NOFOLLOW"]};assert(NODEFS.flagsForNodeMap["0"]===0)},convertNodeCode(e){var code=e.code;assert(code in ERRNO_CODES,`unexpected node error code: ${code} (${e})`);return ERRNO_CODES[code]},mount(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)},createNode(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(28)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node},getMode(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&292)>>2}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}return stat.mode},realPath(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)},flagsForNode(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;flags&=~65536;var newFlags=0;for(var k in NODEFS.flagsForNodeMap){if(flags&k){newFlags|=NODEFS.flagsForNodeMap[k];flags^=k}}if(flags){throw new FS.ErrnoError(28)}return newFlags},node_ops:{getattr(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}},setattr(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},lookup(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)},mknod(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}return node},rename(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}oldNode.name=newName},unlink(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},rmdir(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},readdir(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},symlink(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},readlink(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=nodePath.relative(nodePath.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;if(e.code==="UNKNOWN")throw new FS.ErrnoError(28);throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}}},stream_ops:{open(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsForNode(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},close(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},read(stream,buffer,offset,length,position){if(length===0)return 0;try{return fs.readSync(stream.nfd,new Int8Array(buffer.buffer,offset,length),{position:position})}catch(e){throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},write(stream,buffer,offset,length,position){try{return fs.writeSync(stream.nfd,new Int8Array(buffer.buffer,offset,length),{position:position})}catch(e){throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size}catch(e){throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}}}if(position<0){throw new FS.ErrnoError(28)}return position},mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr=mmapAlloc(length);NODEFS.stream_ops.read(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}},msync(stream,buffer,offset,length,mmapFlags){NODEFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var ERRNO_MESSAGES={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){assert(typeof parent=="object");var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get(){return this.node},set(val){this.node=val}},isRead:{get(){return(this.flags&2097155)!==1}},isWrite:{get(){return(this.flags&2097155)!==0}},isAppend:{get(){return this.flags&1024}},flags:{get(){return this.shared.flags},set(val){this.shared.flags=val}},position:{get(){return this.shared.position},set(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){if(typeof type=="string"){throw type}var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;i=0);if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){assert(offset>=0);if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate(stream,offset,length){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){assert(offset>=0);if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error(`Invalid encoding type "${opts.encoding}"`)}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1);assert(stdin.fd===0,`invalid handle for stdin (${stdin.fd})`);assert(stdout.fd===1,`invalid handle for stdout (${stdout.fd})`);assert(stderr.fd===2,`invalid handle for stderr (${stderr.fd})`)},ensureErrnoError(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.name="ErrnoError";this.node=node;this.setErrno=function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}};this.setErrno(errno);this.message=ERRNO_MESSAGES[errno];if(this.stack){Object.defineProperty(this,"stack",{value:(new Error).stack,writable:true});this.stack=demangleAll(this.stack)}};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"NODEFS":NODEFS}},init(input,output,error){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit(){FS.init.initialized=false;_fflush(0);for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node},absolutePath(){abort("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder(){abort("FS.createFolder has been removed; use FS.mkdir instead")},createLink(){abort("FS.createLink has been removed; use FS.symlink instead")},joinPath(){abort("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc(){abort("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath(){abort("FS.standardizePath has been removed; use PATH.normalize instead")}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;checkInt32(stat.dev);HEAP32[buf+4>>2]=stat.mode;checkInt32(stat.mode);HEAPU32[buf+8>>2]=stat.nlink;checkInt32(stat.nlink);HEAP32[buf+12>>2]=stat.uid;checkInt32(stat.uid);HEAP32[buf+16>>2]=stat.gid;checkInt32(stat.gid);HEAP32[buf+20>>2]=stat.rdev;checkInt32(stat.rdev);tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];checkInt64(stat.size);HEAP32[buf+32>>2]=4096;checkInt32(4096);HEAP32[buf+36>>2]=stat.blocks;checkInt32(stat.blocks);var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];checkInt64(Math.floor(atime/1e3));HEAPU32[buf+48>>2]=atime%1e3*1e3;checkInt32(atime%1e3*1e3);tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];checkInt64(Math.floor(mtime/1e3));HEAPU32[buf+64>>2]=mtime%1e3*1e3;checkInt32(mtime%1e3*1e3);tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];checkInt64(Math.floor(ctime/1e3));HEAPU32[buf+80>>2]=ctime%1e3*1e3;checkInt32(ctime%1e3*1e3);tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];checkInt64(stat.ino);return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get(){assert(SYSCALLS.varargs!=undefined);var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret},getp(){return SYSCALLS.get()},getStr(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.createStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 5:{var arg=SYSCALLS.getp();var offset=0;HEAP16[arg+offset>>1]=2;checkInt16(2);return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=SYSCALLS.getp();HEAP32[argp>>2]=termios.c_iflag||0;checkInt32(termios.c_iflag||0);HEAP32[argp+4>>2]=termios.c_oflag||0;checkInt32(termios.c_oflag||0);HEAP32[argp+8>>2]=termios.c_cflag||0;checkInt32(termios.c_cflag||0);HEAP32[argp+12>>2]=termios.c_lflag||0;checkInt32(termios.c_lflag||0);for(var i=0;i<32;i++){HEAP8[argp+i+17>>0]=termios.c_cc[i]||0;checkInt8(termios.c_cc[i]||0)}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=SYSCALLS.getp();var c_iflag=HEAP32[argp>>2];var c_oflag=HEAP32[argp+4>>2];var c_cflag=HEAP32[argp+8>>2];var c_lflag=HEAP32[argp+12>>2];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17>>0])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag:c_iflag,c_oflag:c_oflag,c_cflag:c_cflag,c_lflag:c_lflag,c_cc:c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.getp();HEAP32[argp>>2]=0;checkInt32(0);return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.getp();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=SYSCALLS.getp();HEAP16[argp>>1]=winsize[0];checkInt16(winsize[0]);HEAP16[argp+2>>1]=winsize[1];checkInt16(winsize[1])}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var ___throw_exception_with_stack_trace=ex=>{var e=new WebAssembly.Exception(getCppExceptionTag(),[ex],{traceStack:true});e.message=getExceptionMessage(e);if(e.stack){var arr=e.stack.split("\n");arr.splice(1,1);e.stack=arr.join("\n")}throw e};var structRegistrations={};var runDestructors=destructors=>{while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}};function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAP32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var InternalError;var throwInternalError=message=>{throw new InternalError(message)};var whenDependentTypesAreResolved=(myTypes,dependentTypes,getTypeConverters)=>{myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}};var __embind_finalize_value_object=structType=>{var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(field=>field.getterReturnType).concat(fieldRecords.map(field=>field.setterArgumentType));whenDependentTypesAreResolved([structType],fieldTypes,fieldTypes=>{var fields={};fieldRecords.forEach((field,i)=>{var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:ptr=>getterReturnType["fromWireType"](getter(getterContext,ptr)),write:(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,o));runDestructors(destructors)}}});return[{name:reg.name,"fromWireType":ptr=>{var rv={};for(var i in fields){rv[i]=fields[i].read(ptr)}rawDestructor(ptr);return rv},"toWireType":(destructors,o)=>{for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError(`Missing field: "${fieldName}"`)}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName])}if(destructors!==null){destructors.push(rawDestructor,ptr)}return ptr},"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:rawDestructor}]})};var __embind_register_bigint=(primitiveType,name,size,minRange,maxRange)=>{};var embind_init_charCodes=()=>{var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes};var embind_charCodes;var readLatin1String=ptr=>{var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret};var BindingError;var throwBindingError=message=>{throw new BindingError(message)};function sharedRegisterType(rawType,registeredInstance,options={}){var name=registeredInstance.name;if(!rawType){throwBindingError(`type "${name}" must have a positive integer typeid pointer`)}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(`Cannot register type '${name}' twice`)}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function registerType(rawType,registeredInstance,options={}){if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}return sharedRegisterType(rawType,registeredInstance,options)}var GenericWireTypeSize=8;var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(wt){return!!wt},"toWireType":function(destructors,o){return o?trueValue:falseValue},"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":function(pointer){return this["fromWireType"](HEAPU8[pointer])},destructorFunction:null})};var shallowCopyInternalPointer=o=>({count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType});var throwInstanceAlreadyDeleted=obj=>{function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")};var finalizationRegistry=false;var detachFinalizer=handle=>{};var runDestructor=$$=>{if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}};var releaseClassHandle=$$=>{$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}};var downcastPointer=(ptr,ptrClass,desiredClass)=>{if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)};var registeredPointers={};var getInheritedInstanceCount=()=>Object.keys(registeredInstances).length;var getLiveInheritedInstances=()=>{var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv};var deletionQueue=[];var flushPendingDeletes=()=>{while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}};var delayFunction;var setDelayFunction=fn=>{delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}};var init_embind=()=>{Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction};var registeredInstances={};var getBasestPointer=(class_,ptr)=>{if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr};var getInheritedInstance=(class_,ptr)=>{ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]};var makeClassHandle=(prototype,record)=>{if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))};function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}var attachFinalizer=handle=>{if("undefined"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{console.warn(info.leakWarning.stack.replace(/^Error: /,""));releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};var cls=$$.ptrType.registeredClass;info.leakWarning=new Error(`Embind found a leaked C++ instance ${cls.name} <${ptrToString($$.ptr)}>.\n`+"We'll free it automatically in this case, but this functionality is not reliable across various environments.\n"+"Make sure to invoke .delete() manually once you're done with the instance instead.\n"+"Originally allocated");if("captureStackTrace"in Error){Error.captureStackTrace(info.leakWarning,RegisteredPointer_fromWireType)}finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)};var init_ClassHandle=()=>{Object.assign(ClassHandle.prototype,{"isAliasOf"(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;other.$$=other.$$;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right},"clone"(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}},"delete"(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}},"isDeleted"(){return!this.$$.ptr},"deleteLater"(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}})};function ClassHandle(){}var createNamedFunction=(name,body)=>Object.defineProperty(body,"name",{value:name});var ensureOverloadTable=(proto,methodName,humanName)=>{if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${arguments.length}) - expects one of (${proto[methodName].overloadTable})!`)}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}};var exposePublicSymbol=(name,value,numArguments)=>{if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(`Cannot register public name '${name}' twice`)}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`)}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}};var char_0=48;var char_9=57;var makeLegalFunctionName=name=>{if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return`_${name}`}return name};function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}var upcastPointer=(ptr,ptrClass,desiredClass)=>{while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr};function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(()=>clonedHandle["delete"]()));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function readPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}var init_RegisteredPointer=()=>{Object.assign(RegisteredPointer.prototype,{getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr},destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}},"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":readPointer,"deleteObject"(handle){if(handle!==null){handle["delete"]()}},"fromWireType":RegisteredPointer_fromWireType})};function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}var replacePublicSymbol=(name,value,numArguments)=>{if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var dynCallLegacy=(sig,ptr,args)=>{assert("dynCall_"+sig in Module,`bad function pointer type - dynCall function not found for sig '${sig}'`);if(args&&args.length){assert(args.length===sig.substring(1).replace(/j/g,"--").length)}else{assert(sig.length==1)}var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)};var wasmTableMirror=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}assert(wasmTable.get(funcPtr)==func,"JavaScript-side Wasm function table mirror is out of date!");return func};var dynCall=(sig,ptr,args)=>{if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}assert(getWasmTableEntry(ptr),`missing table entry in dynCall: ${ptr}`);var rtn=getWasmTableEntry(ptr).apply(null,args);return rtn};var getDynCaller=(sig,ptr)=>{assert(sig.includes("j")||sig.includes("p"),"getDynCaller should only be called with i64 sigs");var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}};var embind__requireFunction=(signature,rawFunction)=>{signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes("j")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`)}return fp};var extendError=(baseErrorType,errorName)=>{var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return`${this.name}: ${this.message}`}};return errorClass};var UnboundTypeError;var getTypeName=type=>{var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv};var throwUnboundTypeError=(message,types)=>{var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(`${message}: `+unboundTypes.map(getTypeName).join([", "]))};var __embind_register_class=(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor)=>{name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(`Cannot construct ${name} due to unbound types`,[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(name,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`)}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);if(registeredClass.baseClass){if(registeredClass.baseClass.__derivedClasses===undefined){registeredClass.baseClass.__derivedClasses=[]}registeredClass.baseClass.__derivedClasses.push(registeredClass)}var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})};var heap32VectorToArray=(count,firstElement)=>{var array=[];for(var i=0;i>2])}return array};function newFunc(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError(`new_ called with constructor type ${typeof constructor} which is not a function`)}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc,isAsync){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}assert(!isAsync,"Async bindings are only supported with JSPI.");var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns||isAsync?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i{assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=`constructor ${classType.name}`;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount-1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`)}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`,rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})};var getFunctionName=signature=>{signature=signature.trim();const argsIndex=signature.indexOf("(");if(argsIndex!==-1){assert(signature[signature.length-1]==")","Parentheses for argument names should match.");return signature.substr(0,argsIndex)}else{return signature}};var __embind_register_class_function=(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual,isAsync)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);methodName=getFunctionName(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=`${classType.name}.${methodName}`;if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context,isAsync);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})};function handleAllocatorInit(){Object.assign(HandleAllocator.prototype,{get(id){assert(this.allocated[id]!==undefined,`invalid handle: ${id}`);return this.allocated[id]},has(id){return this.allocated[id]!==undefined},allocate(handle){var id=this.freelist.pop()||this.allocated.length;this.allocated[id]=handle;return id},free(id){assert(this.allocated[id]!==undefined);this.allocated[id]=undefined;this.freelist.push(id)}})}function HandleAllocator(){this.allocated=[undefined];this.freelist=[]}var emval_handles=new HandleAllocator;var __emval_decref=handle=>{if(handle>=emval_handles.reserved&&0===--emval_handles.get(handle).refcount){emval_handles.free(handle)}};var count_emval_handles=()=>{var count=0;for(var i=emval_handles.reserved;i{emval_handles.allocated.push({value:undefined},{value:null},{value:true},{value:false});emval_handles.reserved=emval_handles.allocated.length;Module["count_emval_handles"]=count_emval_handles};var Emval={toValue:handle=>{if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handles.get(handle).value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{return emval_handles.allocate({refcount:1,value:value})}}}};var __embind_register_emval=(rawType,name)=>{name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":handle=>{var rv=Emval.toValue(handle);__emval_decref(handle);return rv},"toWireType":(destructors,value)=>Emval.toHandle(value),"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})};var embindRepr=v=>{if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}};var floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 8:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":value=>value,"toWireType":(destructors,value)=>{if(typeof value!="number"&&typeof value!="boolean"){throw new TypeError(`Cannot convert ${embindRepr(value)} to ${this.name}`)}return value},"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":floatReadValueFromPointer(name,size),destructorFunction:null})};var __embind_register_function=(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync)=>{var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);name=getFunctionName(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError(`Cannot call ${name} due to unbound types`,argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn,isAsync),argCount-1);return[]})};var integerReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?pointer=>HEAP8[pointer>>0]:pointer=>HEAPU8[pointer>>0];case 2:return signed?pointer=>HEAP16[pointer>>1]:pointer=>HEAPU16[pointer>>1];case 4:return signed?pointer=>HEAP32[pointer>>2]:pointer=>HEAPU32[pointer>>2];default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_integer=(primitiveType,name,size,minRange,maxRange)=>{name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{if(typeof value!="number"&&typeof value!="boolean"){throw new TypeError(`Cannot convert "${embindRepr(value)}" to ${toTypeName}`)}if(valuemaxRange){throw new TypeError(`Passing a number "${embindRepr(value)}" from JS side to C/C++ side to an argument of type "${name}", which is outside the valid range [${minRange}, ${maxRange}]!`)}};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":toWireType,"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":integerReadValueFromPointer(name,size,minRange!==0),destructorFunction:null})};var __embind_register_memory_view=(rawType,dataTypeIndex,name)=>{var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){var size=HEAPU32[handle>>2];var data=HEAPU32[handle+4>>2];return new TA(HEAP8.buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})};var __embind_register_std_string=(rawType,name)=>{name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType"(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;checkInt32(length);if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+i]=charCode}}else{for(var i=0;i{assert(ptr%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str};var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{assert(outPtr%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!");assert(typeof maxBytesToWrite=="number","stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!");if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;checkInt16(codeUnit);outPtr+=2}HEAP16[outPtr>>1]=0;checkInt16(0);return outPtr-startPtr};var lengthBytesUTF16=str=>str.length*2;var UTF32ToString=(ptr,maxBytesToRead)=>{assert(ptr%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{assert(outPtr%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!");assert(typeof maxBytesToWrite=="number","stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!");if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;checkInt32(codeUnit);outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;checkInt32(0);return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=()=>HEAPU16;shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=()=>HEAPU32;shift=2}registerType(rawType,{name:name,"fromWireType":value=>{var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":(destructors,value)=>{if(!(typeof value=="string")){throwBindingError(`Cannot pass non-string to C++ string type ${name}`)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction(ptr){_free(ptr)}})};var __embind_register_value_object=(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor)=>{structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}};var __embind_register_value_object_field=(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext)=>{structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})};var __embind_register_void=(rawType,name)=>{name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":()=>undefined,"toWireType":(destructors,o)=>undefined})};var __emval_incref=handle=>{if(handle>4){emval_handles.get(handle).refcount+=1}};var requireRegisteredType=(rawType,humanName)=>{var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl};var __emval_take_value=(type,arg)=>{type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](arg);return Emval.toHandle(v)};var _abort=()=>{abort("native code called abort()")};var _emscripten_memcpy_js=(dest,src,num)=>HEAPU8.copyWithin(dest,src,src+num);var getHeapMax=()=>2147483648;var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){err(`growMemory: Attempted to grow heap from ${b.byteLength} bytes to ${size} bytes, but got error: ${e}`)}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;assert(requestedSize>oldSize);var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){err(`Cannot enlarge memory, requested ${requestedSize} bytes, but the limit is ${maxHeapSize} bytes!`);return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var t0=_emscripten_get_now();var replacement=growMemory(newSize);var t1=_emscripten_get_now();dbg(`Heap resize call from ${oldSize} to ${newSize} took ${t1-t0} msecs. Success: ${!!replacement}`);if(replacement){return true}}err(`Failed to grow the heap from ${oldSize} bytes to ${newSize} bytes, not enough memory!`);return false};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i>0]=str.charCodeAt(i);checkInt8(str.charCodeAt(i))}HEAP8[buffer>>0]=0;checkInt8(0)};var _environ_get=(__environ,environ_buf)=>{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;checkInt32(ptr);stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;checkInt32(strings.length);var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>2]=bufSize;checkInt32(bufSize);return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;checkInt32(num);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var convertI32PairToI53Checked=(lo,hi)=>{assert(lo==lo>>>0||lo==(lo|0));assert(hi===(hi|0));return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN};function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];checkInt64(stream.position);if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!=="undefined"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;checkInt32(num);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var arraySum=(array,index)=>{var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum};var MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];var addDays=(date,days)=>{var newDate=new Date(date.getTime());while(days>0){var leap=isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate};var writeArrayToMemory=(array,buffer)=>{assert(array.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)");HEAP8.set(array,buffer)};var _strftime=(s,maxsize,format,tm)=>{var tm_zone=HEAPU32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}return thisDate.getFullYear()}return thisDate.getFullYear()-1}var EXPANSION_RULES_2={"%a":date=>WEEKDAYS[date.tm_wday].substring(0,3),"%A":date=>WEEKDAYS[date.tm_wday],"%b":date=>MONTHS[date.tm_mon].substring(0,3),"%B":date=>MONTHS[date.tm_mon],"%C":date=>{var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":date=>leadingNulls(date.tm_mday,2),"%e":date=>leadingSomething(date.tm_mday,2," "),"%g":date=>getWeekBasedYear(date).toString().substring(2),"%G":date=>getWeekBasedYear(date),"%H":date=>leadingNulls(date.tm_hour,2),"%I":date=>{var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":date=>leadingNulls(date.tm_mday+arraySum(isLeapYear(date.tm_year+1900)?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR,date.tm_mon-1),3),"%m":date=>leadingNulls(date.tm_mon+1,2),"%M":date=>leadingNulls(date.tm_min,2),"%n":()=>"\n","%p":date=>{if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}return"PM"},"%S":date=>leadingNulls(date.tm_sec,2),"%t":()=>"\t","%u":date=>date.tm_wday||7,"%U":date=>{var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":date=>{var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":date=>date.tm_wday,"%W":date=>{var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":date=>(date.tm_year+1900).toString().substring(2),"%Y":date=>date.tm_year+1900,"%z":date=>{var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":date=>date.tm_zone,"%%":()=>"%"};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1};var _strftime_l=(s,maxsize,format,tm,loc)=>_strftime(s,maxsize,format,tm);var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_unlink"]=FS.unlink;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;if(ENVIRONMENT_IS_NODE){NODEFS.staticInit()}InternalError=Module["InternalError"]=class InternalError extends Error{constructor(message){super(message);this.name="InternalError"}};embind_init_charCodes();BindingError=Module["BindingError"]=class BindingError extends Error{constructor(message){super(message);this.name="BindingError"}};init_ClassHandle();init_embind();init_RegisteredPointer();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");handleAllocatorInit();init_emval();function checkIncomingModuleAPI(){ignoredModuleProp("fetchSettings")}var wasmImports={__assert_fail:___assert_fail,__handle_stack_overflow:___handle_stack_overflow,__syscall_fcntl64:___syscall_fcntl64,__syscall_ioctl:___syscall_ioctl,__syscall_openat:___syscall_openat,__throw_exception_with_stack_trace:___throw_exception_with_stack_trace,_embind_finalize_value_object:__embind_finalize_value_object,_embind_register_bigint:__embind_register_bigint,_embind_register_bool:__embind_register_bool,_embind_register_class:__embind_register_class,_embind_register_class_constructor:__embind_register_class_constructor,_embind_register_class_function:__embind_register_class_function,_embind_register_emval:__embind_register_emval,_embind_register_float:__embind_register_float,_embind_register_function:__embind_register_function,_embind_register_integer:__embind_register_integer,_embind_register_memory_view:__embind_register_memory_view,_embind_register_std_string:__embind_register_std_string,_embind_register_std_wstring:__embind_register_std_wstring,_embind_register_value_object:__embind_register_value_object,_embind_register_value_object_field:__embind_register_value_object_field,_embind_register_void:__embind_register_void,_emval_decref:__emval_decref,_emval_incref:__emval_incref,_emval_take_value:__emval_take_value,abort:_abort,emscripten_memcpy_js:_emscripten_memcpy_js,emscripten_resize_heap:_emscripten_resize_heap,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,fd_close:_fd_close,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write,strftime_l:_strftime_l};var wasmExports=createWasm();var ___wasm_call_ctors=createExportWrapper("__wasm_call_ctors");var _malloc=createExportWrapper("malloc");var _fflush=Module["_fflush"]=createExportWrapper("fflush");var _free=Module["_free"]=createExportWrapper("free");var ___errno_location=createExportWrapper("__errno_location");var ___getTypeName=createExportWrapper("__getTypeName");var _emscripten_builtin_memalign=createExportWrapper("emscripten_builtin_memalign");var ___trap=()=>(___trap=wasmExports["__trap"])();var setTempRet0=createExportWrapper("setTempRet0");var _emscripten_stack_init=()=>(_emscripten_stack_init=wasmExports["emscripten_stack_init"])();var _emscripten_stack_get_free=()=>(_emscripten_stack_get_free=wasmExports["emscripten_stack_get_free"])();var _emscripten_stack_get_base=()=>(_emscripten_stack_get_base=wasmExports["emscripten_stack_get_base"])();var _emscripten_stack_get_end=()=>(_emscripten_stack_get_end=wasmExports["emscripten_stack_get_end"])();var stackSave=createExportWrapper("stackSave");var stackRestore=createExportWrapper("stackRestore");var stackAlloc=createExportWrapper("stackAlloc");var _emscripten_stack_get_current=()=>(_emscripten_stack_get_current=wasmExports["emscripten_stack_get_current"])();var ___cxa_decrement_exception_refcount=Module["___cxa_decrement_exception_refcount"]=createExportWrapper("__cxa_decrement_exception_refcount");var ___cxa_increment_exception_refcount=Module["___cxa_increment_exception_refcount"]=createExportWrapper("__cxa_increment_exception_refcount");var ___cxa_demangle=createExportWrapper("__cxa_demangle");var ___thrown_object_from_unwind_exception=Module["___thrown_object_from_unwind_exception"]=createExportWrapper("__thrown_object_from_unwind_exception");var ___get_exception_message=Module["___get_exception_message"]=createExportWrapper("__get_exception_message");var ___set_stack_limits=Module["___set_stack_limits"]=createExportWrapper("__set_stack_limits");var dynCall_jiji=Module["dynCall_jiji"]=createExportWrapper("dynCall_jiji");var dynCall_viijii=Module["dynCall_viijii"]=createExportWrapper("dynCall_viijii");var dynCall_iiiiij=Module["dynCall_iiiiij"]=createExportWrapper("dynCall_iiiiij");var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=createExportWrapper("dynCall_iiiiijj");var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=createExportWrapper("dynCall_iiiiiijj");Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS"]=FS;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_unlink"]=FS.unlink;var missingLibrarySymbols=["writeI53ToI64","writeI53ToI64Clamped","writeI53ToI64Signaling","writeI53ToU64Clamped","writeI53ToU64Signaling","readI53FromI64","readI53FromU64","convertI32PairToI53","convertU32PairToI53","exitJS","ydayFromDate","inetPton4","inetNtop4","inetPton6","inetNtop6","readSockaddr","writeSockaddr","getHostByName","getCallstack","emscriptenLog","convertPCtoSourceLocation","readEmAsmArgs","jstoi_q","jstoi_s","listenOnce","autoResumeAudioContext","handleException","keepRuntimeAlive","runtimeKeepalivePush","runtimeKeepalivePop","callUserCallback","maybeExit","asmjsMangle","getNativeTypeSize","STACK_SIZE","STACK_ALIGN","POINTER_SIZE","ASSERTIONS","getCFunc","ccall","cwrap","uleb128Encode","sigToWasmTypes","generateFuncType","convertJsFunctionToWasm","getEmptyTableSlot","updateTableMap","getFunctionAddress","addFunction","removeFunction","reallyNegative","unSign","strLen","reSign","formatString","intArrayToString","AsciiToString","stringToNewUTF8","registerKeyEventCallback","maybeCStringToJsString","findEventTarget","findCanvasEventTarget","getBoundingClientRect","fillMouseEventData","registerMouseEventCallback","registerWheelEventCallback","registerUiEventCallback","registerFocusEventCallback","fillDeviceOrientationEventData","registerDeviceOrientationEventCallback","fillDeviceMotionEventData","registerDeviceMotionEventCallback","screenOrientation","fillOrientationChangeEventData","registerOrientationChangeEventCallback","fillFullscreenChangeEventData","registerFullscreenChangeEventCallback","JSEvents_requestFullscreen","JSEvents_resizeCanvasForFullscreen","registerRestoreOldStyle","hideEverythingExceptGivenElement","restoreHiddenElements","setLetterbox","softFullscreenResizeWebGLRenderTarget","doRequestFullscreen","fillPointerlockChangeEventData","registerPointerlockChangeEventCallback","registerPointerlockErrorEventCallback","requestPointerLock","fillVisibilityChangeEventData","registerVisibilityChangeEventCallback","registerTouchEventCallback","fillGamepadEventData","registerGamepadEventCallback","registerBeforeUnloadEventCallback","fillBatteryEventData","battery","registerBatteryEventCallback","setCanvasElementSize","getCanvasElementSize","checkWasiClock","wasiRightsToMuslOFlags","wasiOFlagsToMuslOFlags","createDyncallWrapper","safeSetTimeout","setImmediateWrapped","clearImmediateWrapped","polyfillSetImmediate","getPromise","makePromise","idsToPromises","makePromiseCallback","setMainLoop","getSocketFromFD","getSocketAddress","FS_mkdirTree","_setNetworkCallback","heapObjectForWebGLType","heapAccessShiftForWebGLHeap","webgl_enable_ANGLE_instanced_arrays","webgl_enable_OES_vertex_array_object","webgl_enable_WEBGL_draw_buffers","webgl_enable_WEBGL_multi_draw","emscriptenWebGLGet","computeUnpackAlignedImageSize","colorChannelsInGlTextureFormat","emscriptenWebGLGetTexPixelData","__glGenObject","emscriptenWebGLGetUniform","webglGetUniformLocation","webglPrepareUniformLocationsBeforeFirstUse","webglGetLeftBracePos","emscriptenWebGLGetVertexAttrib","__glGetActiveAttribOrUniform","writeGLArray","registerWebGlEventCallback","runAndAbortIfError","SDL_unicode","SDL_ttfContext","SDL_audio","ALLOC_NORMAL","ALLOC_STACK","allocate","writeStringToMemory","writeAsciiToMemory","getFunctionArgsName","registerInheritedInstance","unregisterInheritedInstance","enumReadValueFromPointer","validateThis","getStringOrSymbol","emval_get_global","emval_returnValue","emval_lookupTypes","emval_addMethodCaller"];missingLibrarySymbols.forEach(missingLibrarySymbol);var unexportedSymbols=["run","addOnPreRun","addOnInit","addOnPreMain","addOnExit","addOnPostRun","FS_createFolder","FS_createLink","FS_readFile","out","err","callMain","abort","wasmMemory","wasmExports","stackAlloc","stackSave","stackRestore","getTempRet0","setTempRet0","writeStackCookie","checkStackCookie","convertI32PairToI53Checked","ptrToString","zeroMemory","getHeapMax","growMemory","ENV","setStackLimits","MONTH_DAYS_REGULAR","MONTH_DAYS_LEAP","MONTH_DAYS_REGULAR_CUMULATIVE","MONTH_DAYS_LEAP_CUMULATIVE","isLeapYear","arraySum","addDays","ERRNO_CODES","ERRNO_MESSAGES","setErrNo","DNS","Protocols","Sockets","initRandomFill","randomFill","timers","warnOnce","UNWIND_CACHE","readEmAsmArgsArray","getExecutableName","dynCallLegacy","getDynCaller","dynCall","asyncLoad","alignMemory","mmapAlloc","handleAllocatorInit","HandleAllocator","wasmTable","noExitRuntime","freeTableIndexes","functionsInTableMap","setValue","getValue","PATH","PATH_FS","UTF8Decoder","UTF8ArrayToString","UTF8ToString","stringToUTF8Array","stringToUTF8","lengthBytesUTF8","intArrayFromString","stringToAscii","UTF16Decoder","UTF16ToString","stringToUTF16","lengthBytesUTF16","UTF32ToString","stringToUTF32","lengthBytesUTF32","stringToUTF8OnStack","writeArrayToMemory","JSEvents","specialHTMLTargets","currentFullscreenStrategy","restoreOldWindowedStyle","demangle","demangleAll","jsStackTrace","stackTrace","ExitStatus","getEnvStrings","doReadv","doWritev","promiseMap","getExceptionMessageCommon","getCppExceptionTag","getCppExceptionThrownObjectFromWebAssemblyException","incrementExceptionRefcount","decrementExceptionRefcount","getExceptionMessage","Browser","wget","SYSCALLS","preloadPlugins","FS_modeStringToFlags","FS_getMode","FS_stdin_getChar_buffer","FS_stdin_getChar","MEMFS","TTY","PIPEFS","SOCKFS","tempFixedLengthArray","miniTempWebGLFloatBuffers","miniTempWebGLIntBuffers","GL","emscripten_webgl_power_preferences","AL","GLUT","EGL","GLEW","IDBStore","SDL","SDL_gfx","allocateUTF8","allocateUTF8OnStack","InternalError","BindingError","throwInternalError","throwBindingError","registeredTypes","awaitingDependencies","typeDependencies","tupleRegistrations","structRegistrations","sharedRegisterType","whenDependentTypesAreResolved","embind_charCodes","embind_init_charCodes","readLatin1String","getTypeName","getFunctionName","heap32VectorToArray","requireRegisteredType","UnboundTypeError","PureVirtualError","GenericWireTypeSize","init_embind","throwUnboundTypeError","ensureOverloadTable","exposePublicSymbol","replacePublicSymbol","extendError","createNamedFunction","embindRepr","registeredInstances","getBasestPointer","getInheritedInstance","getInheritedInstanceCount","getLiveInheritedInstances","registeredPointers","registerType","integerReadValueFromPointer","floatReadValueFromPointer","simpleReadValueFromPointer","readPointer","runDestructors","newFunc","craftInvokerFunction","embind__requireFunction","genericPointerToWireType","constNoSmartPtrRawPointerToWireType","nonConstNoSmartPtrRawPointerToWireType","init_RegisteredPointer","RegisteredPointer","RegisteredPointer_fromWireType","runDestructor","releaseClassHandle","finalizationRegistry","detachFinalizer_deps","detachFinalizer","attachFinalizer","makeClassHandle","init_ClassHandle","ClassHandle","throwInstanceAlreadyDeleted","deletionQueue","flushPendingDeletes","delayFunction","setDelayFunction","RegisteredClass","shallowCopyInternalPointer","downcastPointer","upcastPointer","char_0","char_9","makeLegalFunctionName","emval_handles","emval_symbols","init_emval","count_emval_handles","Emval","emval_methodCallers","reflectConstruct","NODEFS"];unexportedSymbols.forEach(unexportedRuntimeSymbol);var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function stackCheckInit(){_emscripten_stack_init();writeStackCookie()}function run(){if(runDependencies>0){return}stackCheckInit();preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();assert(!Module["_main"],'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]');postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}checkStackCookie()}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run(); - - - return moduleArg.ready -} -); -})(); -; -export default privateer_module; \ No newline at end of file diff --git a/webserver/src/wasm/privateer.wasm b/webserver/src/wasm/privateer.wasm deleted file mode 100755 index 9a69ec02e..000000000 Binary files a/webserver/src/wasm/privateer.wasm and /dev/null differ diff --git a/webserver/tsconfig.json b/webserver/tsconfig.json deleted file mode 100644 index ce364e860..000000000 --- a/webserver/tsconfig.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "compilerOptions": { - "target": "ESNext", - "useDefineForClassFields": true, - "lib": ["DOM", "DOM.Iterable", "ESNext"], - "allowJs": false, - "skipLibCheck": true, - "esModuleInterop": false, - "allowSyntheticDefaultImports": true, - "strict": false, - "forceConsistentCasingInFileNames": true, - "module": "ESNext", - "moduleResolution": "Node", - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react-jsx", - "allowImportingTsExtensions": true - }, - "include": ["src"], - "references": [{ "path": "./tsconfig.node.json" }] - } \ No newline at end of file diff --git a/webserver/tsconfig.node.json b/webserver/tsconfig.node.json deleted file mode 100644 index eedc67deb..000000000 --- a/webserver/tsconfig.node.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "compilerOptions": { - "composite": true, - "module": "ESNext", - "moduleResolution": "Node", - "allowSyntheticDefaultImports": true - }, - "include": ["vite.config.ts"] - } \ No newline at end of file diff --git a/webserver/vite.config.ts b/webserver/vite.config.ts deleted file mode 100644 index 616c9815a..000000000 --- a/webserver/vite.config.ts +++ /dev/null @@ -1,31 +0,0 @@ -import {defineConfig} from 'vite' -import react from '@vitejs/plugin-react-swc' -import crossOriginIsolation from 'vite-plugin-cross-origin-isolation' -import wasm from "vite-plugin-wasm"; -import topLevelAwait from "vite-plugin-top-level-await"; - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [ - react(), - wasm(), - topLevelAwait(), - crossOriginIsolation(), - { - name: "configure-response-headers", - configureServer: (server) => { - server.middlewares.use((_req, res, next) => { - res.setHeader("Cross-Origin-Opener-Policy", "same-origin"); - res.setHeader("Cross-Origin-Embedder-Policy", "require-corp"); - next(); - }); - }, - }, - ], - server: { - headers: { - "Cross-Origin-Opener-Policy": "same-origin", - "Cross-Origin-Embedder-Policy": "require-corp", - }, - }, -})